<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-toradex.git/net/core, branch v2.6.34.2</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>ethtool: Fix potential user buffer overflow for ETHTOOL_{G, S}RXFH</title>
<updated>2010-08-02T17:30:05+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>ben@decadent.org.uk</email>
</author>
<published>2010-07-28T22:59:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=2a8b96d1e1100fbd27aaa69ea760dd10e38ab9cf'/>
<id>2a8b96d1e1100fbd27aaa69ea760dd10e38ab9cf</id>
<content type='text'>
commit bf988435bd5b53529f4408a8efb1f433f6ddfda9 upstream.

struct ethtool_rxnfc was originally defined in 2.6.27 for the
ETHTOOL_{G,S}RXFH command with only the cmd, flow_type and data
fields.  It was then extended in 2.6.30 to support various additional
commands.  These commands should have been defined to use a new
structure, but it is too late to change that now.

Since user-space may still be using the old structure definition
for the ETHTOOL_{G,S}RXFH commands, and since they do not need the
additional fields, only copy the originally defined fields to and
from user-space.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
commit bf988435bd5b53529f4408a8efb1f433f6ddfda9 upstream.

struct ethtool_rxnfc was originally defined in 2.6.27 for the
ETHTOOL_{G,S}RXFH command with only the cmd, flow_type and data
fields.  It was then extended in 2.6.30 to support various additional
commands.  These commands should have been defined to use a new
structure, but it is too late to change that now.

Since user-space may still be using the old structure definition
for the ETHTOOL_{G,S}RXFH commands, and since they do not need the
additional fields, only copy the originally defined fields to and
from user-space.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ethtool: Fix potential kernel buffer overflow in ETHTOOL_GRXCLSRLALL</title>
<updated>2010-08-02T17:29:49+00:00</updated>
<author>
<name>Ben Hutchings</name>
<email>bhutchings@solarflare.com</email>
</author>
<published>2010-06-28T08:44:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=b2ae72c4a8c172cd4fbe987c0f90764e5b63c55c'/>
<id>b2ae72c4a8c172cd4fbe987c0f90764e5b63c55c</id>
<content type='text'>
commit db048b69037e7fa6a7d9e95a1271a50dc08ae233 upstream.

On a 32-bit machine, info.rule_cnt &gt;= 0x40000000 leads to integer
overflow and the buffer may be smaller than needed.  Since
ETHTOOL_GRXCLSRLALL is unprivileged, this can presumably be used for at
least denial of service.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

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

On a 32-bit machine, info.rule_cnt &gt;= 0x40000000 leads to integer
overflow and the buffer may be smaller than needed.  Since
ETHTOOL_GRXCLSRLALL is unprivileged, this can presumably be used for at
least denial of service.

Signed-off-by: Ben Hutchings &lt;bhutchings@solarflare.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>net/core: neighbour update Oops</title>
<updated>2010-08-02T17:29:28+00:00</updated>
<author>
<name>Doug Kehn</name>
<email>rdkehn@yahoo.com</email>
</author>
<published>2010-07-15T01:02:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c80123ba3fbb7b40566354f54eba4c01f544b1b4'/>
<id>c80123ba3fbb7b40566354f54eba4c01f544b1b4</id>
<content type='text'>
commit 91a72a70594e5212c97705ca6a694bd307f7a26b upstream.

When configuring DMVPN (GRE + openNHRP) and a GRE remote
address is configured a kernel Oops is observed.  The
obserseved Oops is caused by a NULL header_ops pointer
(neigh-&gt;dev-&gt;header_ops) in neigh_update_hhs() when

void (*update)(struct hh_cache*, const struct net_device*, const unsigned char *)
= neigh-&gt;dev-&gt;header_ops-&gt;cache_update;

is executed.  The dev associated with the NULL header_ops is
the GRE interface.  This patch guards against the
possibility that header_ops is NULL.

This Oops was first observed in kernel version 2.6.26.8.

Signed-off-by: Doug Kehn &lt;rdkehn@yahoo.com&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

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

When configuring DMVPN (GRE + openNHRP) and a GRE remote
address is configured a kernel Oops is observed.  The
obserseved Oops is caused by a NULL header_ops pointer
(neigh-&gt;dev-&gt;header_ops) in neigh_update_hhs() when

void (*update)(struct hh_cache*, const struct net_device*, const unsigned char *)
= neigh-&gt;dev-&gt;header_ops-&gt;cache_update;

is executed.  The dev associated with the NULL header_ops is
the GRE interface.  This patch guards against the
possibility that header_ops is NULL.

