]> git.baikalelectronics.ru Git - kernel.git/commit
ipv6: On interface down/unregister, purge icmp routes too.
authorDavid S. Miller <davem@davemloft.net>
Thu, 11 Sep 2008 00:27:15 +0000 (17:27 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 11 Sep 2008 06:39:28 +0000 (23:39 -0700)
commit09e517ee374881af0c72b1140df72a58908363be
tree2cc484a2f2ea5de5b427e6a8a7fa6f7d07ae05bc
parentf750948bf789a014fbf2a3ec40cb1589ae508f17
ipv6: On interface down/unregister, purge icmp routes too.

Johannes Berg reported that occaisionally, bringing an interface
down or unregistering it would hang for up to 30 seconds.  Using
debugging output he provided it became clear that ICMP6 routes
were the culprit.

The problem is that ICMP6 routes live in their own world totally
separate from normal ipv6 routes.  So there are all kinds of special
cases throughout the ipv6 code to handle this.

While we should really try to unify all of this stuff somehow,
for the time being let's fix this by purging the ICMP6 routes
that match the device in question during rt6_ifdown().

Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv6/route.c