<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/net, branch v3.12.19</title>
<subtitle>Linux kernel source tree</subtitle>
<id>https://git.amat.us/linux/atom/net?h=v3.12.19</id>
<link rel='self' href='https://git.amat.us/linux/atom/net?h=v3.12.19'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/'/>
<updated>2014-05-05T12:24:39Z</updated>
<entry>
<title>Bluetooth: Fix removing Long Term Key</title>
<updated>2014-05-05T12:24:39Z</updated>
<author>
<name>Claudio Takahasi</name>
<email>claudio.takahasi@openbossa.org</email>
</author>
<published>2013-07-25T19:34:24Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=626d6cde21ad38e531efeb37f3ae81920e8c9a2f'/>
<id>urn:sha1:626d6cde21ad38e531efeb37f3ae81920e8c9a2f</id>
<content type='text'>
commit 5981a8821b774ada0be512fd9bad7c241e17657e upstream.

This patch fixes authentication failure on LE link re-connection when
BlueZ acts as slave (peripheral). LTK is removed from the internal list
after its first use causing PIN or Key missing reply when re-connecting
the link. The LE Long Term Key Request event indicates that the master
is attempting to encrypt or re-encrypt the link.

Pre-condition: BlueZ host paired and running as slave.
How to reproduce(master):

  1) Establish an ACL LE encrypted link
  2) Disconnect the link
  3) Try to re-establish the ACL LE encrypted link (fails)

&gt; HCI Event: LE Meta Event (0x3e) plen 19
      LE Connection Complete (0x01)
        Status: Success (0x00)
        Handle: 64
        Role: Slave (0x01)
...
@ Device Connected: 00:02:72:DC:29:C9 (1) flags 0x0000
&gt; HCI Event: LE Meta Event (0x3e) plen 13
      LE Long Term Key Request (0x05)
        Handle: 64
        Random number: 875be18439d9aa37
        Encryption diversifier: 0x76ed
&lt; HCI Command: LE Long Term Key Request Reply (0x08|0x001a) plen 18
        Handle: 64
        Long term key: 2aa531db2fce9f00a0569c7d23d17409
&gt; HCI Event: Command Complete (0x0e) plen 6
      LE Long Term Key Request Reply (0x08|0x001a) ncmd 1
        Status: Success (0x00)
        Handle: 64
&gt; HCI Event: Encryption Change (0x08) plen 4
        Status: Success (0x00)
        Handle: 64
        Encryption: Enabled with AES-CCM (0x01)
...
@ Device Disconnected: 00:02:72:DC:29:C9 (1) reason 3
&lt; HCI Command: LE Set Advertise Enable (0x08|0x000a) plen 1
        Advertising: Enabled (0x01)
&gt; HCI Event: Command Complete (0x0e) plen 4
      LE Set Advertise Enable (0x08|0x000a) ncmd 1
        Status: Success (0x00)
&gt; HCI Event: LE Meta Event (0x3e) plen 19
      LE Connection Complete (0x01)
        Status: Success (0x00)
        Handle: 64
        Role: Slave (0x01)
...
@ Device Connected: 00:02:72:DC:29:C9 (1) flags 0x0000
&gt; HCI Event: LE Meta Event (0x3e) plen 13
      LE Long Term Key Request (0x05)
        Handle: 64
        Random number: 875be18439d9aa37
        Encryption diversifier: 0x76ed
&lt; HCI Command: LE Long Term Key Request Neg Reply (0x08|0x001b) plen 2
        Handle: 64
&gt; HCI Event: Command Complete (0x0e) plen 6
      LE Long Term Key Request Neg Reply (0x08|0x001b) ncmd 1
        Status: Success (0x00)
        Handle: 64
&gt; HCI Event: Disconnect Complete (0x05) plen 4
        Status: Success (0x00)
        Handle: 64
        Reason: Authentication Failure (0x05)
@ Device Disconnected: 00:02:72:DC:29:C9 (1) reason 0

