mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-29 18:11:20 +00:00
ipv6: clean up anycast when an interface is destroyed
If we try to rmmod the driver for an interface while sockets with setsockopt(JOIN_ANYCAST) are alive, some refcounts aren't cleaned up and we get stuck on: unregister_netdevice: waiting for ens3 to become free. Usage count = 1 If we LEAVE_ANYCAST/close everything before rmmod'ing, there is no problem. We need to perform a cleanup similar to the one for multicast in addrconf_ifdown(how == 1). Signed-off-by: Sabrina Dubroca <sd@queasysnail.net> Acked-by: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
dcbc0054d7
commit
381f4dca48
3 changed files with 27 additions and 3 deletions
|
@ -204,6 +204,7 @@ void ipv6_sock_ac_close(struct sock *sk);
|
|||
|
||||
int ipv6_dev_ac_inc(struct net_device *dev, const struct in6_addr *addr);
|
||||
int __ipv6_dev_ac_dec(struct inet6_dev *idev, const struct in6_addr *addr);
|
||||
void ipv6_ac_destroy_dev(struct inet6_dev *idev);
|
||||
bool ipv6_chk_acast_addr(struct net *net, struct net_device *dev,
|
||||
const struct in6_addr *addr);
|
||||
bool ipv6_chk_acast_addr_src(struct net *net, struct net_device *dev,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue