<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/openvswitch/vport-netdev.h, branch v3.18-rc5</title>
<subtitle>Linux kernel for Apalis and Colibri modules</subtitle>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/'/>
<entry>
<title>openvswitch: fix vport-netdev unregister</title>
<updated>2013-10-16T21:50:22+00:00</updated>
<author>
<name>Alexei Starovoitov</name>
<email>ast@plumgrid.com</email>
</author>
<published>2013-10-15T21:54:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b07c26511e94ab856f3700c56d582c0da36d5b4d'/>
<id>b07c26511e94ab856f3700c56d582c0da36d5b4d</id>
<content type='text'>
The combination of two commits:
commit 8e4e1713e4
("openvswitch: Simplify datapath locking.")
commit 2537b4dd0a
("openvswitch:: link upper device for port devices")

introduced a bug where upper_dev wasn't unlinked upon
netdev_unregister notification

The following steps:

  modprobe openvswitch
  ovs-dpctl add-dp test
  ip tuntap add dev tap1 mode tap
  ovs-dpctl add-if test tap1
  ip tuntap del dev tap1 mode tap

are causing multiple warnings:

[   62.747557] gre: GRE over IPv4 demultiplexor driver
[   62.749579] openvswitch: Open vSwitch switching datapath
[   62.755087] device test entered promiscuous mode
[   62.765911] device tap1 entered promiscuous mode
[   62.766033] IPv6: ADDRCONF(NETDEV_UP): tap1: link is not ready
[   62.769017] ------------[ cut here ]------------
[   62.769022] WARNING: CPU: 1 PID: 3267 at net/core/dev.c:5501 rollback_registered_many+0x20f/0x240()
[   62.769023] Modules linked in: openvswitch gre vxlan ip_tunnel libcrc32c ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_CHECKSUM iptable_mangle ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc vhost_net macvtap macvlan vhost kvm_intel kvm dm_crypt iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi hid_generic mxm_wmi eeepc_wmi asus_wmi sparse_keymap dm_multipath psmouse serio_raw usbhid hid parport_pc ppdev firewire_ohci lpc_ich firewire_core e1000e crc_itu_t binfmt_misc igb dca ptp pps_core mac_hid wmi lp parport i2o_config i2o_block video
[   62.769051] CPU: 1 PID: 3267 Comm: ip Not tainted 3.12.0-rc3+ #60
[   62.769052] Hardware name: System manufacturer System Product Name/P8Z77 WS, BIOS 3007 07/26/2012
[   62.769053]  0000000000000009 ffff8807f25cbd28 ffffffff8175e575 0000000000000006
[   62.769055]  0000000000000000 ffff8807f25cbd68 ffffffff8105314c ffff8807f25cbd58
[   62.769057]  ffff8807f2634000 ffff8807f25cbdc8 ffff8807f25cbd88 ffff8807f25cbdc8
[   62.769059] Call Trace:
[   62.769062]  [&lt;ffffffff8175e575&gt;] dump_stack+0x55/0x76
[   62.769065]  [&lt;ffffffff8105314c&gt;] warn_slowpath_common+0x8c/0xc0
[   62.769067]  [&lt;ffffffff8105319a&gt;] warn_slowpath_null+0x1a/0x20
[   62.769069]  [&lt;ffffffff8162a04f&gt;] rollback_registered_many+0x20f/0x240
[   62.769071]  [&lt;ffffffff8162a101&gt;] rollback_registered+0x31/0x40
[   62.769073]  [&lt;ffffffff8162a488&gt;] unregister_netdevice_queue+0x58/0x90
[   62.769075]  [&lt;ffffffff8154f900&gt;] __tun_detach+0x140/0x340
[   62.769077]  [&lt;ffffffff8154fb36&gt;] tun_chr_close+0x36/0x60
[   62.769080]  [&lt;ffffffff811bddaf&gt;] __fput+0xff/0x260
[   62.769082]  [&lt;ffffffff811bdf5e&gt;] ____fput+0xe/0x10
[   62.769084]  [&lt;ffffffff8107b515&gt;] task_work_run+0xb5/0xe0
[   62.769087]  [&lt;ffffffff810029b9&gt;] do_notify_resume+0x59/0x80
[   62.769089]  [&lt;ffffffff813a41fe&gt;] ? trace_hardirqs_on_thunk+0x3a/0x3f
[   62.769091]  [&lt;ffffffff81770f5a&gt;] int_signal+0x12/0x17
[   62.769093] ---[ end trace 838756c62e156ffb ]---
[   62.769481] ------------[ cut here ]------------
[   62.769485] WARNING: CPU: 1 PID: 92 at fs/sysfs/inode.c:325 sysfs_hash_and_remove+0xa9/0xb0()
[   62.769486] sysfs: can not remove 'master', no directory
[   62.769486] Modules linked in: openvswitch gre vxlan ip_tunnel libcrc32c ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_CHECKSUM iptable_mangle ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc vhost_net macvtap macvlan vhost kvm_intel kvm dm_crypt iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi hid_generic mxm_wmi eeepc_wmi asus_wmi sparse_keymap dm_multipath psmouse serio_raw usbhid hid parport_pc ppdev firewire_ohci lpc_ich firewire_core e1000e crc_itu_t binfmt_misc igb dca ptp pps_core mac_hid wmi lp parport i2o_config i2o_block video
[   62.769514] CPU: 1 PID: 92 Comm: kworker/1:2 Tainted: G        W    3.12.0-rc3+ #60
[   62.769515] Hardware name: System manufacturer System Product Name/P8Z77 WS, BIOS 3007 07/26/2012
[   62.769518] Workqueue: events ovs_dp_notify_wq [openvswitch]
[   62.769519]  0000000000000009 ffff880807ad3ac8 ffffffff8175e575 0000000000000006
[   62.769521]  ffff880807ad3b18 ffff880807ad3b08 ffffffff8105314c ffff880807ad3b28
[   62.769523]  0000000000000000 ffffffff81a87a1f ffff8807f2634000 ffff880037038500
[   62.769525] Call Trace:
[   62.769528]  [&lt;ffffffff8175e575&gt;] dump_stack+0x55/0x76
[   62.769529]  [&lt;ffffffff8105314c&gt;] warn_slowpath_common+0x8c/0xc0
[   62.769531]  [&lt;ffffffff81053236&gt;] warn_slowpath_fmt+0x46/0x50
[   62.769533]  [&lt;ffffffff8123e7e9&gt;] sysfs_hash_and_remove+0xa9/0xb0
[   62.769535]  [&lt;ffffffff81240e96&gt;] sysfs_remove_link+0x26/0x30
[   62.769538]  [&lt;ffffffff81631ef7&gt;] __netdev_adjacent_dev_remove+0xf7/0x150
[   62.769540]  [&lt;ffffffff81632037&gt;] __netdev_adjacent_dev_unlink_lists+0x27/0x50
[   62.769542]  [&lt;ffffffff8163213a&gt;] __netdev_adjacent_dev_unlink_neighbour+0x3a/0x50
[   62.769544]  [&lt;ffffffff8163218d&gt;] netdev_upper_dev_unlink+0x3d/0x140
[   62.769548]  [&lt;ffffffffa033c2db&gt;] netdev_destroy+0x4b/0x80 [openvswitch]
[   62.769550]  [&lt;ffffffffa033b696&gt;] ovs_vport_del+0x46/0x60 [openvswitch]
[   62.769552]  [&lt;ffffffffa0335314&gt;] ovs_dp_detach_port+0x44/0x60 [openvswitch]
[   62.769555]  [&lt;ffffffffa0336574&gt;] ovs_dp_notify_wq+0xb4/0x150 [openvswitch]
[   62.769557]  [&lt;ffffffff81075c28&gt;] process_one_work+0x1d8/0x6a0
[   62.769559]  [&lt;ffffffff81075bc8&gt;] ? process_one_work+0x178/0x6a0
[   62.769562]  [&lt;ffffffff8107659b&gt;] worker_thread+0x11b/0x370
[   62.769564]  [&lt;ffffffff81076480&gt;] ? rescuer_thread+0x350/0x350
[   62.769566]  [&lt;ffffffff8107f44a&gt;] kthread+0xea/0xf0
[   62.769568]  [&lt;ffffffff8107f360&gt;] ? flush_kthread_worker+0x150/0x150
[   62.769570]  [&lt;ffffffff81770bac&gt;] ret_from_fork+0x7c/0xb0
[   62.769572]  [&lt;ffffffff8107f360&gt;] ? flush_kthread_worker+0x150/0x150
[   62.769573] ---[ end trace 838756c62e156ffc ]---
[   62.769574] ------------[ cut here ]------------
[   62.769576] WARNING: CPU: 1 PID: 92 at fs/sysfs/inode.c:325 sysfs_hash_and_remove+0xa9/0xb0()
[   62.769577] sysfs: can not remove 'upper_test', no directory
[   62.769577] Modules linked in: openvswitch gre vxlan ip_tunnel libcrc32c ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_CHECKSUM iptable_mangle ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc vhost_net macvtap macvlan vhost kvm_intel kvm dm_crypt iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi hid_generic mxm_wmi eeepc_wmi asus_wmi sparse_keymap dm_multipath psmouse serio_raw usbhid hid parport_pc ppdev firewire_ohci lpc_ich firewire_core e1000e crc_itu_t binfmt_misc igb dca ptp pps_core mac_hid wmi lp parport i2o_config i2o_block video
[   62.769603] CPU: 1 PID: 92 Comm: kworker/1:2 Tainted: G        W    3.12.0-rc3+ #60
[   62.769604] Hardware name: System manufacturer System Product Name/P8Z77 WS, BIOS 3007 07/26/2012
[   62.769606] Workqueue: events ovs_dp_notify_wq [openvswitch]
[   62.769607]  0000000000000009 ffff880807ad3ac8 ffffffff8175e575 0000000000000006
[   62.769609]  ffff880807ad3b18 ffff880807ad3b08 ffffffff8105314c ffff880807ad3b58
[   62.769611]  0000000000000000 ffff880807ad3bd9 ffff8807f2634000 ffff880037038500
[   62.769613] Call Trace:
[   62.769615]  [&lt;ffffffff8175e575&gt;] dump_stack+0x55/0x76
[   62.769617]  [&lt;ffffffff8105314c&gt;] warn_slowpath_common+0x8c/0xc0
[   62.769619]  [&lt;ffffffff81053236&gt;] warn_slowpath_fmt+0x46/0x50
[   62.769621]  [&lt;ffffffff8123e7e9&gt;] sysfs_hash_and_remove+0xa9/0xb0
[   62.769622]  [&lt;ffffffff81240e96&gt;] sysfs_remove_link+0x26/0x30
[   62.769624]  [&lt;ffffffff81631f22&gt;] __netdev_adjacent_dev_remove+0x122/0x150
[   62.769627]  [&lt;ffffffff81632037&gt;] __netdev_adjacent_dev_unlink_lists+0x27/0x50
[   62.769629]  [&lt;ffffffff8163213a&gt;] __netdev_adjacent_dev_unlink_neighbour+0x3a/0x50
[   62.769631]  [&lt;ffffffff8163218d&gt;] netdev_upper_dev_unlink+0x3d/0x140
[   62.769633]  [&lt;ffffffffa033c2db&gt;] netdev_destroy+0x4b/0x80 [openvswitch]
[   62.769636]  [&lt;ffffffffa033b696&gt;] ovs_vport_del+0x46/0x60 [openvswitch]
[   62.769638]  [&lt;ffffffffa0335314&gt;] ovs_dp_detach_port+0x44/0x60 [openvswitch]
[   62.769640]  [&lt;ffffffffa0336574&gt;] ovs_dp_notify_wq+0xb4/0x150 [openvswitch]
[   62.769642]  [&lt;ffffffff81075c28&gt;] process_one_work+0x1d8/0x6a0
[   62.769644]  [&lt;ffffffff81075bc8&gt;] ? process_one_work+0x178/0x6a0
[   62.769646]  [&lt;ffffffff8107659b&gt;] worker_thread+0x11b/0x370
[   62.769648]  [&lt;ffffffff81076480&gt;] ? rescuer_thread+0x350/0x350
[   62.769650]  [&lt;ffffffff8107f44a&gt;] kthread+0xea/0xf0
[   62.769652]  [&lt;ffffffff8107f360&gt;] ? flush_kthread_worker+0x150/0x150
[   62.769654]  [&lt;ffffffff81770bac&gt;] ret_from_fork+0x7c/0xb0
[   62.769656]  [&lt;ffffffff8107f360&gt;] ? flush_kthread_worker+0x150/0x150
[   62.769657] ---[ end trace 838756c62e156ffd ]---
[   62.769724] device tap1 left promiscuous mode

