]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ipv4/fib: don't warn when primary address is missing if in_dev is dead
authorPaolo Abeni <pabeni@redhat.com>
Thu, 21 Apr 2016 20:23:31 +0000 (22:23 +0200)
committerDhaval Giani <dhaval.giani@oracle.com>
Fri, 20 Jan 2017 22:22:03 +0000 (17:22 -0500)
Orabug: 25308078

[ Upstream commit 391a20333b8393ef2e13014e6e59d192c5594471 ]

After commit fbd40ea0180a ("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>
Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
(cherry picked from commit 2c5ac2bfe56da842b7c84e99e9811f118b6f7a17)
Signed-off-by: Dhaval Giani <dhaval.giani@oracle.com>
net/ipv4/fib_frontend.c

index 872494e6e6eb7996185a99a8b05915f861a73ec4..80094f80b5f204846d7b29cb44a3f6f400fbaefb 100644 (file)
@@ -861,7 +861,11 @@ void fib_del_ifaddr(struct in_ifaddr *ifa, struct in_ifaddr *iprim)
        if (ifa->ifa_flags & IFA_F_SECONDARY) {
                prim = inet_ifa_byprefix(in_dev, any, ifa->ifa_mask);
                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;
                }
                if (iprim && iprim != prim) {