[PATCH] ax88179_178a: don't send commands to detached device

Subsystems: networking drivers, the rest, usb networking drivers

STALE4501d

2 messages, 2 authors, 2014-05-14 · open the first message on its own page

[PATCH] ax88179_178a: don't send commands to detached device

From: Emil Goode <hidden>
Date: 2014-05-14 15:02:23

The .stop and .unbind callbacks of struct driver_info are
called even after a DETACH hot-plug event. In the case of
the ax88179_178a minidriver we need to make sure we are not
trying to send commands to a device that has been detached.
This leads to failure messages like below.

ax88179_178a 1-1.3:1.0 (unregistered net_device):
	Failed to write reg index 0x0001: -19

Signed-off-by: Emil Goode <redacted>
---
 drivers/net/usb/ax88179_178a.c |    6 ++++++
 1 file changed, 6 insertions(+)
diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c
index 054e59c..fe20ca8 100644
--- a/drivers/net/usb/ax88179_178a.c
+++ b/drivers/net/usb/ax88179_178a.c
@@ -1074,6 +1074,9 @@ static void ax88179_unbind(struct usbnet *dev, struct usb_interface *intf)
 {
 	u16 tmp16;
 
+	if (dev->udev->state == USB_STATE_NOTATTACHED)
+		return;
+
 	/* Configure RX control register => stop operation */
 	tmp16 = AX_RX_CTL_STOP;
 	ax88179_write_cmd(dev, AX_ACCESS_MAC, AX_RX_CTL, 2, 2, &tmp16);
@@ -1352,6 +1355,9 @@ static int ax88179_stop(struct usbnet *dev)
 {
 	u16 tmp16;
 
+	if (dev->udev->state == USB_STATE_NOTATTACHED)
+		return 0;
+
 	ax88179_read_cmd(dev, AX_ACCESS_MAC, AX_MEDIUM_STATUS_MODE,
 			 2, 2, &tmp16);
 	tmp16 &= ~AX_MEDIUM_RECEIVE_EN;
-- 
1.7.10.4

Re: [PATCH] ax88179_178a: don't send commands to detached device

From: Alan Stern <stern@rowland.harvard.edu>
Date: 2014-05-14 15:13:00

On Wed, 14 May 2014, Emil Goode wrote:
The .stop and .unbind callbacks of struct driver_info are
called even after a DETACH hot-plug event. In the case of
the ax88179_178a minidriver we need to make sure we are not
trying to send commands to a device that has been detached.
This leads to failure messages like below.

ax88179_178a 1-1.3:1.0 (unregistered net_device):
	Failed to write reg index 0x0001: -19
Most driver don't bother to do this.  A few error messages in the log 
when a device gets unplugged are harmless.  Besides, this won't help 
with errors that occur between the time the device is unplugged and the 
time when the unbind callback runs.

Alan Stern
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help