<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net, branch v3.14.3</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>nfsd: check passed socket's net matches NFSd superblock's one</title>
<updated>2014-05-06T14:59:28+00:00</updated>
<author>
<name>Stanislav Kinsbursky</name>
<email>skinsbursky@parallels.com</email>
</author>
<published>2014-02-26T13:50:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=34ef215eede8f77b8f27d35096aa9e4aa149d522'/>
<id>34ef215eede8f77b8f27d35096aa9e4aa149d522</id>
<content type='text'>
commit 3064639423c48d6e0eb9ecc27c512a58e38c6c57 upstream.

There could be a case, when NFSd file system is mounted in network, different
to socket's one, like below:

"ip netns exec" creates new network and mount namespace, which duplicates NFSd
mount point, created in init_net context. And thus NFS server stop in nested
network context leads to RPCBIND client destruction in init_net.
Then, on NFSd start in nested network context, rpc.nfsd process creates socket
in nested net and passes it into "write_ports", which leads to RPCBIND sockets
creation in init_net context because of the same reason (NFSd monut point was
created in init_net context). An attempt to register passed socket in nested
net leads to panic, because no RPCBIND client present in nexted network
namespace.

This patch add check that passed socket's net matches NFSd superblock's one.
And returns -EINVAL error to user psace otherwise.

v2: Put socket on exit.

Reported-by: Weng Meiling &lt;wengmeiling.weng@huawei.com&gt;
Signed-off-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit 3064639423c48d6e0eb9ecc27c512a58e38c6c57 upstream.

There could be a case, when NFSd file system is mounted in network, different
to socket's one, like below:

"ip netns exec" creates new network and mount namespace, which duplicates NFSd
mount point, created in init_net context. And thus NFS server stop in nested
network context leads to RPCBIND client destruction in init_net.
Then, on NFSd start in nested network context, rpc.nfsd process creates socket
in nested net and passes it into "write_ports", which leads to RPCBIND sockets
creation in init_net context because of the same reason (NFSd monut point was
created in init_net context). An attempt to register passed socket in nested
net leads to panic, because no RPCBIND client present in nexted network
namespace.

This patch add check that passed socket's net matches NFSd superblock's one.
And returns -EINVAL error to user psace otherwise.

v2: Put socket on exit.

Reported-by: Weng Meiling &lt;wengmeiling.weng@huawei.com&gt;
Signed-off-by: Stanislav Kinsbursky &lt;skinsbursky@parallels.com&gt;
Signed-off-by: J. Bruce Fields &lt;bfields@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>Bluetooth: Fix removing Long Term Key</title>
<updated>2014-04-27T00:19:04+00:00</updated>
<author>
<name>Claudio Takahasi</name>
<email>claudio.takahasi@openbossa.org</email>
</author>
<published>2013-07-25T19:34:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=cf151ce1869c43c271163eba3de13d13ceac282e'/>
<id>cf151ce1869c43c271163eba3de13d13ceac282e</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: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>rds: prevent dereference of a NULL device in rds_iw_laddr_check</title>
<updated>2014-04-14T13:50:04+00:00</updated>
<author>
<name>Sasha Levin</name>
<email>sasha.levin@oracle.com</email>
</author>
<published>2014-03-30T00:39:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=eb3d1ebaa77c257872264015644f182c7888c021'/>
<id>eb3d1ebaa77c257872264015644f182c7888c021</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: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ 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: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: some ipv6 statistic counters failed to disable bh</title>
<updated>2014-04-14T13:50:03+00:00</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2014-03-31T18:14:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b88dbb025dd2c418227b300d66f75e31435ebf9d'/>
<id>b88dbb025dd2c418227b300d66f75e31435ebf9d</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: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ 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: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>vlan: Warn the user if lowerdev has bad vlan features.</title>
<updated>2014-03-28T21:16:51+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-03-28T02:14:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2adb956b084d6d49f519541a4b5f9947e96f8ef7'/>
<id>2adb956b084d6d49f519541a4b5f9947e96f8ef7</id>
<content type='text'>
Some drivers incorrectly assign vlan acceleration features to
vlan_features thus causing issues for Q-in-Q vlan configurations.
Warn the user of such cases.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&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>
Some drivers incorrectly assign vlan acceleration features to
vlan_features thus causing issues for Q-in-Q vlan configurations.
Warn the user of such cases.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bridge: Fix crash with vlan filtering and tcpdump</title>
<updated>2014-03-28T21:14:02+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-03-28T01:51:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=fc92f745f8d0d3736ce5afb00a905d7cc61f9c46'/>
<id>fc92f745f8d0d3736ce5afb00a905d7cc61f9c46</id>
<content type='text'>
When the vlan filtering is enabled on the bridge, but
the filter is not configured on the bridge device itself,
running tcpdump on the bridge device will result in a
an Oops with NULL pointer dereference.  The reason
is that br_pass_frame_up() will bypass the vlan
check because promisc flag is set.  It will then try
to get the table pointer and process the packet based
on the table.  Since the table pointer is NULL, we oops.
Catch this special condition in br_handle_vlan().