This Oops was first observed in kernel version 2.6.26.8.

Signed-off-by: Doug Kehn &lt;rdkehn@yahoo.com&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>net: fix problem in reading sock TX queue</title>
<updated>2010-08-02T17:29:27+00:00</updated>
<author>
<name>Tom Herbert</name>
<email>therbert@google.com</email>
</author>
<published>2010-07-15T03:50:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=9754d26a07ffbdec54ce3391c06aaa073802c583'/>
<id>9754d26a07ffbdec54ce3391c06aaa073802c583</id>
<content type='text'>
commit b0f77d0eae0c58a5a9691a067ada112ceeae2d00 upstream.

Fix problem in reading the tx_queue recorded in a socket.  In
dev_pick_tx, the TX queue is read by doing a check with
sk_tx_queue_recorded on the socket, followed by a sk_tx_queue_get.
The problem is that there is not mutual exclusion across these
calls in the socket so it it is possible that the queue in the
sock can be invalidated after sk_tx_queue_recorded is called so
that sk_tx_queue get returns -1, which sets 65535 in queue_index
and thus dev_pick_tx returns 65536 which is a bogus queue and
can cause crash in dev_queue_xmit.

We fix this by only calling sk_tx_queue_get which does the proper
checks.  The interface is that sk_tx_queue_get returns the TX queue
if the sock argument is non-NULL and TX queue is recorded, else it
returns -1.  sk_tx_queue_recorded is no longer used so it can be
completely removed.

Signed-off-by: Tom Herbert &lt;therbert@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

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

Fix problem in reading the tx_queue recorded in a socket.  In
dev_pick_tx, the TX queue is read by doing a check with
sk_tx_queue_recorded on the socket, followed by a sk_tx_queue_get.
The problem is that there is not mutual exclusion across these
calls in the socket so it it is possible that the queue in the
sock can be invalidated after sk_tx_queue_recorded is called so
that sk_tx_queue get returns -1, which sets 65535 in queue_index
and thus dev_pick_tx returns 65536 which is a bogus queue and
can cause crash in dev_queue_xmit.

We fix this by only calling sk_tx_queue_get which does the proper
checks.  The interface is that sk_tx_queue_get returns the TX queue
if the sock argument is non-NULL and TX queue is recorded, else it
returns -1.  sk_tx_queue_recorded is no longer used so it can be
completely removed.

Signed-off-by: Tom Herbert &lt;therbert@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;

</pre>
</div>
</content>
</entry>
<entry>
<title>gro: Fix bogus gso_size on the first fraglist entry</title>
<updated>2010-08-02T17:29:18+00:00</updated>
<author>
<name>Herbert Xu</name>
<email>herbert@gondor.apana.org.au</email>
</author>
<published>2010-05-21T06:07:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=85d9faef1812bdc2ee93a727d2bfdebf67a91d0b'/>
<id>85d9faef1812bdc2ee93a727d2bfdebf67a91d0b</id>
<content type='text'>
[ Upstream commit 622e0ca1cd4d459f5af4f2c65f4dc0dd823cb4c3 ]

When GRO produces fraglist entries, and the resulting skb hits
an interface that is incapable of TSO but capable of FRAGLIST,
we end up producing a bogus packet with gso_size non-zero.

This was reported in the field with older versions of KVM that
did not set the TSO bits on tuntap.

This patch fixes that.

Reported-by: Igor Zhang &lt;yugzhang@redhat.com&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
[ Upstream commit 622e0ca1cd4d459f5af4f2c65f4dc0dd823cb4c3 ]

When GRO produces fraglist entries, and the resulting skb hits
an interface that is incapable of TSO but capable of FRAGLIST,
we end up producing a bogus packet with gso_size non-zero.

This was reported in the field with older versions of KVM that
did not set the TSO bits on tuntap.

This patch fixes that.

Reported-by: Igor Zhang &lt;yugzhang@redhat.com&gt;
Signed-off-by: Herbert Xu &lt;herbert@gondor.apana.org.au&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@suse.de&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rtnetlink: make SR-IOV VF interface symmetric</title>
<updated>2010-05-16T08:05:45+00:00</updated>
<author>
<name>Chris Wright</name>
<email>chrisw@sous-sol.org</email>
</author>
<published>2010-05-16T08:05:45+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=c02db8c6290bb992442fec1407643c94cc414375'/>
<id>c02db8c6290bb992442fec1407643c94cc414375</id>
<content type='text'>
Now we have a set of nested attributes:

  IFLA_VFINFO_LIST (NESTED)
    IFLA_VF_INFO (NESTED)
      IFLA_VF_MAC
      IFLA_VF_VLAN
      IFLA_VF_TX_RATE

