|
@@ -1658,7 +1658,7 @@ static void usb_rx_callback_intf0(struct urb *urb)
|
|
|
return;
|
|
|
|
|
|
ictx = (struct imon_context *)urb->context;
|
|
|
- if (!ictx)
|
|
|
+ if (!ictx || !ictx->dev_present_intf0)
|
|
|
return;
|
|
|
|
|
|
switch (urb->status) {
|
|
@@ -1690,7 +1690,7 @@ static void usb_rx_callback_intf1(struct urb *urb)
|
|
|
return;
|
|
|
|
|
|
ictx = (struct imon_context *)urb->context;
|
|
|
- if (!ictx)
|
|
|
+ if (!ictx || !ictx->dev_present_intf1)
|
|
|
return;
|
|
|
|
|
|
switch (urb->status) {
|
|
@@ -2118,7 +2118,6 @@ static struct imon_context *imon_init_intf0(struct usb_interface *intf)
|
|
|
|
|
|
ictx->dev = dev;
|
|
|
ictx->usbdev_intf0 = usb_get_dev(interface_to_usbdev(intf));
|
|
|
- ictx->dev_present_intf0 = true;
|
|
|
ictx->rx_urb_intf0 = rx_urb;
|
|
|
ictx->tx_urb = tx_urb;
|
|
|
ictx->rf_device = false;
|
|
@@ -2157,6 +2156,8 @@ static struct imon_context *imon_init_intf0(struct usb_interface *intf)
|
|
|
goto rdev_setup_failed;
|
|
|
}
|
|
|
|
|
|
+ ictx->dev_present_intf0 = true;
|
|
|
+
|
|
|
mutex_unlock(&ictx->lock);
|
|
|
return ictx;
|
|
|
|
|
@@ -2200,7 +2201,6 @@ static struct imon_context *imon_init_intf1(struct usb_interface *intf,
|
|
|
}
|
|
|
|
|
|
ictx->usbdev_intf1 = usb_get_dev(interface_to_usbdev(intf));
|
|
|
- ictx->dev_present_intf1 = true;
|
|
|
ictx->rx_urb_intf1 = rx_urb;
|
|
|
|
|
|
ret = -ENODEV;
|
|
@@ -2229,6 +2229,8 @@ static struct imon_context *imon_init_intf1(struct usb_interface *intf,
|
|
|
goto urb_submit_failed;
|
|
|
}
|
|
|
|
|
|
+ ictx->dev_present_intf1 = true;
|
|
|
+
|
|
|
mutex_unlock(&ictx->lock);
|
|
|
return ictx;
|
|
|
|