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:
Johan Hovold 2026-06-04 08:37:40 +02:00 committed by Luiz Augusto von Dentz
parent cfb192390b
commit 43ea69d0ef

View File

@ -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;
}