X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=datapath%2Fvport.c;h=a78ebfa3aa131bc86ddf0fbd6b4422e339fdb2ce;hb=5ca1ba484bd9ade5116a49cf241cb98219d7d696;hp=bb2bd27c7650136deedf2487d9df1d4734cc888a;hpb=e0d7fd09066712420ea076a8efb5559a3fe297b3;p=sliver-openvswitch.git diff --git a/datapath/vport.c b/datapath/vport.c index bb2bd27c7..a78ebfa3a 100644 --- a/datapath/vport.c +++ b/datapath/vport.c @@ -45,6 +45,7 @@ static const struct vport_ops *base_vport_ops_list[] = { &ovs_gre64_vport_ops, #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26) &ovs_capwap_vport_ops, + &ovs_vxlan_vport_ops, #endif }; @@ -150,19 +151,6 @@ struct vport *ovs_vport_locate(struct net *net, const char *name) return NULL; } -static void release_vport(struct kobject *kobj) -{ - struct vport *p = container_of(kobj, struct vport, kobj); - kfree(p); -} - -static struct kobj_type brport_ktype = { -#ifdef CONFIG_SYSFS - .sysfs_ops = &ovs_brport_sysfs_ops, -#endif - .release = release_vport -}; - /** * ovs_vport_alloc - allocate and initialize new vport * @@ -192,15 +180,10 @@ struct vport *ovs_vport_alloc(int priv_size, const struct vport_ops *ops, vport->dp = parms->dp; vport->port_no = parms->port_no; - vport->upcall_pid = parms->upcall_pid; + vport->upcall_portid = parms->upcall_portid; vport->ops = ops; INIT_HLIST_NODE(&vport->dp_hash_node); - /* Initialize kobject for bridge. This will be added as - * /sys/class/net//brport later, if sysfs is enabled. */ - vport->kobj.kset = NULL; - kobject_init(&vport->kobj, &brport_ktype); - vport->percpu_stats = alloc_percpu(struct vport_percpu_stats); if (!vport->percpu_stats) { kfree(vport); @@ -225,8 +208,7 @@ struct vport *ovs_vport_alloc(int priv_size, const struct vport_ops *ops, void ovs_vport_free(struct vport *vport) { free_percpu(vport->percpu_stats); - - kobject_put(&vport->kobj); + kfree(vport); } /** @@ -453,8 +435,7 @@ void ovs_vport_receive(struct vport *vport, struct sk_buff *skb) { struct vport_percpu_stats *stats; - stats = per_cpu_ptr(vport->percpu_stats, smp_processor_id()); - + stats = this_cpu_ptr(vport->percpu_stats); u64_stats_update_begin(&stats->sync); stats->rx_packets++; stats->rx_bytes += skb->len; @@ -485,7 +466,7 @@ int ovs_vport_send(struct vport *vport, struct sk_buff *skb) if (likely(sent)) { struct vport_percpu_stats *stats; - stats = per_cpu_ptr(vport->percpu_stats, smp_processor_id()); + stats = this_cpu_ptr(vport->percpu_stats); u64_stats_update_begin(&stats->sync); stats->tx_packets++;