Tuesday, January 3, 2012

unregister_netdevice: waiting for eth0 to become free. Usage count = 3



 unregister_netdevice: waiting for eth0 to become free. Usage count = 3


The fix is based on the link below:

http://www.spinics.net/lists/netdev/msg150802.html

We could see the problem is gone with the kernel code fix as below:

ip_route_output_slow()  in net/ipv4/route.c

Before

      if (dev_out == NULL)
             goto out;

      /* RACE: Check return value of inet_select_addr instead. */
      if (__in_dev_get_rtnl(dev_out) == NULL) {
             dev_put(dev_out);
             goto out;     /* Wrong error code */
      }

After

      if (dev_out == NULL)
             goto out;

      /* RACE: Check return value of inet_select_addr instead. */
      if (!(dev_out->flags & IFF_UP) || !__in_dev_get_rtnl(dev_out)) {
             dev_put(dev_out);
             err = -ENETUNREACH;
             goto out;     /* Wrong error code */
    }

We expect this is the problem of the kernel, not of the WIFI driver.

No comments:

Post a Comment