Signed-off-by: Claudio Takahasi &lt;claudio.takahasi@openbossa.org&gt;
Signed-off-by: Johan Hedberg &lt;johan.hedberg@intel.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>net: ipv4: current group_info should be put after using.</title>
<updated>2014-05-05T11:39:42Z</updated>
<author>
<name>Wang, Xiaoming</name>
<email>xiaoming.wang@intel.com</email>
</author>
<published>2014-04-14T16:30:45Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=95c3a5624ae783081cc9d9b0e3d24ea19b36590e'/>
<id>urn:sha1:95c3a5624ae783081cc9d9b0e3d24ea19b36590e</id>
<content type='text'>
commit b04c46190219a4f845e46a459e3102137b7f6cac upstream.

Plug a group_info refcount leak in ping_init.
group_info is only needed during initialization and
the code failed to release the reference on exit.
While here move grabbing the reference to a place
where it is actually needed.

Signed-off-by: Chuansheng Liu &lt;chuansheng.liu@intel.com&gt;
Signed-off-by: Zhang Dongxing &lt;dongxing.zhang@intel.com&gt;
Signed-off-by: xiaoming wang &lt;xiaoming.wang@intel.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>openvswitch: fix vport-netdev unregister</title>
<updated>2014-04-25T16:06:20Z</updated>
<author>
<name>Alexei Starovoitov</name>
<email>ast@plumgrid.com</email>
</author>
<published>2013-10-15T21:54:11Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=7d4f4737432af6216e86975e587331b9d8b08063'/>
<id>urn:sha1:7d4f4737432af6216e86975e587331b9d8b08063</id>
<content type='text'>
commit b07c26511e94ab856f3700c56d582c0da36d5b4d upstream.

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;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>rds: prevent dereference of a NULL device in rds_iw_laddr_check</title>
<updated>2014-04-18T09:07:19Z</updated>
<author>
<name>Sasha Levin</name>
<email>sasha.levin@oracle.com</email>
</author>
<published>2014-03-30T00:39:35Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=64005923ffdefe53e87138ec472c88877196d405'/>
<id>urn:sha1:64005923ffdefe53e87138ec472c88877196d405</id>
<content type='text'>
[ Upstream commit bf39b4247b8799935ea91d90db250ab608a58e50 ]

Binding might result in a NULL device which is later dereferenced
without checking.

Signed-off-by: Sasha Levin &lt;sasha.levin@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>ipv6: some ipv6 statistic counters failed to disable bh</title>
<updated>2014-04-18T09:07:16Z</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2014-03-31T18:14:10Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=60fe3f632b692e088f9536a044accb6866dbf36e'/>
<id>urn:sha1:60fe3f632b692e088f9536a044accb6866dbf36e</id>
<content type='text'>
[ Upstream commit 43a43b6040165f7b40b5b489fe61a4cb7f8c4980 ]

After commit c15b1ccadb323ea ("ipv6: move DAD and addrconf_verify
processing to workqueue") some counters are now updated in process context
and thus need to disable bh before doing so, otherwise deadlocks can
happen on 32-bit archs. Fabio Estevam noticed this while while mounting
a NFS volume on an ARM board.

As a compensation for missing this I looked after the other *_STATS_BH
and found three other calls which need updating:

1) icmp6_send: ip6_fragment -&gt; icmpv6_send -&gt; icmp6_send (error handling)
2) ip6_push_pending_frames: rawv6_sendmsg -&gt; rawv6_push_pending_frames -&gt; ...
   (only in case of icmp protocol with raw sockets in error handling)
3) ping6_v6_sendmsg (error handling)

