|
@@ -469,10 +469,12 @@ static int init_card(struct snd_usb_caiaqdev *cdev)
|
|
|
|
|
|
err = snd_usb_caiaq_send_command(cdev, EP1_CMD_GET_DEVICE_INFO, NULL, 0);
|
|
|
if (err)
|
|
|
- return err;
|
|
|
+ goto err_kill_urb;
|
|
|
|
|
|
- if (!wait_event_timeout(cdev->ep1_wait_queue, cdev->spec_received, HZ))
|
|
|
- return -ENODEV;
|
|
|
+ if (!wait_event_timeout(cdev->ep1_wait_queue, cdev->spec_received, HZ)) {
|
|
|
+ err = -ENODEV;
|
|
|
+ goto err_kill_urb;
|
|
|
+ }
|
|
|
|
|
|
usb_string(usb_dev, usb_dev->descriptor.iManufacturer,
|
|
|
cdev->vendor_name, CAIAQ_USB_STR_LEN);
|
|
@@ -507,6 +509,10 @@ static int init_card(struct snd_usb_caiaqdev *cdev)
|
|
|
|
|
|
setup_card(cdev);
|
|
|
return 0;
|
|
|
+
|
|
|
+ err_kill_urb:
|
|
|
+ usb_kill_urb(&cdev->ep1_in_urb);
|
|
|
+ return err;
|
|
|
}
|
|
|
|
|
|
static int snd_probe(struct usb_interface *intf,
|