Skip to content

Commit 10ab133

Browse files
Rajat Jainholtmann
authored andcommitted
Bluetooth: btusb: Use an error label for error paths
Use a label to remove the repetetive cleanup, for error cases. Signed-off-by: Rajat Jain <rajatja@google.com> Reviewed-by: Brian Norris <briannorris@chromium.org> Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
1 parent 747d3f1 commit 10ab133

File tree

1 file changed

+9
-10
lines changed

1 file changed

+9
-10
lines changed

drivers/bluetooth/btusb.c

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2995,18 +2995,15 @@ static int btusb_probe(struct usb_interface *intf,
29952995
err = usb_set_interface(data->udev, 0, 0);
29962996
if (err < 0) {
29972997
BT_ERR("failed to set interface 0, alt 0 %d", err);
2998-
hci_free_dev(hdev);
2999-
return err;
2998+
goto out_free_dev;
30002999
}
30013000
}
30023001

30033002
if (data->isoc) {
30043003
err = usb_driver_claim_interface(&btusb_driver,
30053004
data->isoc, data);
3006-
if (err < 0) {
3007-
hci_free_dev(hdev);
3008-
return err;
3009-
}
3005+
if (err < 0)
3006+
goto out_free_dev;
30103007
}
30113008

30123009
#ifdef CONFIG_BT_HCIBTUSB_BCM
@@ -3020,14 +3017,16 @@ static int btusb_probe(struct usb_interface *intf,
30203017
#endif
30213018

30223019
err = hci_register_dev(hdev);
3023-
if (err < 0) {
3024-
hci_free_dev(hdev);
3025-
return err;
3026-
}
3020+
if (err < 0)
3021+
goto out_free_dev;
30273022

30283023
usb_set_intfdata(intf, data);
30293024

30303025
return 0;
3026+
3027+
out_free_dev:
3028+
hci_free_dev(hdev);
3029+
return err;
30313030
}
30323031

30333032
static void btusb_disconnect(struct usb_interface *intf)

0 commit comments

Comments
 (0)