Reported-by: Toshiaki Makita &lt;makita.toshiaki@lab.ntt.co.jp&gt;
CC: Toshiaki Makita &lt;makita.toshiaki@lab.ntt.co.jp&gt;
Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Acked-by: Toshiaki Makita &lt;makita.toshiaki@lab.ntt.co.jp&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>
When the vlan filtering is enabled on the bridge, but
the filter is not configured on the bridge device itself,
running tcpdump on the bridge device will result in a
an Oops with NULL pointer dereference.  The reason
is that br_pass_frame_up() will bypass the vlan
check because promisc flag is set.  It will then try
to get the table pointer and process the packet based
on the table.  Since the table pointer is NULL, we oops.
Catch this special condition in br_handle_vlan().

Reported-by: Toshiaki Makita &lt;makita.toshiaki@lab.ntt.co.jp&gt;
CC: Toshiaki Makita &lt;makita.toshiaki@lab.ntt.co.jp&gt;
Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Acked-by: Toshiaki Makita &lt;makita.toshiaki@lab.ntt.co.jp&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Account for all vlan headers in skb_mac_gso_segment</title>
<updated>2014-03-28T21:10:36+00:00</updated>
<author>
<name>Vlad Yasevich</name>
<email>vyasevic@redhat.com</email>
</author>
<published>2014-03-27T21:26:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=53d6471cef17262d3ad1c7ce8982a234244f68ec'/>
<id>53d6471cef17262d3ad1c7ce8982a234244f68ec</id>
<content type='text'>
skb_network_protocol() already accounts for multiple vlan
headers that may be present in the skb.  However, skb_mac_gso_segment()
doesn't know anything about it and assumes that skb-&gt;mac_len
is set correctly to skip all mac headers.  That may not
always be the case.  If we are simply forwarding the packet (via
bridge or macvtap), all vlan headers may not be accounted for.

A simple solution is to allow skb_network_protocol to return
the vlan depth it has calculated.  This way skb_mac_gso_segment
will correctly skip all mac headers.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&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>
skb_network_protocol() already accounts for multiple vlan
headers that may be present in the skb.  However, skb_mac_gso_segment()
doesn't know anything about it and assumes that skb-&gt;mac_len
is set correctly to skip all mac headers.  That may not
always be the case.  If we are simply forwarding the packet (via
bridge or macvtap), all vlan headers may not be accounted for.

A simple solution is to allow skb_network_protocol to return
the vlan depth it has calculated.  This way skb_mac_gso_segment
will correctly skip all mac headers.

Signed-off-by: Vlad Yasevich &lt;vyasevic@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipv6: move DAD and addrconf_verify processing to workqueue</title>
<updated>2014-03-28T20:54:50+00:00</updated>
<author>
<name>Hannes Frederic Sowa</name>
<email>hannes@stressinduktion.org</email>
</author>
<published>2014-03-27T17:28:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c15b1ccadb323ea50023e8f1cca2954129a62b51'/>
<id>c15b1ccadb323ea50023e8f1cca2954129a62b51</id>
<content type='text'>
addrconf_join_solict and addrconf_join_anycast may cause actions which
need rtnl locked, especially on first address creation.

A new DAD state is introduced which defers processing of the initial
DAD processing into a workqueue.

To get rtnl lock we need to push the code paths which depend on those
calls up to workqueues, specifically addrconf_verify and the DAD
processing.

(v2)
addrconf_dad_failure needs to be queued up to the workqueue, too. This
patch introduces a new DAD state and stop the DAD processing in the
workqueue (this is because of the possible ipv6_del_addr processing
which removes the solicited multicast address from the device).

addrconf_verify_lock is removed, too. After the transition it is not
needed any more.

As we are not processing in bottom half anymore we need to be a bit more
careful about disabling bottom half out when we lock spin_locks which are also
used in bh.

