mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 09:36:22 +02:00
Bluetooth: btusb: clean up probe error handling
Clean up probe error handling by using dedicated error labels with an "err" prefix. Note that the endpoint lookup helper returns -ENXIO when endpoints are missing which is functionally equivalent to returning -ENODEV. Signed-off-by: Johan Hovold <johan@kernel.org> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
This commit is contained in:
parent
cfb192390b
commit
43ea69d0ef
|
|
@ -4119,10 +4119,8 @@ static int btusb_probe(struct usb_interface *intf,
|
|||
|
||||
err = usb_find_common_endpoints(intf->cur_altsetting, &data->bulk_rx_ep,
|
||||
&data->bulk_tx_ep, &data->intr_ep, NULL);
|
||||
if (err) {
|
||||
kfree(data);
|
||||
return -ENODEV;
|
||||
}
|
||||
if (err)
|
||||
goto err_free_data;
|
||||
|
||||
if (id->driver_info & BTUSB_AMP) {
|
||||
data->cmdreq_type = USB_TYPE_CLASS | 0x01;
|
||||
|
|
@ -4178,8 +4176,8 @@ static int btusb_probe(struct usb_interface *intf,
|
|||
|
||||
hdev = hci_alloc_dev_priv(priv_size);
|
||||
if (!hdev) {
|
||||
kfree(data);
|
||||
return -ENOMEM;
|
||||
err = -ENOMEM;
|
||||
goto err_free_data;
|
||||
}
|
||||
|
||||
hdev->bus = HCI_USB;
|
||||
|
|
@ -4193,7 +4191,7 @@ static int btusb_probe(struct usb_interface *intf,
|
|||
GPIOD_OUT_LOW);
|
||||
if (IS_ERR(reset_gpio)) {
|
||||
err = PTR_ERR(reset_gpio);
|
||||
goto out_free_dev;
|
||||
goto err_free_hdev;
|
||||
} else if (reset_gpio) {
|
||||
data->reset_gpio = reset_gpio;
|
||||
}
|
||||
|
|
@ -4208,7 +4206,7 @@ static int btusb_probe(struct usb_interface *intf,
|
|||
|
||||
err = btusb_config_oob_wake(hdev);
|
||||
if (err)
|
||||
goto out_free_dev;
|
||||
goto err_put_reset;
|
||||
|
||||
/* Marvell devices may need a specific chip configuration */
|
||||
if (id->driver_info & BTUSB_MARVELL && data->oob_wake_irq) {
|
||||
|
|
@ -4466,11 +4464,14 @@ static int btusb_probe(struct usb_interface *intf,
|
|||
device_init_wakeup(&data->udev->dev, false);
|
||||
free_irq(data->oob_wake_irq, data);
|
||||
}
|
||||
out_free_dev:
|
||||
err_put_reset:
|
||||
if (data->reset_gpio)
|
||||
gpiod_put(data->reset_gpio);
|
||||
err_free_hdev:
|
||||
hci_free_dev(hdev);
|
||||
err_free_data:
|
||||
kfree(data);
|
||||
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user