Thread (3 messages) flat view 3 messages, 3 authors, 2007-06-08

Re: 2.6.22-rc4-mm2 -- ipw2200 -- SIOCSIFADDR: No buffer space available

From: Björn Steinbrink <hidden>
Date: 2007-06-07 22:21:19
Also in: lkml
Subsystem: networking [general], networking [ipv4/ipv6], the rest · Maintainers: "David S. Miller", Eric Dumazet, Jakub Kicinski, Paolo Abeni, David Ahern, Ido Schimmel, Linus Torvalds

On 2007.06.07 13:15:59 -0700, Andrew Morton wrote:
On Thu, 7 Jun 2007 11:25:30 -0700
"Miles Lane" [off-list ref] wrote:
quoted
Hi Andrew,

This might be some problem with my kernel configuration.
I added:
CONFIG_BONDING=y

# dhclient eth1
There is already a pid file /var/run/dhclient.pid with pid 134993416
Internet Systems Consortium DHCP Client V3.0.4
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/
SIOCSIFADDR: No buffer space available
Listening on LPF/eth1/00:12:f0:5e:db:2f
Sending on   LPF/eth1/00:12:f0:5e:db:2f
Sending on   Socket/fallback
DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 6
DHCPOFFER from 192.168.1.1
DHCPREQUEST on eth1 to 255.255.255.255 port 67
DHCPACK from 192.168.1.1
SIOCSIFADDR: No buffer space available
SIOCSIFNETMASK: Cannot assign requested address
SIOCSIFBRDADDR: Cannot assign requested address
SIOCADDRT: Network is unreachable
bound to 192.168.1.2 -- renewal in 2993 seconds.

# ping www.yahoo.com
ping: unknown host www.yahoo.com

Any suggestions what to try now?  I'll go ahead and turn off the
bonding option and see if that helps.
It won't be related to bonding.

It has a high probability of being very related to Herbert's changes
to inet_set_ifa().
Hm, as inetdev_init() is now only called at the time the device is
registered, it seems wrong that inetdev_destroy() is also called in
__inet_del_ifa() when all addresses got deleted.

Miles, could you try if this patch helps?

Björn


Stop destroying devices when all of their ifas are gone, as we no longer
recreate them when ifas are added.

Signed-off-by: Björn Steinbrink <redacted>
--
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index fa97b96..abf6352 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -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,
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help