Relevant backtrace:
[  541.030090] RTNL: assertion failed at net/core/dev.c (4496)
[  541.031143] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           O 3.10.33-1-amd64-vyatta #1
[  541.031145] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[  541.031146]  ffffffff8148a9f0 000000000000002f ffffffff813c98c1 ffff88007c4451f8
[  541.031148]  0000000000000000 0000000000000000 ffffffff813d3540 ffff88007fc03d18
[  541.031150]  0000880000000006 ffff88007c445000 ffffffffa0194160 0000000000000000
[  541.031152] Call Trace:
[  541.031153]  &lt;IRQ&gt;  [&lt;ffffffff8148a9f0&gt;] ? dump_stack+0xd/0x17
[  541.031180]  [&lt;ffffffff813c98c1&gt;] ? __dev_set_promiscuity+0x101/0x180
[  541.031183]  [&lt;ffffffff813d3540&gt;] ? __hw_addr_create_ex+0x60/0xc0
[  541.031185]  [&lt;ffffffff813cfe1a&gt;] ? __dev_set_rx_mode+0xaa/0xc0
[  541.031189]  [&lt;ffffffff813d3a81&gt;] ? __dev_mc_add+0x61/0x90
[  541.031198]  [&lt;ffffffffa01dcf9c&gt;] ? igmp6_group_added+0xfc/0x1a0 [ipv6]
[  541.031208]  [&lt;ffffffff8111237b&gt;] ? kmem_cache_alloc+0xcb/0xd0
[  541.031212]  [&lt;ffffffffa01ddcd7&gt;] ? ipv6_dev_mc_inc+0x267/0x300 [ipv6]
[  541.031216]  [&lt;ffffffffa01c2fae&gt;] ? addrconf_join_solict+0x2e/0x40 [ipv6]
[  541.031219]  [&lt;ffffffffa01ba2e9&gt;] ? ipv6_dev_ac_inc+0x159/0x1f0 [ipv6]
[  541.031223]  [&lt;ffffffffa01c0772&gt;] ? addrconf_join_anycast+0x92/0xa0 [ipv6]
[  541.031226]  [&lt;ffffffffa01c311e&gt;] ? __ipv6_ifa_notify+0x11e/0x1e0 [ipv6]
[  541.031229]  [&lt;ffffffffa01c3213&gt;] ? ipv6_ifa_notify+0x33/0x50 [ipv6]
[  541.031233]  [&lt;ffffffffa01c36c8&gt;] ? addrconf_dad_completed+0x28/0x100 [ipv6]
[  541.031241]  [&lt;ffffffff81075c1d&gt;] ? task_cputime+0x2d/0x50
[  541.031244]  [&lt;ffffffffa01c38d6&gt;] ? addrconf_dad_timer+0x136/0x150 [ipv6]
[  541.031247]  [&lt;ffffffffa01c37a0&gt;] ? addrconf_dad_completed+0x100/0x100 [ipv6]
[  541.031255]  [&lt;ffffffff8105313a&gt;] ? call_timer_fn.isra.22+0x2a/0x90
[  541.031258]  [&lt;ffffffffa01c37a0&gt;] ? addrconf_dad_completed+0x100/0x100 [ipv6]

Hunks and backtrace stolen from a patch by Stephen Hemminger.

Reported-by: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Signed-off-by: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&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>
addrconf_join_solict and addrconf_join_anycast may cause actions which
need rtnl locked, especially on first address creation.

A new DAD state is introduced which defers processing of the initial
DAD processing into a workqueue.

To get rtnl lock we need to push the code paths which depend on those
calls up to workqueues, specifically addrconf_verify and the DAD
processing.

(v2)
addrconf_dad_failure needs to be queued up to the workqueue, too. This
patch introduces a new DAD state and stop the DAD processing in the
workqueue (this is because of the possible ipv6_del_addr processing
which removes the solicited multicast address from the device).

addrconf_verify_lock is removed, too. After the transition it is not
needed any more.

As we are not processing in bottom half anymore we need to be a bit more
careful about disabling bottom half out when we lock spin_locks which are also
used in bh.