Fixes: c15b1ccadb323ea ("ipv6: move DAD and addrconf_verify processing to workqueue")
Reported-by: Fabio Estevam &lt;festevam@gmail.com&gt;
Tested-by: Fabio Estevam &lt;fabio.estevam@freescale.com&gt;
Cc: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>vlan: Set hard_header_len according to available acceleration</title>
<updated>2014-04-18T09:07:13Z</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-03-26T15:47:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=9ef39f43c0380ea34c0f2d8fc669a81cebd91d4e'/>
<id>urn:sha1:9ef39f43c0380ea34c0f2d8fc669a81cebd91d4e</id>
<content type='text'>
[ Upstream commit fc0d48b8fb449ca007b2057328abf736cb516168 ]

Currently, if the card supports CTAG acceleration we do not
account for the vlan header even if we are configuring an
8021AD vlan.  This may not be best since we'll do software
tagging for 8021AD which will cause data copy on skb head expansion
Configure the length based on available hw offload capabilities and
vlan protocol.

CC: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>ip_tunnel: Fix dst ref-count.</title>
<updated>2014-04-18T09:07:11Z</updated>
<author>
<name>Pravin B Shelar</name>
<email>pshelar@nicira.com</email>
</author>
<published>2014-03-24T05:06:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=71986b40bf31e6d726846409722b1ec91ada162c'/>
<id>urn:sha1:71986b40bf31e6d726846409722b1ec91ada162c</id>
<content type='text'>
[ Upstream commit fbd02dd405d0724a0f25897ed4a6813297c9b96f ]

Commit 10ddceb22ba (ip_tunnel:multicast process cause panic due
to skb-&gt;_skb_refdst NULL pointer) removed dst-drop call from
ip-tunnel-recv.

Following commit reintroduce dst-drop and fix the original bug by
checking loopback packet before releasing dst.
Original bug: https://bugzilla.kernel.org/show_bug.cgi?id=70681

CC: Xin Long &lt;lucien.xin@gmail.com&gt;
Signed-off-by: Pravin B Shelar &lt;pshelar@nicira.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>tipc: fix spinlock recursion bug for failed subscriptions</title>
<updated>2014-04-18T09:07:11Z</updated>
<author>
<name>Erik Hugne</name>
<email>erik.hugne@ericsson.com</email>
</author>
<published>2014-03-24T15:56:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=21a018a58f3c92c7e39ca38b84643bd187e397db'/>
<id>urn:sha1:21a018a58f3c92c7e39ca38b84643bd187e397db</id>
<content type='text'>
[ Upstream commit a5d0e7c037119484a7006b883618bfa87996cb41 ]

If a topology event subscription fails for any reason, such as out
of memory, max number reached or because we received an invalid
request the correct behavior is to terminate the subscribers
connection to the topology server. This is currently broken and
produces the following oops:

