Re: [PATCH] ipv6: Fix idev->addr_list corruption

2017-04-12 Thread David Miller
From: Rabin Vincent Date: Mon, 10 Apr 2017 08:36:39 +0200 > From: Rabin Vincent > > addrconf_ifdown() removes elements from the idev->addr_list without > holding the idev->lock. > > If this happens while the loop in __ipv6_dev_get_saddr() is handling the > same element, that function ends up i

Re: [PATCH] ipv6: Fix idev->addr_list corruption

2017-04-10 Thread David Ahern
On 4/10/17 12:36 AM, Rabin Vincent wrote: > From: Rabin Vincent > > addrconf_ifdown() removes elements from the idev->addr_list without > holding the idev->lock. > > If this happens while the loop in __ipv6_dev_get_saddr() is handling the > same element, that function ends up in an infinite loop

[PATCH] ipv6: Fix idev->addr_list corruption

2017-04-09 Thread Rabin Vincent
From: Rabin Vincent addrconf_ifdown() removes elements from the idev->addr_list without holding the idev->lock. If this happens while the loop in __ipv6_dev_get_saddr() is handling the same element, that function ends up in an infinite loop: NMI watchdog: BUG: soft lockup - CPU#1 stuck for 23