From: WANG Cong Date: Wed, 21 Jun 2017 21:34:58 +0000 (-0700) Subject: ipv6: avoid unregistering inet6_dev for loopback X-Git-Tag: v3.2.93~16 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=852ea2ac1449e35cc62d4d91b8f8b90ea15f1e83;p=pandora-kernel.git ipv6: avoid unregistering inet6_dev for loopback commit 60abc0be96e00ca71bac083215ac91ad2e575096 upstream. The per netns loopback_dev->ip6_ptr is unregistered and set to NULL when its mtu is set to smaller than IPV6_MIN_MTU, this leads to that we could set rt->rt6i_idev NULL after a rt6_uncached_list_flush_dev() and then crash after another call. In this case we should just bring its inet6_dev down, rather than unregistering it, at least prior to commit 176c39af29bc ("netns: fix addrconf_ifdown kernel panic") we always override the case for loopback. Thanks a lot to Andrey for finding a reliable reproducer. Fixes: 176c39af29bc ("netns: fix addrconf_ifdown kernel panic") Reported-by: Andrey Konovalov Cc: Andrey Konovalov Cc: Daniel Lezcano Cc: David Ahern Signed-off-by: Cong Wang Acked-by: David Ahern Tested-by: Andrey Konovalov Signed-off-by: David S. Miller [bwh: Backported to 3.2: the NETDEV_CHANGEMTU case used to fall-through to the NETDEV_DOWN case here, so replace that with a separate call to addrconf_ifdown()] Signed-off-by: Ben Hutchings --- Reading git-diff-tree failed