This patch also affects moving devices between net namespaces.

OVS used to ignore netns move notifications which caused problems.
Like:
  ovs-dpctl add-if test tap1
  ip link set tap1 netns 3512
and then removing tap1 inside the namespace will cause hang on missing dev_put.

With this patch OVS will detach dev upon receiving netns move event.

Signed-off-by: Alexei Starovoitov &lt;ast@plumgrid.com&gt;
Signed-off-by: Jesse Gross &lt;jesse@nicira.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The combination of two commits:
commit 8e4e1713e4
("openvswitch: Simplify datapath locking.")
commit 2537b4dd0a
("openvswitch:: link upper device for port devices")

introduced a bug where upper_dev wasn't unlinked upon
netdev_unregister notification

The following steps:

  modprobe openvswitch
  ovs-dpctl add-dp test
  ip tuntap add dev tap1 mode tap
  ovs-dpctl add-if test tap1
  ip tuntap del dev tap1 mode tap

are causing multiple warnings:

[   62.747557] gre: GRE over IPv4 demultiplexor driver
[   62.749579] openvswitch: Open vSwitch switching datapath
[   62.755087] device test entered promiscuous mode
[   62.765911] device tap1 entered promiscuous mode
[   62.766033] IPv6: ADDRCONF(NETDEV_UP): tap1: link is not ready
[   62.769017] ------------[ cut here ]------------
[   62.769022] WARNING: CPU: 1 PID: 3267 at net/core/dev.c:5501 rollback_registered_many+0x20f/0x240()
[   62.769023] Modules linked in: openvswitch gre vxlan ip_tunnel libcrc32c ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_CHECKSUM iptable_mangle ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc vhost_net macvtap macvlan vhost kvm_intel kvm dm_crypt iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi hid_generic mxm_wmi eeepc_wmi asus_wmi sparse_keymap dm_multipath psmouse serio_raw usbhid hid parport_pc ppdev firewire_ohci lpc_ich firewire_core e1000e crc_itu_t binfmt_misc igb dca ptp pps_core mac_hid wmi lp parport i2o_config i2o_block video
[   62.769051] CPU: 1 PID: 3267 Comm: ip Not tainted 3.12.0-rc3+ #60
[   62.769052] Hardware name: System manufacturer System Product Name/P8Z77 WS, BIOS 3007 07/26/2012
[   62.769053]  0000000000000009 ffff8807f25cbd28 ffffffff8175e575 0000000000000006
[   62.769055]  0000000000000000 ffff8807f25cbd68 ffffffff8105314c ffff8807f25cbd58
[   62.769057]  ffff8807f2634000 ffff8807f25cbdc8 ffff8807f25cbd88 ffff8807f25cbdc8
[   62.769059] Call Trace:
[   62.769062]  [&lt;ffffffff8175e575&gt;] dump_stack+0x55/0x76
[   62.769065]  [&lt;ffffffff8105314c&gt;] warn_slowpath_common+0x8c/0xc0
[   62.769067]  [&lt;ffffffff8105319a&gt;] warn_slowpath_null+0x1a/0x20
[   62.769069]  [&lt;ffffffff8162a04f&gt;] rollback_registered_many+0x20f/0x240
[   62.769071]  [&lt;ffffffff8162a101&gt;] rollback_registered+0x31/0x40
[   62.769073]  [&lt;ffffffff8162a488&gt;] unregister_netdevice_queue+0x58/0x90
[   62.769075]  [&lt;ffffffff8154f900&gt;] __tun_detach+0x140/0x340
[   62.769077]  [&lt;ffffffff8154fb36&gt;] tun_chr_close+0x36/0x60
[   62.769080]  [&lt;ffffffff811bddaf&gt;] __fput+0xff/0x260
[   62.769082]  [&lt;ffffffff811bdf5e&gt;] ____fput+0xe/0x10
[   62.769084]  [&lt;ffffffff8107b515&gt;] task_work_run+0xb5/0xe0
[   62.769087]  [&lt;ffffffff810029b9&gt;] do_notify_resume+0x59/0x80
[   62.769089]  [&lt;ffffffff813a41fe&gt;] ? trace_hardirqs_on_thunk+0x3a/0x3f
[   62.769091]  [&lt;ffffffff81770f5a&gt;] int_signal+0x12/0x17
[   62.769093] ---[ end trace 838756c62e156ffb ]---
[   62.769481] ------------[ cut here ]------------
[   62.769485] WARNING: CPU: 1 PID: 92 at fs/sysfs/inode.c:325 sysfs_hash_and_remove+0xa9/0xb0()
[   62.769486] sysfs: can not remove 'master', no directory
[   62.769486] Modules linked in: openvswitch gre vxlan ip_tunnel libcrc32c ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_CHECKSUM iptable_mangle ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc vhost_net macvtap macvlan vhost kvm_intel kvm dm_crypt iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi hid_generic mxm_wmi eeepc_wmi asus_wmi sparse_keymap dm_multipath psmouse serio_raw usbhid hid parport_pc ppdev firewire_ohci lpc_ich firewire_core e1000e crc_itu_t binfmt_misc igb dca ptp pps_core mac_hid wmi lp parport i2o_config i2o_block video
[   62.769514] CPU: 1 PID: 92 Comm: kworker/1:2 Tainted: G        W    3.12.0-rc3+ #60
[   62.769515] Hardware name: System manufacturer System Product Name/P8Z77 WS, BIOS 3007 07/26/2012
[   62.769518] Workqueue: events ovs_dp_notify_wq [openvswitch]
[   62.769519]  0000000000000009 ffff880807ad3ac8 ffffffff8175e575 0000000000000006
[   62.769521]  ffff880807ad3b18 ffff880807ad3b08 ffffffff8105314c ffff880807ad3b28
[   62.769523]  0000000000000000 ffffffff81a87a1f ffff8807f2634000 ffff880037038500
[   62.769525] Call Trace:
[   62.769528]  [&lt;ffffffff8175e575&gt;] dump_stack+0x55/0x76
[   62.769529]  [&lt;ffffffff8105314c&gt;] warn_slowpath_common+0x8c/0xc0
[   62.769531]  [&lt;ffffffff81053236&gt;] warn_slowpath_fmt+0x46/0x50
[   62.769533]  [&lt;ffffffff8123e7e9&gt;] sysfs_hash_and_remove+0xa9/0xb0
[   62.769535]  [&lt;ffffffff81240e96&gt;] sysfs_remove_link+0x26/0x30
[   62.769538]  [&lt;ffffffff81631ef7&gt;] __netdev_adjacent_dev_remove+0xf7/0x150
[   62.769540]  [&lt;ffffffff81632037&gt;] __netdev_adjacent_dev_unlink_lists+0x27/0x50
[   62.769542]  [&lt;ffffffff8163213a&gt;] __netdev_adjacent_dev_unlink_neighbour+0x3a/0x50
[   62.769544]  [&lt;ffffffff8163218d&gt;] netdev_upper_dev_unlink+0x3d/0x140
[   62.769548]  [&lt;ffffffffa033c2db&gt;] netdev_destroy+0x4b/0x80 [openvswitch]
[   62.769550]  [&lt;ffffffffa033b696&gt;] ovs_vport_del+0x46/0x60 [openvswitch]
[   62.769552]  [&lt;ffffffffa0335314&gt;] ovs_dp_detach_port+0x44/0x60 [openvswitch]
[   62.769555]  [&lt;ffffffffa0336574&gt;] ovs_dp_notify_wq+0xb4/0x150 [openvswitch]
[   62.769557]  [&lt;ffffffff81075c28&gt;] process_one_work+0x1d8/0x6a0
[   62.769559]  [&lt;ffffffff81075bc8&gt;] ? process_one_work+0x178/0x6a0
[   62.769562]  [&lt;ffffffff8107659b&gt;] worker_thread+0x11b/0x370
[   62.769564]  [&lt;ffffffff81076480&gt;] ? rescuer_thread+0x350/0x350
[   62.769566]  [&lt;ffffffff8107f44a&gt;] kthread+0xea/0xf0
[   62.769568]  [&lt;ffffffff8107f360&gt;] ? flush_kthread_worker+0x150/0x150
[   62.769570]  [&lt;ffffffff81770bac&gt;] ret_from_fork+0x7c/0xb0
[   62.769572]  [&lt;ffffffff8107f360&gt;] ? flush_kthread_worker+0x150/0x150
[   62.769573] ---[ end trace 838756c62e156ffc ]---
[   62.769574] ------------[ cut here ]------------
[   62.769576] WARNING: CPU: 1 PID: 92 at fs/sysfs/inode.c:325 sysfs_hash_and_remove+0xa9/0xb0()
[   62.769577] sysfs: can not remove 'upper_test', no directory
[   62.769577] Modules linked in: openvswitch gre vxlan ip_tunnel libcrc32c ip6table_filter ip6_tables ebtable_nat ebtables nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack xt_CHECKSUM iptable_mangle ipt_REJECT xt_tcpudp iptable_filter ip_tables x_tables bridge stp llc vhost_net macvtap macvlan vhost kvm_intel kvm dm_crypt iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi hid_generic mxm_wmi eeepc_wmi asus_wmi sparse_keymap dm_multipath psmouse serio_raw usbhid hid parport_pc ppdev firewire_ohci lpc_ich firewire_core e1000e crc_itu_t binfmt_misc igb dca ptp pps_core mac_hid wmi lp parport i2o_config i2o_block video
[   62.769603] CPU: 1 PID: 92 Comm: kworker/1:2 Tainted: G        W    3.12.0-rc3+ #60
[   62.769604] Hardware name: System manufacturer System Product Name/P8Z77 WS, BIOS 3007 07/26/2012
[   62.769606] Workqueue: events ovs_dp_notify_wq [openvswitch]
[   62.769607]  0000000000000009 ffff880807ad3ac8 ffffffff8175e575 0000000000000006
[   62.769609]  ffff880807ad3b18 ffff880807ad3b08 ffffffff8105314c ffff880807ad3b58
[   62.769611]  0000000000000000 ffff880807ad3bd9 ffff8807f2634000 ffff880037038500
[   62.769613] Call Trace:
[   62.769615]  [&lt;ffffffff8175e575&gt;] dump_stack+0x55/0x76
[   62.769617]  [&lt;ffffffff8105314c&gt;] warn_slowpath_common+0x8c/0xc0
[   62.769619]  [&lt;ffffffff81053236&gt;] warn_slowpath_fmt+0x46/0x50
[   62.769621]  [&lt;ffffffff8123e7e9&gt;] sysfs_hash_and_remove+0xa9/0xb0
[   62.769622]  [&lt;ffffffff81240e96&gt;] sysfs_remove_link+0x26/0x30
[   62.769624]  [&lt;ffffffff81631f22&gt;] __netdev_adjacent_dev_remove+0x122/0x150
[   62.769627]  [&lt;ffffffff81632037&gt;] __netdev_adjacent_dev_unlink_lists+0x27/0x50
[   62.769629]  [&lt;ffffffff8163213a&gt;] __netdev_adjacent_dev_unlink_neighbour+0x3a/0x50
[   62.769631]  [&lt;ffffffff8163218d&gt;] netdev_upper_dev_unlink+0x3d/0x140
[   62.769633]  [&lt;ffffffffa033c2db&gt;] netdev_destroy+0x4b/0x80 [openvswitch]
[   62.769636]  [&lt;ffffffffa033b696&gt;] ovs_vport_del+0x46/0x60 [openvswitch]
[   62.769638]  [&lt;ffffffffa0335314&gt;] ovs_dp_detach_port+0x44/0x60 [openvswitch]
[   62.769640]  [&lt;ffffffffa0336574&gt;] ovs_dp_notify_wq+0xb4/0x150 [openvswitch]
[   62.769642]  [&lt;ffffffff81075c28&gt;] process_one_work+0x1d8/0x6a0
[   62.769644]  [&lt;ffffffff81075bc8&gt;] ? process_one_work+0x178/0x6a0
[   62.769646]  [&lt;ffffffff8107659b&gt;] worker_thread+0x11b/0x370
[   62.769648]  [&lt;ffffffff81076480&gt;] ? rescuer_thread+0x350/0x350
[   62.769650]  [&lt;ffffffff8107f44a&gt;] kthread+0xea/0xf0
[   62.769652]  [&lt;ffffffff8107f360&gt;] ? flush_kthread_worker+0x150/0x150
[   62.769654]  [&lt;ffffffff81770bac&gt;] ret_from_fork+0x7c/0xb0
[   62.769656]  [&lt;ffffffff8107f360&gt;] ? flush_kthread_worker+0x150/0x150
[   62.769657] ---[ end trace 838756c62e156ffd ]---
[   62.769724] device tap1 left promiscuous mode