This allows a single set to operate on multiple attributes if desired.
Among other things, it means a dump can be replayed to set state.

The current interface has yet to be released, so this seems like
something to consider for 2.6.34.

Signed-off-by: Chris Wright &lt;chrisw@sous-sol.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>
Now we have a set of nested attributes:

  IFLA_VFINFO_LIST (NESTED)
    IFLA_VF_INFO (NESTED)
      IFLA_VF_MAC
      IFLA_VF_VLAN
      IFLA_VF_TX_RATE

This allows a single set to operate on multiple attributes if desired.
Among other things, it means a dump can be replayed to set state.

The current interface has yet to be released, so this seems like
something to consider for 2.6.34.

Signed-off-by: Chris Wright &lt;chrisw@sous-sol.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>veth: Dont kfree_skb() after dev_forward_skb()</title>
<updated>2010-05-06T07:53:53+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2010-05-06T07:53:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=6ec82562ffc6f297d0de36d65776cff8e5704867'/>
<id>6ec82562ffc6f297d0de36d65776cff8e5704867</id>
<content type='text'>
In case of congestion, netif_rx() frees the skb, so we must assume
dev_forward_skb() also consume skb.

Bug introduced by commit 445409602c092
(veth: move loopback logic to common location)

We must change dev_forward_skb() to always consume skb, and veth to not
double free it.

Bug report : http://marc.info/?l=linux-netdev&amp;m=127310770900442&amp;w=3

Reported-by: Martín Ferrari &lt;martin.ferrari@gmail.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.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>
In case of congestion, netif_rx() frees the skb, so we must assume
dev_forward_skb() also consume skb.

Bug introduced by commit 445409602c092
(veth: move loopback logic to common location)

We must change dev_forward_skb() to always consume skb, and veth to not
double free it.

Bug report : http://marc.info/?l=linux-netdev&amp;m=127310770900442&amp;w=3

Reported-by: Martín Ferrari &lt;martin.ferrari@gmail.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>rtnetlink: potential ERR_PTR dereference</title>
<updated>2010-04-22T22:57:26+00:00</updated>
<author>
<name>Dan Carpenter</name>
<email>error27@gmail.com</email>
</author>
<published>2010-04-21T23:53:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=80032cffb95edff4fc216b1cb21682257be326b7'/>
<id>80032cffb95edff4fc216b1cb21682257be326b7</id>
<content type='text'>
In the original code, if rtnl_create_link() returned an ERR_PTR then that
would get passed to rtnl_configure_link() which dereferences it.

Signed-off-by: Dan Carpenter &lt;error27@gmail.com&gt;
Acked-by: Patrick McHardy &lt;kaber@trash.net&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>
In the original code, if rtnl_create_link() returned an ERR_PTR then that
would get passed to rtnl_configure_link() which dereferences it.

Signed-off-by: Dan Carpenter &lt;error27@gmail.com&gt;
Acked-by: Patrick McHardy &lt;kaber@trash.net&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: Fix an RCU warning in dev_pick_tx()</title>
<updated>2010-04-21T08:09:44+00:00</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2010-04-20T00:25:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=05d17608a69b3ae653ea5c9857283bef3439c733'/>
<id>05d17608a69b3ae653ea5c9857283bef3439c733</id>
<content type='text'>
Fix the following RCU warning in dev_pick_tx():

===================================================
[ INFO: suspicious rcu_dereference_check() usage. ]
---------------------------------------------------
net/core/dev.c:1993 invoked rcu_dereference_check() without protection!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 0
2 locks held by swapper/0:
 #0:  (&amp;idev-&gt;mc_ifc_timer){+.-...}, at: [&lt;ffffffff81039e65&gt;] run_timer_softirq+0x17b/0x278
 #1:  (rcu_read_lock_bh){.+....}, at: [&lt;ffffffff812ea3eb&gt;] dev_queue_xmit+0x14e/0x4dc

