[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