Relevant backtrace:
[  541.030090] RTNL: assertion failed at net/core/dev.c (4496)
[  541.031143] CPU: 0 PID: 0 Comm: swapper/0 Tainted: G           O 3.10.33-1-amd64-vyatta #1
[  541.031145] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2007
[  541.031146]  ffffffff8148a9f0 000000000000002f ffffffff813c98c1 ffff88007c4451f8
[  541.031148]  0000000000000000 0000000000000000 ffffffff813d3540 ffff88007fc03d18
[  541.031150]  0000880000000006 ffff88007c445000 ffffffffa0194160 0000000000000000
[  541.031152] Call Trace:
[  541.031153]  &lt;IRQ&gt;  [&lt;ffffffff8148a9f0&gt;] ? dump_stack+0xd/0x17
[  541.031180]  [&lt;ffffffff813c98c1&gt;] ? __dev_set_promiscuity+0x101/0x180
[  541.031183]  [&lt;ffffffff813d3540&gt;] ? __hw_addr_create_ex+0x60/0xc0
[  541.031185]  [&lt;ffffffff813cfe1a&gt;] ? __dev_set_rx_mode+0xaa/0xc0
[  541.031189]  [&lt;ffffffff813d3a81&gt;] ? __dev_mc_add+0x61/0x90
[  541.031198]  [&lt;ffffffffa01dcf9c&gt;] ? igmp6_group_added+0xfc/0x1a0 [ipv6]
[  541.031208]  [&lt;ffffffff8111237b&gt;] ? kmem_cache_alloc+0xcb/0xd0
[  541.031212]  [&lt;ffffffffa01ddcd7&gt;] ? ipv6_dev_mc_inc+0x267/0x300 [ipv6]
[  541.031216]  [&lt;ffffffffa01c2fae&gt;] ? addrconf_join_solict+0x2e/0x40 [ipv6]
[  541.031219]  [&lt;ffffffffa01ba2e9&gt;] ? ipv6_dev_ac_inc+0x159/0x1f0 [ipv6]
[  541.031223]  [&lt;ffffffffa01c0772&gt;] ? addrconf_join_anycast+0x92/0xa0 [ipv6]
[  541.031226]  [&lt;ffffffffa01c311e&gt;] ? __ipv6_ifa_notify+0x11e/0x1e0 [ipv6]
[  541.031229]  [&lt;ffffffffa01c3213&gt;] ? ipv6_ifa_notify+0x33/0x50 [ipv6]
[  541.031233]  [&lt;ffffffffa01c36c8&gt;] ? addrconf_dad_completed+0x28/0x100 [ipv6]
[  541.031241]  [&lt;ffffffff81075c1d&gt;] ? task_cputime+0x2d/0x50
[  541.031244]  [&lt;ffffffffa01c38d6&gt;] ? addrconf_dad_timer+0x136/0x150 [ipv6]
[  541.031247]  [&lt;ffffffffa01c37a0&gt;] ? addrconf_dad_completed+0x100/0x100 [ipv6]
[  541.031255]  [&lt;ffffffff8105313a&gt;] ? call_timer_fn.isra.22+0x2a/0x90
[  541.031258]  [&lt;ffffffffa01c37a0&gt;] ? addrconf_dad_completed+0x100/0x100 [ipv6]

Hunks and backtrace stolen from a patch by Stephen Hemminger.

Reported-by: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Signed-off-by: Stephen Hemminger &lt;stephen@networkplumber.org&gt;
Signed-off-by: Hannes Frederic Sowa &lt;hannes@stressinduktion.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>tcp: fix get_timewait4_sock() delay computation on 64bit</title>
<updated>2014-03-28T20:43:14+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2014-03-27T14:19:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=e2a1d3e47bb904082b758dec9d07edf241c45d05'/>
<id>e2a1d3e47bb904082b758dec9d07edf241c45d05</id>
<content type='text'>
It seems I missed one change in get_timewait4_sock() to compute
the remaining time before deletion of IPV4 timewait socket.

This could result in wrong output in /proc/net/tcp for tm-&gt;when field.

Fixes: 96f817fedec4 ("tcp: shrink tcp6_timewait_sock by one cache line")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&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>
It seems I missed one change in get_timewait4_sock() to compute
the remaining time before deletion of IPV4 timewait socket.

This could result in wrong output in /proc/net/tcp for tm-&gt;when field.

Fixes: 96f817fedec4 ("tcp: shrink tcp6_timewait_sock by one cache line")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>openvswitch: fix a possible deadlock and lockdep warning</title>
<updated>2014-03-28T20:41:53+00:00</updated>
<author>
<name>Flavio Leitner</name>
<email>fbl@redhat.com</email>
</author>
<published>2014-03-27T14:05:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=4f647e0a3c37b8d5086214128614a136064110c3'/>
<id>4f647e0a3c37b8d5086214128614a136064110c3</id>
<content type='text'>
There are two problematic situations.

A deadlock can happen when is_percpu is false because it can get
interrupted while holding the spinlock. Then it executes
ovs_flow_stats_update() in softirq context which tries to get
the same lock.

The second sitation is that when is_percpu is true, the code
correctly disables BH but only for the local CPU, so the
following can happen when locking the remote CPU without
disabling BH:

       CPU#0                            CPU#1
  ovs_flow_stats_get()
   stats_read()
 +-&gt;spin_lock remote CPU#1        ovs_flow_stats_get()
 |  &lt;interrupted&gt;                  stats_read()
 |  ...                       +--&gt;  spin_lock remote CPU#0
 |                            |     &lt;interrupted&gt;
 |  ovs_flow_stats_update()   |     ...
 |   spin_lock local CPU#0 &lt;--+     ovs_flow_stats_update()
 +---------------------------------- spin_lock local CPU#1