[27.953662] tipc: Subscription rejected, illegal request
[27.955329] BUG: spinlock recursion on CPU#1, kworker/u4:0/6
[27.957066]  lock: 0xffff88003c67f408, .magic: dead4ead, .owner: kworker/u4:0/6, .owner_cpu: 1
[27.958054] CPU: 1 PID: 6 Comm: kworker/u4:0 Not tainted 3.14.0-rc6+ #5
[27.960230] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[27.960874] Workqueue: tipc_rcv tipc_recv_work [tipc]
[27.961430]  ffff88003c67f408 ffff88003de27c18 ffffffff815c0207 ffff88003de1c050
[27.962292]  ffff88003de27c38 ffffffff815beec5 ffff88003c67f408 ffffffff817f0a8a
[27.963152]  ffff88003de27c58 ffffffff815beeeb ffff88003c67f408 ffffffffa0013520
[27.964023] Call Trace:
[27.964292]  [&lt;ffffffff815c0207&gt;] dump_stack+0x45/0x56
[27.964874]  [&lt;ffffffff815beec5&gt;] spin_dump+0x8c/0x91
[27.965420]  [&lt;ffffffff815beeeb&gt;] spin_bug+0x21/0x26
[27.965995]  [&lt;ffffffff81083df6&gt;] do_raw_spin_lock+0x116/0x140
[27.966631]  [&lt;ffffffff815c6215&gt;] _raw_spin_lock_bh+0x15/0x20
[27.967256]  [&lt;ffffffffa0008540&gt;] subscr_conn_shutdown_event+0x20/0xa0 [tipc]
[27.968051]  [&lt;ffffffffa000fde4&gt;] tipc_close_conn+0xa4/0xb0 [tipc]
[27.968722]  [&lt;ffffffffa00101ba&gt;] tipc_conn_terminate+0x1a/0x30 [tipc]
[27.969436]  [&lt;ffffffffa00089a2&gt;] subscr_conn_msg_event+0x1f2/0x2f0 [tipc]
[27.970209]  [&lt;ffffffffa0010000&gt;] tipc_receive_from_sock+0x90/0xf0 [tipc]
[27.970972]  [&lt;ffffffffa000fa79&gt;] tipc_recv_work+0x29/0x50 [tipc]
[27.971633]  [&lt;ffffffff8105dbf5&gt;] process_one_work+0x165/0x3e0
[27.972267]  [&lt;ffffffff8105e869&gt;] worker_thread+0x119/0x3a0
[27.972896]  [&lt;ffffffff8105e750&gt;] ? manage_workers.isra.25+0x2a0/0x2a0
[27.973622]  [&lt;ffffffff810648af&gt;] kthread+0xdf/0x100
[27.974168]  [&lt;ffffffff810647d0&gt;] ? kthread_create_on_node+0x1a0/0x1a0
[27.974893]  [&lt;ffffffff815ce13c&gt;] ret_from_fork+0x7c/0xb0
[27.975466]  [&lt;ffffffff810647d0&gt;] ? kthread_create_on_node+0x1a0/0x1a0

The recursion occurs when subscr_terminate tries to grab the
subscriber lock, which is already taken by subscr_conn_msg_event.
We fix this by checking if the request to establish a new
subscription was successful, and if not we initiate termination of
the subscriber after we have released the subscriber lock.

Signed-off-by: Erik Hugne &lt;erik.hugne@ericsson.com&gt;
Reviewed-by: Jon Maloy &lt;jon.maloy@ericsson.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>netpoll: fix the skb check in pkt_is_ns</title>
<updated>2014-04-18T09:07:10Z</updated>
<author>
<name>Li RongQing</name>
<email>roy.qing.li@gmail.com</email>
</author>
<published>2014-03-21T12:53:57Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=d40390bf12065bb1c228e4e8becc4ea62c307b48'/>
<id>urn:sha1:d40390bf12065bb1c228e4e8becc4ea62c307b48</id>
<content type='text'>
[ Not applicable upstream commit, the code here has been removed
  upstream. ]

Neighbor Solicitation is ipv6 protocol, so we should check
skb-&gt;protocol with ETH_P_IPV6

Signed-off-by: Li RongQing &lt;roy.qing.li@gmail.com&gt;
Cc: WANG Cong &lt;amwang@redhat.com&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
<entry>
<title>ip6mr: fix mfc notification flags</title>
<updated>2014-04-18T09:07:09Z</updated>
<author>
<name>Nicolas Dichtel</name>
<email>nicolas.dichtel@6wind.com</email>
</author>
<published>2014-03-19T16:47:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/linux/commit/?id=5d0d91da73f727eda31b8600e6f6d7b8579cbe20'/>
<id>urn:sha1:5d0d91da73f727eda31b8600e6f6d7b8579cbe20</id>
<content type='text'>
[ Upstream commit f518338b16038beeb73e155e60d0f70beb9379f4 ]

Commit 812e44dd1829 ("ip6mr: advertise new mfc entries via rtnl") reuses the
function ip6mr_fill_mroute() to notify mfc events.
But this function was used only for dump and thus was always setting the
flag NLM_F_MULTI, which is wrong in case of a single notification.

Libraries like libnl will wait forever for NLMSG_DONE.

CC: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Acked-by: Thomas Graf &lt;tgraf@suug.ch&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Jiri Slaby &lt;jslaby@suse.cz&gt;
</content>
</entry>
</feed>
