diff options
Diffstat (limited to 'kernel/net/ipv4/devinet.c')
-rw-r--r-- | kernel/net/ipv4/devinet.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/kernel/net/ipv4/devinet.c b/kernel/net/ipv4/devinet.c index f6303b175..0212591b0 100644 --- a/kernel/net/ipv4/devinet.c +++ b/kernel/net/ipv4/devinet.c @@ -334,6 +334,9 @@ static void __inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap, ASSERT_RTNL(); + if (in_dev->dead) + goto no_promotions; + /* 1. Deleting primary ifaddr forces deletion all secondaries * unless alias promotion is set **/ @@ -380,6 +383,7 @@ static void __inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap, fib_del_ifaddr(ifa, ifa1); } +no_promotions: /* 2. Unlink it */ *ifap = ifa1->ifa_next; |