This patch disables BH for both cases fixing the deadlocks.
Acked-by: Jesse Gross &lt;jesse@nicira.com&gt;

=================================
[ INFO: inconsistent lock state ]
3.14.0-rc8-00007-g632b06a #1 Tainted: G          I
---------------------------------
inconsistent {SOFTIRQ-ON-W} -&gt; {IN-SOFTIRQ-W} usage.
swapper/0/0 [HC0[0]:SC1[5]:HE1:SE0] takes:
(&amp;(&amp;cpu_stats-&gt;lock)-&gt;rlock){+.?...}, at: [&lt;ffffffffa05dd8a1&gt;] ovs_flow_stats_update+0x51/0xd0 [openvswitch]
{SOFTIRQ-ON-W} state was registered at:
[&lt;ffffffff810f973f&gt;] __lock_acquire+0x68f/0x1c40
[&lt;ffffffff810fb4e2&gt;] lock_acquire+0xa2/0x1d0
[&lt;ffffffff817d8d9e&gt;] _raw_spin_lock+0x3e/0x80
[&lt;ffffffffa05dd9e4&gt;] ovs_flow_stats_get+0xc4/0x1e0 [openvswitch]
[&lt;ffffffffa05da855&gt;] ovs_flow_cmd_fill_info+0x185/0x360 [openvswitch]
[&lt;ffffffffa05daf05&gt;] ovs_flow_cmd_build_info.constprop.27+0x55/0x90 [openvswitch]
[&lt;ffffffffa05db41d&gt;] ovs_flow_cmd_new_or_set+0x4dd/0x570 [openvswitch]
[&lt;ffffffff816c245d&gt;] genl_family_rcv_msg+0x1cd/0x3f0
[&lt;ffffffff816c270e&gt;] genl_rcv_msg+0x8e/0xd0
[&lt;ffffffff816c0239&gt;] netlink_rcv_skb+0xa9/0xc0
[&lt;ffffffff816c0798&gt;] genl_rcv+0x28/0x40
[&lt;ffffffff816bf830&gt;] netlink_unicast+0x100/0x1e0
[&lt;ffffffff816bfc57&gt;] netlink_sendmsg+0x347/0x770
[&lt;ffffffff81668e9c&gt;] sock_sendmsg+0x9c/0xe0
[&lt;ffffffff816692d9&gt;] ___sys_sendmsg+0x3a9/0x3c0
[&lt;ffffffff8166a911&gt;] __sys_sendmsg+0x51/0x90
[&lt;ffffffff8166a962&gt;] SyS_sendmsg+0x12/0x20
[&lt;ffffffff817e3ce9&gt;] system_call_fastpath+0x16/0x1b
irq event stamp: 1740726
hardirqs last  enabled at (1740726): [&lt;ffffffff8175d5e0&gt;] ip6_finish_output2+0x4f0/0x840
hardirqs last disabled at (1740725): [&lt;ffffffff8175d59b&gt;] ip6_finish_output2+0x4ab/0x840
softirqs last  enabled at (1740674): [&lt;ffffffff8109be12&gt;] _local_bh_enable+0x22/0x50
softirqs last disabled at (1740675): [&lt;ffffffff8109db05&gt;] irq_exit+0xc5/0xd0

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&amp;(&amp;cpu_stats-&gt;lock)-&gt;rlock);
  &lt;Interrupt&gt;
    lock(&amp;(&amp;cpu_stats-&gt;lock)-&gt;rlock);

 *** DEADLOCK ***

5 locks held by swapper/0/0:
 #0:  (((&amp;ifa-&gt;dad_timer))){+.-...}, at: [&lt;ffffffff810a7155&gt;] call_timer_fn+0x5/0x320
 #1:  (rcu_read_lock){.+.+..}, at: [&lt;ffffffff81788a55&gt;] mld_sendpack+0x5/0x4a0
 #2:  (rcu_read_lock_bh){.+....}, at: [&lt;ffffffff8175d149&gt;] ip6_finish_output2+0x59/0x840
 #3:  (rcu_read_lock_bh){.+....}, at: [&lt;ffffffff8168ba75&gt;] __dev_queue_xmit+0x5/0x9b0
 #4:  (rcu_read_lock){.+.+..}, at: [&lt;ffffffffa05e41b5&gt;] internal_dev_xmit+0x5/0x110 [openvswitch]

stack backtrace:
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G          I  3.14.0-rc8-00007-g632b06a #1
Hardware name:                  /DX58SO, BIOS SOX5810J.86A.5599.2012.0529.2218 05/29/2012
 0000000000000000 0fcf20709903df0c ffff88042d603808 ffffffff817cfe3c
 ffffffff81c134c0 ffff88042d603858 ffffffff817cb6da 0000000000000005
 ffffffff00000001 ffff880400000000 0000000000000006 ffffffff81c134c0
