ax88179_178a: don't send commands to detached device
Subsystems (3)
PATCH 1/1 ax88179_178a: don't send commands to detached device
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
--- drivers/net/usb/ax88179_178a.c | 6 ++++++ 1 file changed, 6 insertions(+)
drivers/net/usb/ax88179_178a.c +6 -0
@@ -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 ;
Signature · 1 line
1.7.10.4
Quoted 8 lines · Emil Goode
The .stop and .unbind callbacks of struct
driver_infoare called even after a DETACH hot-plug event. In the case of theax88179_178aminidriver 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_178a1-1.3:1.0 (unregisterednet_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