This patch also affects moving devices between net namespaces.

OVS used to ignore netns move notifications which caused problems.
Like:
  ovs-dpctl add-if test tap1
  ip link set tap1 netns 3512
and then removing tap1 inside the namespace will cause hang on missing dev_put.

With this patch OVS will detach dev upon receiving netns move event.

Signed-off-by: Alexei Starovoitov &lt;ast@plumgrid.com&gt;
Signed-off-by: Jesse Gross &lt;jesse@nicira.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openvswitch: Remove unused get_config vport op.</title>
<updated>2013-06-14T22:09:09+00:00</updated>
<author>
<name>Jesse Gross</name>
<email>jesse@nicira.com</email>
</author>
<published>2013-05-13T15:16:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cbd531bebb02bc6c0fc3619a2cfc32f7d8843b18'/>
<id>cbd531bebb02bc6c0fc3619a2cfc32f7d8843b18</id>
<content type='text'>
The get_config vport op is left over from old compatibility code,
it is neither used nor implemented any more.

Signed-off-by: Jesse Gross &lt;jesse@nicira.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The get_config vport op is left over from old compatibility code,
it is neither used nor implemented any more.

Signed-off-by: Jesse Gross &lt;jesse@nicira.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openvswitch: Remove unneeded ovs_netdev_get_ifindex()</title>
<updated>2013-04-30T04:19:11+00:00</updated>
<author>
<name>Thomas Graf</name>
<email>tgraf@suug.ch</email>
</author>
<published>2013-04-29T13:06:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cff63a52924c6a78fa525c67d81480c85736ff3c'/>
<id>cff63a52924c6a78fa525c67d81480c85736ff3c</id>
<content type='text'>
The only user is get_dpifindex(), no need to redirect via the port
operations.

