Revert "[NDISC]: Fix race in generic address resolution"
This reverts commit 69cc64d8d9
.
It causes recursive locking in IPV6 because unlike other
neighbour layer clients, it even needs neighbour cache
entries to send neighbour soliciation messages :-(
We'll have to find another way to fix this race.
Signed-off-by: David S. Miller <davem@davemloft.net>
Esse commit está contido em:
@@ -834,12 +834,18 @@ static void neigh_timer_handler(unsigned long arg)
|
||||
}
|
||||
if (neigh->nud_state & (NUD_INCOMPLETE | NUD_PROBE)) {
|
||||
struct sk_buff *skb = skb_peek(&neigh->arp_queue);
|
||||
|
||||
/* keep skb alive even if arp_queue overflows */
|
||||
if (skb)
|
||||
skb_get(skb);
|
||||
write_unlock(&neigh->lock);
|
||||
neigh->ops->solicit(neigh, skb);
|
||||
atomic_inc(&neigh->probes);
|
||||
}
|
||||
if (skb)
|
||||
kfree_skb(skb);
|
||||
} else {
|
||||
out:
|
||||
write_unlock(&neigh->lock);
|
||||
write_unlock(&neigh->lock);
|
||||
}
|
||||
|
||||
if (notify)
|
||||
neigh_update_notify(neigh);
|
||||
|
Referência em uma nova issue
Block a user