Skip to contentSkip to conversation

ipv4: Only destroy inet devices when we receive an NETDEV_UNREGISTER event

PATCH In review Eric W. Biederman 1 participant 2 messages Jun 22, 2007

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 ipv4: Only destroy inet devices when we receive an NETDEV_UNREGISTER event

Currently we destroy inet devices when we remove the last interface from an inet device, and during NETDEV_UNREGISTER. We only create them during NETDEV_REGISTER event. The result is if you and an ipv4 address to a device delete it (so the device has no ipv4 addresses) and attampt to add any ipv4 address to that device you will receive an -ENOBUFS error.

To correct the problem this patch simply deletes the excess inet device destroy.

---
 net/ipv4/devinet.c |    6 +-----
 1 files changed, 1 insertions(+), 5 deletions(-)
net/ipv4/devinet.c +1 -5
index fa97b96..abf6352 100644
@@ -327,12 +327,8 @@ static void __inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap,
 		}
 
 	}
-	if (destroy) {
+	if (destroy)
 		inet_free_ifa(ifa1);
-
-		if (!in_dev->ifa_list)
-			inetdev_destroy(in_dev);
-	}
 }
 
 static void inet_del_ifa(struct in_device *in_dev, struct in_ifaddr **ifap,
Signature · 1 line
1.5.1.1.181.g2de0
#1 lore raw

Never mind. I saw this and I thought it was an old obscure bug. But it appears it is a new condition, that has already been fixed.

Eric