Signed-off-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The only user is get_dpifindex(), no need to redirect via the port
operations.

Signed-off-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openvswitch: Use RCU callback when detaching netdevices.</title>
<updated>2012-11-28T22:04:34+00:00</updated>
<author>
<name>Jesse Gross</name>
<email>jesse@nicira.com</email>
</author>
<published>2012-11-28T22:01:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=92eb1d477145b2e7780b5002e856f70b8c3d74da'/>
<id>92eb1d477145b2e7780b5002e856f70b8c3d74da</id>
<content type='text'>
Currently, each time a device is detached from an OVS datapath
we call synchronize RCU before freeing associated data structures.
However, if a bridge is deleted (which detaches all ports) when
many devices are connected then there can be a long delay.  This
switches to use call_rcu() to group the cost together.

Reported-by: Justin Pettit &lt;jpettit@nicira.com&gt;
Signed-off-by: Jesse Gross &lt;jesse@nicira.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, each time a device is detached from an OVS datapath
we call synchronize RCU before freeing associated data structures.
However, if a bridge is deleted (which detaches all ports) when
many devices are connected then there can be a long delay.  This
switches to use call_rcu() to group the cost together.

Reported-by: Justin Pettit &lt;jpettit@nicira.com&gt;
Signed-off-by: Jesse Gross &lt;jesse@nicira.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openvswitch: Replace Nicira Networks.</title>
<updated>2012-05-04T01:55:23+00:00</updated>
<author>
<name>Raju Subramanian</name>
<email>rsubramanian@nicira.com</email>
</author>
<published>2012-05-04T01:55:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=caf2ee14bbc2c6bd73cf0decf576007e0239a482'/>
<id>caf2ee14bbc2c6bd73cf0decf576007e0239a482</id>
<content type='text'>
Replaced all instances of Nicira Networks(, Inc) to Nicira, Inc.

