diff options
author | David S. Miller <davem@davemloft.net> | 2009-01-04 16:04:39 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-01-04 16:04:39 -0800 |
commit | 14deae41566b5cdd992c01d0069518ced5227c83 (patch) | |
tree | d15c3dfabdc3ccf10997487c29df35fa58387e55 /net/can | |
parent | eb4dea5853046727bfbb579f0c9a8cae7369f7c6 (diff) |
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 'net/can')
0 files changed, 0 insertions, 0 deletions