EPERM means that disconnect() is runnung. It should be treated like ENODEV Signed-off-by: Oliver Neukum <oliver@xxxxxxxxxx> --- commit 7f5315f57f7f9d0834f23a3ad5b267c96a4a24c7 Author: Oliver Neukum <oneukum@xxxxxxxxxxxxxxx> Date: Tue Apr 7 09:48:24 2009 +0200 handle disconnect error code in pegasus correctly diff --git a/drivers/net/usb/pegasus.c b/drivers/net/usb/pegasus.c index a8228d8..2138535 100644 --- a/drivers/net/usb/pegasus.c +++ b/drivers/net/usb/pegasus.c @@ -899,6 +899,7 @@ static int pegasus_start_xmit(struct sk_buff *skb, struct net_device *net) /* cleanup should already have been scheduled */ break; case -ENODEV: /* disconnect() upcoming */ + case -EPERM: netif_device_detach(pegasus->net); break; default: -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html