summaryrefslogtreecommitdiff
path: root/datapath/vport.c
diff options
context:
space:
mode:
authorPravin Shelar <pshelar@nicira.com>2014-04-01 20:55:21 -0700
committerPravin B Shelar <pshelar@nicira.com>2014-03-31 07:38:38 -0700
commitcb25142c50cd3a92e779ca1ce6f61380ffc75927 (patch)
treec3e6178d835bc8eff27c7da986b861f80c37ca6c /datapath/vport.c
parent1839c35676b5c3a2a70e83477a6ce3d3c7d0d245 (diff)
downloadopenvswitch-cb25142c50cd3a92e779ca1ce6f61380ffc75927.tar.gz
datapath: Add support for kernels 3.13
Add support for building the in-tree kernel datapath for Linux kernels up to 3.13. There were some changes in the netlink area which required adding new compatibility code for this layer. Also, some new per-cpu stats initialization code was added. Based on patch from Kyle Mestery. Signed-off-by: Kyle Mestery <mestery@noironetworks.com> Signed-off-by: Pravin B Shelar <pshelar@nicira.com> Acked-by: Kyle Mestery <mestery@noironetworks.com>
Diffstat (limited to 'datapath/vport.c')
-rw-r--r--datapath/vport.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/datapath/vport.c b/datapath/vport.c
index 7f12acccb..2673b8178 100644
--- a/datapath/vport.c
+++ b/datapath/vport.c
@@ -122,6 +122,7 @@ struct vport *ovs_vport_alloc(int priv_size, const struct vport_ops *ops,
{
struct vport *vport;
size_t alloc_size;
+ int i;
alloc_size = sizeof(struct vport);
if (priv_size) {
@@ -145,6 +146,12 @@ struct vport *ovs_vport_alloc(int priv_size, const struct vport_ops *ops,
return ERR_PTR(-ENOMEM);
}
+ for_each_possible_cpu(i) {
+ struct pcpu_tstats *vport_stats;
+ vport_stats = per_cpu_ptr(vport->percpu_stats, i);
+ u64_stats_init(&vport_stats->syncp);
+ }
+
spin_lock_init(&vport->stats_lock);
return vport;