Call Trace:
 &lt;IRQ&gt;  [&lt;ffffffff817cfe3c&gt;] dump_stack+0x4d/0x66
 [&lt;ffffffff817cb6da&gt;] print_usage_bug+0x1f4/0x205
 [&lt;ffffffff810f7f10&gt;] ? check_usage_backwards+0x180/0x180
 [&lt;ffffffff810f8963&gt;] mark_lock+0x223/0x2b0
 [&lt;ffffffff810f96d3&gt;] __lock_acquire+0x623/0x1c40
 [&lt;ffffffff810f5707&gt;] ? __lock_is_held+0x57/0x80
 [&lt;ffffffffa05e26c6&gt;] ? masked_flow_lookup+0x236/0x250 [openvswitch]
 [&lt;ffffffff810fb4e2&gt;] lock_acquire+0xa2/0x1d0
 [&lt;ffffffffa05dd8a1&gt;] ? ovs_flow_stats_update+0x51/0xd0 [openvswitch]
 [&lt;ffffffff817d8d9e&gt;] _raw_spin_lock+0x3e/0x80
 [&lt;ffffffffa05dd8a1&gt;] ? ovs_flow_stats_update+0x51/0xd0 [openvswitch]
 [&lt;ffffffffa05dd8a1&gt;] ovs_flow_stats_update+0x51/0xd0 [openvswitch]
 [&lt;ffffffffa05dcc64&gt;] ovs_dp_process_received_packet+0x84/0x120 [openvswitch]
 [&lt;ffffffff810f93f7&gt;] ? __lock_acquire+0x347/0x1c40
 [&lt;ffffffffa05e3bea&gt;] ovs_vport_receive+0x2a/0x30 [openvswitch]
 [&lt;ffffffffa05e4218&gt;] internal_dev_xmit+0x68/0x110 [openvswitch]
 [&lt;ffffffffa05e41b5&gt;] ? internal_dev_xmit+0x5/0x110 [openvswitch]
 [&lt;ffffffff8168b4a6&gt;] dev_hard_start_xmit+0x2e6/0x8b0
 [&lt;ffffffff8168be87&gt;] __dev_queue_xmit+0x417/0x9b0
 [&lt;ffffffff8168ba75&gt;] ? __dev_queue_xmit+0x5/0x9b0
 [&lt;ffffffff8175d5e0&gt;] ? ip6_finish_output2+0x4f0/0x840
 [&lt;ffffffff8168c430&gt;] dev_queue_xmit+0x10/0x20
 [&lt;ffffffff8175d641&gt;] ip6_finish_output2+0x551/0x840
 [&lt;ffffffff8176128a&gt;] ? ip6_finish_output+0x9a/0x220
 [&lt;ffffffff8176128a&gt;] ip6_finish_output+0x9a/0x220
 [&lt;ffffffff8176145f&gt;] ip6_output+0x4f/0x1f0
 [&lt;ffffffff81788c29&gt;] mld_sendpack+0x1d9/0x4a0
 [&lt;ffffffff817895b8&gt;] mld_send_initial_cr.part.32+0x88/0xa0
 [&lt;ffffffff817691b0&gt;] ? addrconf_dad_completed+0x220/0x220
 [&lt;ffffffff8178e301&gt;] ipv6_mc_dad_complete+0x31/0x50
 [&lt;ffffffff817690d7&gt;] addrconf_dad_completed+0x147/0x220
 [&lt;ffffffff817691b0&gt;] ? addrconf_dad_completed+0x220/0x220
 [&lt;ffffffff8176934f&gt;] addrconf_dad_timer+0x19f/0x1c0
 [&lt;ffffffff810a71e9&gt;] call_timer_fn+0x99/0x320
 [&lt;ffffffff810a7155&gt;] ? call_timer_fn+0x5/0x320
 [&lt;ffffffff817691b0&gt;] ? addrconf_dad_completed+0x220/0x220
 [&lt;ffffffff810a76c4&gt;] run_timer_softirq+0x254/0x3b0
 [&lt;ffffffff8109d47d&gt;] __do_softirq+0x12d/0x480

Signed-off-by: Flavio Leitner &lt;fbl@redhat.com&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>
There are two problematic situations.

A deadlock can happen when is_percpu is false because it can get
interrupted while holding the spinlock. Then it executes
ovs_flow_stats_update() in softirq context which tries to get
the same lock.