Signed-off-by: Raju Subramanian &lt;rsubramanian@nicira.com&gt;
Signed-off-by: Ben Pfaff &lt;blp@nicira.com&gt;
Signed-off-by: Jesse Gross &lt;jesse@nicira.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Replaced all instances of Nicira Networks(, Inc) to Nicira, Inc.

Signed-off-by: Raju Subramanian &lt;rsubramanian@nicira.com&gt;
Signed-off-by: Ben Pfaff &lt;blp@nicira.com&gt;
Signed-off-by: Jesse Gross &lt;jesse@nicira.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Add Open vSwitch kernel components.</title>
<updated>2011-12-03T17:35:17+00:00</updated>
<author>
<name>Jesse Gross</name>
<email>jesse@nicira.com</email>
</author>
<published>2011-10-26T02:26:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=ccb1352e76cff0524e7ccb2074826a092dd13016'/>
<id>ccb1352e76cff0524e7ccb2074826a092dd13016</id>
<content type='text'>
Open vSwitch is a multilayer Ethernet switch targeted at virtualized
environments.  In addition to supporting a variety of features
expected in a traditional hardware switch, it enables fine-grained
programmatic extension and flow-based control of the network.
This control is useful in a wide variety of applications but is
particularly important in multi-server virtualization deployments,
which are often characterized by highly dynamic endpoints and the need
to maintain logical abstractions for multiple tenants.

The Open vSwitch datapath provides an in-kernel fast path for packet
forwarding.  It is complemented by a userspace daemon, ovs-vswitchd,
which is able to accept configuration from a variety of sources and
translate it into packet processing rules.

See http://openvswitch.org for more information and userspace
utilities.

Signed-off-by: Jesse Gross &lt;jesse@nicira.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Open vSwitch is a multilayer Ethernet switch targeted at virtualized
environments.  In addition to supporting a variety of features
expected in a traditional hardware switch, it enables fine-grained
programmatic extension and flow-based control of the network.
This control is useful in a wide variety of applications but is
particularly important in multi-server virtualization deployments,
which are often characterized by highly dynamic endpoints and the need
to maintain logical abstractions for multiple tenants.

The Open vSwitch datapath provides an in-kernel fast path for packet
forwarding.  It is complemented by a userspace daemon, ovs-vswitchd,
which is able to accept configuration from a variety of sources and
translate it into packet processing rules.

See http://openvswitch.org for more information and userspace
utilities.

Signed-off-by: Jesse Gross &lt;jesse@nicira.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
