net: fix __neigh_event_send()
authorEric Dumazet <eric.dumazet@gmail.com>
Thu, 27 May 2010 23:09:39 +0000 (16:09 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 28 May 2010 08:57:16 +0000 (01:57 -0700)
commita47311380e094bb201be8a818370c73c3f52122c
treeda4eb4607fece39b9cdb03fb69792e44a914d2bd
parenta02c37891a9b2d7ce93f9d09455b4f67c4c23b95
net: fix __neigh_event_send()

commit 7fee226ad23 (net: add a noref bit on skb dst) missed one spot
where an skb is enqueued, with a possibly not refcounted dst entry.

__neigh_event_send() inserts skb into arp_queue, so we must make sure
dst entry is refcounted, or dst entry can be freed by garbage collector
after caller exits from rcu protected section.

Reported-by: Ingo Molnar <mingo@elte.hu>
Tested-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/core/neighbour.c