stack backtrace:
Pid: 0, comm: swapper Not tainted 2.6.34-rc5-cachefs #4
Call Trace:
 &lt;IRQ&gt;  [&lt;ffffffff810516c4&gt;] lockdep_rcu_dereference+0xaa/0xb2
 [&lt;ffffffff812ea4f6&gt;] dev_queue_xmit+0x259/0x4dc
 [&lt;ffffffff812ea3eb&gt;] ? dev_queue_xmit+0x14e/0x4dc
 [&lt;ffffffff81052324&gt;] ? trace_hardirqs_on+0xd/0xf
 [&lt;ffffffff81035362&gt;] ? local_bh_enable_ip+0xbc/0xc1
 [&lt;ffffffff812f0954&gt;] neigh_resolve_output+0x24b/0x27c
 [&lt;ffffffff8134f673&gt;] ip6_output_finish+0x7c/0xb4
 [&lt;ffffffff81350c34&gt;] ip6_output2+0x256/0x261
 [&lt;ffffffff81052324&gt;] ? trace_hardirqs_on+0xd/0xf
 [&lt;ffffffff813517fb&gt;] ip6_output+0xbbc/0xbcb
 [&lt;ffffffff8135bc5d&gt;] ? fib6_force_start_gc+0x2b/0x2d
 [&lt;ffffffff81368acb&gt;] mld_sendpack+0x273/0x39d
 [&lt;ffffffff81368858&gt;] ? mld_sendpack+0x0/0x39d
 [&lt;ffffffff81052099&gt;] ? mark_held_locks+0x52/0x70
 [&lt;ffffffff813692fc&gt;] mld_ifc_timer_expire+0x24f/0x288
 [&lt;ffffffff81039ed6&gt;] run_timer_softirq+0x1ec/0x278
 [&lt;ffffffff81039e65&gt;] ? run_timer_softirq+0x17b/0x278
 [&lt;ffffffff813690ad&gt;] ? mld_ifc_timer_expire+0x0/0x288
 [&lt;ffffffff81035531&gt;] ? __do_softirq+0x69/0x140
 [&lt;ffffffff8103556a&gt;] __do_softirq+0xa2/0x140
 [&lt;ffffffff81002e0c&gt;] call_softirq+0x1c/0x28
 [&lt;ffffffff81004b54&gt;] do_softirq+0x38/0x80
 [&lt;ffffffff81034f06&gt;] irq_exit+0x45/0x47
 [&lt;ffffffff810177c3&gt;] smp_apic_timer_interrupt+0x88/0x96
 [&lt;ffffffff810028d3&gt;] apic_timer_interrupt+0x13/0x20
 &lt;EOI&gt;  [&lt;ffffffff810488dd&gt;] ? __atomic_notifier_call_chain+0x0/0x86
 [&lt;ffffffff810096bf&gt;] ? mwait_idle+0x6e/0x78
 [&lt;ffffffff810096b6&gt;] ? mwait_idle+0x65/0x78
 [&lt;ffffffff810011cb&gt;] cpu_idle+0x4d/0x83
 [&lt;ffffffff81380b05&gt;] rest_init+0xb9/0xc0
 [&lt;ffffffff81380a4c&gt;] ? rest_init+0x0/0xc0
 [&lt;ffffffff8168dcf0&gt;] start_kernel+0x392/0x39d
 [&lt;ffffffff8168d2a3&gt;] x86_64_start_reservations+0xb3/0xb7
 [&lt;ffffffff8168d38b&gt;] x86_64_start_kernel+0xe4/0xeb

An rcu_dereference() should be an rcu_dereference_bh().

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.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>
Fix the following RCU warning in dev_pick_tx():

===================================================
[ INFO: suspicious rcu_dereference_check() usage. ]
---------------------------------------------------
net/core/dev.c:1993 invoked rcu_dereference_check() without protection!

other info that might help us debug this:

rcu_scheduler_active = 1, debug_locks = 0
2 locks held by swapper/0:
 #0:  (&amp;idev-&gt;mc_ifc_timer){+.-...}, at: [&lt;ffffffff81039e65&gt;] run_timer_softirq+0x17b/0x278
 #1:  (rcu_read_lock_bh){.+....}, at: [&lt;ffffffff812ea3eb&gt;] dev_queue_xmit+0x14e/0x4dc

