ipv4/fib: don't warn when primary address is missing if in_dev is dead

After commit fbd40ea018 ("ipv4: Don't do expensive useless work
during inetdev destroy.") when deleting an interface,
fib_del_ifaddr() can be executed without any primary address
present on the dead interface.

The above is safe, but triggers some "bug: prim == NULL" warnings.

This commit avoids warning if the in_dev is dead

Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Paolo Abeni 2016-04-21 22:23:31 +02:00 committed by David S. Miller
parent 91e019de2f
commit 391a20333b
1 changed files with 5 additions and 1 deletions

View File

@ -904,7 +904,11 @@ void fib_del_ifaddr(struct in_ifaddr *ifa, struct in_ifaddr *iprim)
if (ifa->ifa_flags & IFA_F_SECONDARY) { if (ifa->ifa_flags & IFA_F_SECONDARY) {
prim = inet_ifa_byprefix(in_dev, any, ifa->ifa_mask); prim = inet_ifa_byprefix(in_dev, any, ifa->ifa_mask);
if (!prim) { if (!prim) {
pr_warn("%s: bug: prim == NULL\n", __func__); /* if the device has been deleted, we don't perform
* address promotion
*/
if (!in_dev->dead)
pr_warn("%s: bug: prim == NULL\n", __func__);
return; return;
} }
if (iprim && iprim != prim) { if (iprim && iprim != prim) {