Comment 13 for bug 284377

Revision history for this message
TJ (tj) wrote :

I'm going to maintain a stream-of-investigation commentary to help narrow down the area where myself or others can look for this issue.

Here's one place the Error No Buffer Space is being fired - the IOCTL handler:

net/ipv4/devinit.c::devinet_ioctl()

 case SIOCSIFADDR: /* Set interface address (and family) */
  ret = -EINVAL;
  if (inet_abc_len(sin->sin_addr.s_addr) < 0)
   break;

  if (!ifa) {
   ret = -ENOBUFS;
   if ((ifa = inet_alloc_ifa()) == NULL)
    break;

The call to inet_alloc_ifa() is simply this:

static struct in_ifaddr *inet_alloc_ifa(void)
{
 struct in_ifaddr *ifa = kzalloc(sizeof(*ifa), GFP_KERNEL);

 if (ifa) {
  INIT_RCU_HEAD(&ifa->rcu_head);
 }

 return ifa;
}
----------

I will look at the ipconfig tool to ensure the code-path is the one that calls this IOCTL.

Dustin's report suggests some linkage to the type/make of network device and type of connection so please report the precise device IDs that are exhibiting the issue using:

 lspci --vvnn -s $BUS:$SLOT.$FUNCTION

(determine the values of BUS SLOT FUNCTION first using lspci -nn)

For the sake of accuracy please also state if the device is wired or wireless, and if wireless, the precise type of connection it is trying to establish (802.11b, 802.11g, 802.11a, 802.11n, etc.).

Also report the actual standard(s) the Wireless access point is operating with, including the encryption method. (E.g. 802.11g WPA2 AES+TKIP).