stack backtrace:
Pid: 0, comm: swapper Not tainted 2.6.34-rc5-cachefs #4
Call Trace:
 &lt;IRQ&gt;  [&lt;ffffffff810516c4&gt;] lockdep_rcu_dereference+0xaa/0xb2
 [&lt;ffffffff812ea4f6&gt;] dev_queue_xmit+0x259/0x4dc
 [&lt;ffffffff812ea3eb&gt;] ? dev_queue_xmit+0x14e/0x4dc
 [&lt;ffffffff81052324&gt;] ? trace_hardirqs_on+0xd/0xf
 [&lt;ffffffff81035362&gt;] ? local_bh_enable_ip+0xbc/0xc1
 [&lt;ffffffff812f0954&gt;] neigh_resolve_output+0x24b/0x27c
 [&lt;ffffffff8134f673&gt;] ip6_output_finish+0x7c/0xb4
 [&lt;ffffffff81350c34&gt;] ip6_output2+0x256/0x261
 [&lt;ffffffff81052324&gt;] ? trace_hardirqs_on+0xd/0xf
 [&lt;ffffffff813517fb&gt;] ip6_output+0xbbc/0xbcb
 [&lt;ffffffff8135bc5d&gt;] ? fib6_force_start_gc+0x2b/0x2d
 [&lt;ffffffff81368acb&gt;] mld_sendpack+0x273/0x39d
 [&lt;ffffffff81368858&gt;] ? mld_sendpack+0x0/0x39d
 [&lt;ffffffff81052099&gt;] ? mark_held_locks+0x52/0x70
 [&lt;ffffffff813692fc&gt;] mld_ifc_timer_expire+0x24f/0x288
 [&lt;ffffffff81039ed6&gt;] run_timer_softirq+0x1ec/0x278
 [&lt;ffffffff81039e65&gt;] ? run_timer_softirq+0x17b/0x278
 [&lt;ffffffff813690ad&gt;] ? mld_ifc_timer_expire+0x0/0x288
 [&lt;ffffffff81035531&gt;] ? __do_softirq+0x69/0x140
 [&lt;ffffffff8103556a&gt;] __do_softirq+0xa2/0x140
 [&lt;ffffffff81002e0c&gt;] call_softirq+0x1c/0x28
 [&lt;ffffffff81004b54&gt;] do_softirq+0x38/0x80
 [&lt;ffffffff81034f06&gt;] irq_exit+0x45/0x47
 [&lt;ffffffff810177c3&gt;] smp_apic_timer_interrupt+0x88/0x96
 [&lt;ffffffff810028d3&gt;] apic_timer_interrupt+0x13/0x20
 &lt;EOI&gt;  [&lt;ffffffff810488dd&gt;] ? __atomic_notifier_call_chain+0x0/0x86
 [&lt;ffffffff810096bf&gt;] ? mwait_idle+0x6e/0x78
 [&lt;ffffffff810096b6&gt;] ? mwait_idle+0x65/0x78
 [&lt;ffffffff810011cb&gt;] cpu_idle+0x4d/0x83
 [&lt;ffffffff81380b05&gt;] rest_init+0xb9/0xc0
 [&lt;ffffffff81380a4c&gt;] ? rest_init+0x0/0xc0
 [&lt;ffffffff8168dcf0&gt;] start_kernel+0x392/0x39d
 [&lt;ffffffff8168d2a3&gt;] x86_64_start_reservations+0xb3/0xb7
 [&lt;ffffffff8168d38b&gt;] x86_64_start_kernel+0xe4/0xeb

An rcu_dereference() should be an rcu_dereference_bh().

Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>net: dev_pick_tx() fix</title>
<updated>2010-04-15T08:27:11+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>eric.dumazet@gmail.com</email>
</author>
<published>2010-04-11T21:18:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.toradex.cn/cgit/linux-toradex.git/commit/?id=8728c544a9cbdcb0034aa5c45706c5f953f030ee'/>
<id>8728c544a9cbdcb0034aa5c45706c5f953f030ee</id>
<content type='text'>
When dev_pick_tx() caches tx queue_index on a socket, we must check
socket dst_entry matches skb one, or risk a crash later, as reported by
Denys Fedorysychenko, if old packets are in flight during a route
change, involving devices with different number of queues.

Bug introduced by commit a4ee3ce3
(net: Use sk_tx_queue_mapping for connected sockets)

Reported-by: Denys Fedorysychenko &lt;nuclearcat@nuclearcat.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.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>
When dev_pick_tx() caches tx queue_index on a socket, we must check
socket dst_entry matches skb one, or risk a crash later, as reported by
Denys Fedorysychenko, if old packets are in flight during a route
change, involving devices with different number of queues.

Bug introduced by commit a4ee3ce3
(net: Use sk_tx_queue_mapping for connected sockets)

Reported-by: Denys Fedorysychenko &lt;nuclearcat@nuclearcat.com&gt;
Signed-off-by: Eric Dumazet &lt;eric.dumazet@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</pre>
</div>
</content>
</entry>
</feed>