The second sitation is that when is_percpu is true, the code
correctly disables BH but only for the local CPU, so the
following can happen when locking the remote CPU without
disabling BH:

       CPU#0                            CPU#1
  ovs_flow_stats_get()
   stats_read()
 +-&gt;spin_lock remote CPU#1        ovs_flow_stats_get()
 |  &lt;interrupted&gt;                  stats_read()
 |  ...                       +--&gt;  spin_lock remote CPU#0
 |                            |     &lt;interrupted&gt;
 |  ovs_flow_stats_update()   |     ...
 |   spin_lock local CPU#0 &lt;--+     ovs_flow_stats_update()
 +---------------------------------- spin_lock local CPU#1

This patch disables BH for both cases fixing the deadlocks.
Acked-by: Jesse Gross &lt;jesse@nicira.com&gt;

=================================
[ INFO: inconsistent lock state ]
3.14.0-rc8-00007-g632b06a #1 Tainted: G          I
---------------------------------
inconsistent {SOFTIRQ-ON-W} -&gt; {IN-SOFTIRQ-W} usage.
swapper/0/0 [HC0[0]:SC1[5]:HE1:SE0] takes:
(&amp;(&amp;cpu_stats-&gt;lock)-&gt;rlock){+.?...}, at: [&lt;ffffffffa05dd8a1&gt;] ovs_flow_stats_update+0x51/0xd0 [openvswitch]
{SOFTIRQ-ON-W} state was registered at:
[&lt;ffffffff810f973f&gt;] __lock_acquire+0x68f/0x1c40
[&lt;ffffffff810fb4e2&gt;] lock_acquire+0xa2/0x1d0
[&lt;ffffffff817d8d9e&gt;] _raw_spin_lock+0x3e/0x80
[&lt;ffffffffa05dd9e4&gt;] ovs_flow_stats_get+0xc4/0x1e0 [openvswitch]
[&lt;ffffffffa05da855&gt;] ovs_flow_cmd_fill_info+0x185/0x360 [openvswitch]
[&lt;ffffffffa05daf05&gt;] ovs_flow_cmd_build_info.constprop.27+0x55/0x90 [openvswitch]
[&lt;ffffffffa05db41d&gt;] ovs_flow_cmd_new_or_set+0x4dd/0x570 [openvswitch]
[&lt;ffffffff816c245d&gt;] genl_family_rcv_msg+0x1cd/0x3f0
[&lt;ffffffff816c270e&gt;] genl_rcv_msg+0x8e/0xd0
[&lt;ffffffff816c0239&gt;] netlink_rcv_skb+0xa9/0xc0
[&lt;ffffffff816c0798&gt;] genl_rcv+0x28/0x40
[&lt;ffffffff816bf830&gt;] netlink_unicast+0x100/0x1e0
[&lt;ffffffff816bfc57&gt;] netlink_sendmsg+0x347/0x770
[&lt;ffffffff81668e9c&gt;] sock_sendmsg+0x9c/0xe0
[&lt;ffffffff816692d9&gt;] ___sys_sendmsg+0x3a9/0x3c0
[&lt;ffffffff8166a911&gt;] __sys_sendmsg+0x51/0x90
[&lt;ffffffff8166a962&gt;] SyS_sendmsg+0x12/0x20
[&lt;ffffffff817e3ce9&gt;] system_call_fastpath+0x16/0x1b
irq event stamp: 1740726
hardirqs last  enabled at (1740726): [&lt;ffffffff8175d5e0&gt;] ip6_finish_output2+0x4f0/0x840
hardirqs last disabled at (1740725): [&lt;ffffffff8175d59b&gt;] ip6_finish_output2+0x4ab/0x840
softirqs last  enabled at (1740674): [&lt;ffffffff8109be12&gt;] _local_bh_enable+0x22/0x50
softirqs last disabled at (1740675): [&lt;ffffffff8109db05&gt;] irq_exit+0xc5/0xd0

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&amp;(&amp;cpu_stats-&gt;lock)-&gt;rlock);
  &lt;Interrupt&gt;
    lock(&amp;(&amp;cpu_stats-&gt;lock)-&gt;rlock);

 *** DEADLOCK ***

5 locks held by swapper/0/0:
 #0:  (((&amp;ifa-&gt;dad_timer))){+.-...}, at: [&lt;ffffffff810a7155&gt;] call_timer_fn+0x5/0x320
 #1:  (rcu_read_lock){.+.+..}, at: [&lt;ffffffff81788a55&gt;] mld_sendpack+0x5/0x4a0
 #2:  (rcu_read_lock_bh){.+....}, at: [&lt;ffffffff8175d149&gt;] ip6_finish_output2+0x59/0x840
 #3:  (rcu_read_lock_bh){.+....}, at: [&lt;ffffffff8168ba75&gt;] __dev_queue_xmit+0x5/0x9b0
 #4:  (rcu_read_lock){.+.+..}, at: [&lt;ffffffffa05e41b5&gt;] internal_dev_xmit+0x5/0x110 [openvswitch]

