android_kernel_google_msm/net/ipv6
Sabrina Dubroca 9664667610 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).

BUG: 18902601
Change-Id: I6d51aed5755eb5738fcba91950e7773a1c985d2e
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>

[Backported from android-3.10 86a47ad60de5221c3869821d3552dcd1c89199f5]

Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
2016-10-29 23:12:33 +08:00
..
netfilter Merge commit 'v3.4-rc3' into android-3.4 2012-04-19 14:42:22 -07:00
addrconf.c ipv6: clean up anycast when an interface is destroyed 2016-10-29 23:12:33 +08:00
addrconf_core.c
addrlabel.c
af_inet6.c net: add validation for the socket syscall protocol argument 2016-10-29 23:12:11 +08:00
ah6.c
anycast.c ipv6: clean up anycast when an interface is destroyed 2016-10-29 23:12:33 +08:00
datagram.c ipv6: add complete rcu protection around np->opt 2016-06-17 02:54:32 +00:00
esp6.c
exthdrs.c ipv6: add complete rcu protection around np->opt 2016-06-17 02:54:32 +00:00
exthdrs_core.c
fib6_rules.c
icmp.c net: add a sysctl to reflect the fwmark on replies 2014-05-12 22:39:57 -07:00
inet6_connection_sock.c ipv6: add complete rcu protection around np->opt 2016-06-17 02:54:32 +00:00
inet6_hashtables.c
ip6_fib.c ipv6: fix problem with expired dst cache 2012-04-13 12:58:29 -04:00
ip6_flowlabel.c
ip6_input.c
ip6_output.c ipv6: Enable new mode proxy_ndp == 2 2013-02-25 11:36:58 -08:00
ip6_tunnel.c net: reintroduce missing rcu_assign_pointer() calls 2012-01-12 12:26:56 -08:00
ip6mr.c Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ipcomp6.c
ipv6_sockglue.c ipv6: add complete rcu protection around np->opt 2016-06-17 02:54:32 +00:00
Kconfig
Makefile net: ipv6: Add IPv6 support to the ping socket. 2013-08-21 13:34:09 +09:00
mcast.c ipv6: fix array index in ip6_mc_add_src() 2012-04-05 00:00:42 -04:00
mip6.c
ndisc.c ipv6: Don't reduce hop limit for an interface 2016-10-29 23:12:10 +08:00
netfilter.c
ping.c net: ping: Return EAFNOSUPPORT when appropriate. 2015-05-20 15:24:04 +09:00
proc.c ipv6: fix per device IP snmp counters 2012-01-17 23:56:18 -05:00
protocol.c
raw.c ipv6: add complete rcu protection around np->opt 2016-06-17 02:54:32 +00:00
reassembly.c ipv6: fix RFC5722 comment 2012-01-30 12:58:51 -05:00
route.c Set the iif for IPv6 packets as well. 2015-05-20 15:36:18 +09:00
sit.c ipv6: sit: Convert to dst_neigh_lookup() 2012-01-26 15:23:21 -05:00
syncookies.c ipv6: add complete rcu protection around np->opt 2016-06-17 02:54:32 +00:00
sysctl_net_ipv6.c net: add a sysctl to reflect the fwmark on replies 2014-05-12 22:39:57 -07:00
tcp_ipv6.c ipv6: add complete rcu protection around np->opt 2016-06-17 02:54:32 +00:00
tunnel6.c
udp.c udp: fix behavior of wrong checksums 2016-10-29 23:12:10 +08:00
udp_impl.h
udplite.c
xfrm6_input.c
xfrm6_mode_beet.c ipsec: be careful of non existing mac headers 2012-02-23 16:50:45 -05:00
xfrm6_mode_ro.c
xfrm6_mode_transport.c
xfrm6_mode_tunnel.c ipsec: be careful of non existing mac headers 2012-02-23 16:50:45 -05:00
xfrm6_output.c xfrm6: remove unneeded NULL check in __xfrm6_output() 2012-02-01 02:52:48 -05:00
xfrm6_policy.c
xfrm6_state.c
xfrm6_tunnel.c