diff options
author | David S. Miller <davem@davemloft.net> | 2009-01-05 01:04:39 +0100 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-01-05 01:04:39 +0100 |
commit | 14deae41566b5cdd992c01d0069518ced5227c83 (patch) | |
tree | d15c3dfabdc3ccf10997487c29df35fa58387e55 /firmware/WHENCE | |
parent | net: Fix percpu counters deadlock (diff) | |
download | linux-14deae41566b5cdd992c01d0069518ced5227c83.tar.xz linux-14deae41566b5cdd992c01d0069518ced5227c83.zip |
ipv6: Fix sporadic sendmsg -EINVAL when sending to multicast groups.
Thanks to excellent diagnosis by Eduard Guzovsky.
The core problem is that on a network with lots of active
multicast traffic, the neighbour cache can fill up. If
we try to allocate a new route and thus neighbour cache
entry, the bog-standard GC attempt the neighbour layer does
in ineffective because route entries hold a reference
to the existing neighbour entries and GC can only liberate
entries with no references.
IPV4 already has a way to handle this, by doing a route cache
GC in such situations (when neigh attach returns -ENOBUFS).
So simply mimick this on the ipv6 side.
Tested-by: Eduard Guzovsky <eguzovsky@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'firmware/WHENCE')
0 files changed, 0 insertions, 0 deletions