stack backtrace:
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G          I  3.14.0-rc8-00007-g632b06a #1
Hardware name:                  /DX58SO, BIOS SOX5810J.86A.5599.2012.0529.2218 05/29/2012
 0000000000000000 0fcf20709903df0c ffff88042d603808 ffffffff817cfe3c
 ffffffff81c134c0 ffff88042d603858 ffffffff817cb6da 0000000000000005
 ffffffff00000001 ffff880400000000 0000000000000006 ffffffff81c134c0
Call Trace:
 &lt;IRQ&gt;  [&lt;ffffffff817cfe3c&gt;] dump_stack+0x4d/0x66
 [&lt;ffffffff817cb6da&gt;] print_usage_bug+0x1f4/0x205
 [&lt;ffffffff810f7f10&gt;] ? check_usage_backwards+0x180/0x180
 [&lt;ffffffff810f8963&gt;] mark_lock+0x223/0x2b0
 [&lt;ffffffff810f96d3&gt;] __lock_acquire+0x623/0x1c40
 [&lt;ffffffff810f5707&gt;] ? __lock_is_held+0x57/0x80
 [&lt;ffffffffa05e26c6&gt;] ? masked_flow_lookup+0x236/0x250 [openvswitch]
 [&lt;ffffffff810fb4e2&gt;] lock_acquire+0xa2/0x1d0
 [&lt;ffffffffa05dd8a1&gt;] ? ovs_flow_stats_update+0x51/0xd0 [openvswitch]
 [&lt;ffffffff817d8d9e&gt;] _raw_spin_lock+0x3e/0x80
 [&lt;ffffffffa05dd8a1&gt;] ? ovs_flow_stats_update+0x51/0xd0 [openvswitch]
 [&lt;ffffffffa05dd8a1&gt;] ovs_flow_stats_update+0x51/0xd0 [openvswitch]
 [&lt;ffffffffa05dcc64&gt;] ovs_dp_process_received_packet+0x84/0x120 [openvswitch]
 [&lt;ffffffff810f93f7&gt;] ? __lock_acquire+0x347/0x1c40
 [&lt;ffffffffa05e3bea&gt;] ovs_vport_receive+0x2a/0x30 [openvswitch]
 [&lt;ffffffffa05e4218&gt;] internal_dev_xmit+0x68/0x110 [openvswitch]
 [&lt;ffffffffa05e41b5&gt;] ? internal_dev_xmit+0x5/0x110 [openvswitch]
 [&lt;ffffffff8168b4a6&gt;] dev_hard_start_xmit+0x2e6/0x8b0
 [&lt;ffffffff8168be87&gt;] __dev_queue_xmit+0x417/0x9b0
 [&lt;ffffffff8168ba75&gt;] ? __dev_queue_xmit+0x5/0x9b0
 [&lt;ffffffff8175d5e0&gt;] ? ip6_finish_output2+0x4f0/0x840
 [&lt;ffffffff8168c430&gt;] dev_queue_xmit+0x10/0x20
 [&lt;ffffffff8175d641&gt;] ip6_finish_output2+0x551/0x840
 [&lt;ffffffff8176128a&gt;] ? ip6_finish_output+0x9a/0x220
 [&lt;ffffffff8176128a&gt;] ip6_finish_output+0x9a/0x220
 [&lt;ffffffff8176145f&gt;] ip6_output+0x4f/0x1f0
 [&lt;ffffffff81788c29&gt;] mld_sendpack+0x1d9/0x4a0
 [&lt;ffffffff817895b8&gt;] mld_send_initial_cr.part.32+0x88/0xa0
 [&lt;ffffffff817691b0&gt;] ? addrconf_dad_completed+0x220/0x220
 [&lt;ffffffff8178e301&gt;] ipv6_mc_dad_complete+0x31/0x50
 [&lt;ffffffff817690d7&gt;] addrconf_dad_completed+0x147/0x220
 [&lt;ffffffff817691b0&gt;] ? addrconf_dad_completed+0x220/0x220
 [&lt;ffffffff8176934f&gt;] addrconf_dad_timer+0x19f/0x1c0
 [&lt;ffffffff810a71e9&gt;] call_timer_fn+0x99/0x320
 [&lt;ffffffff810a7155&gt;] ? call_timer_fn+0x5/0x320
 [&lt;ffffffff817691b0&gt;] ? addrconf_dad_completed+0x220/0x220
 [&lt;ffffffff810a76c4&gt;] run_timer_softirq+0x254/0x3b0
 [&lt;ffffffff8109d47d&gt;] __do_softirq+0x12d/0x480

Signed-off-by: Flavio Leitner &lt;fbl@redhat.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
