2021-07-31 15:50:23

by Salah Triki

[permalink] [raw]
Subject: [PATCH v2] bluetooth: bfusb: update the reference count of udev

Use usb_get_dev() to increment the reference count of the usb device
structure in order to avoid releasing the structure while it is still in
use. And use usb_put_dev() to decrement the reference count and thus,
when it will be equal to 0 the structure will be released.

Signed-off-by: Salah Triki <[email protected]>
---
Change since v1:
Modification of the description

drivers/bluetooth/bfusb.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/bluetooth/bfusb.c b/drivers/bluetooth/bfusb.c
index 5a321b4076aa..c9145c914451 100644
--- a/drivers/bluetooth/bfusb.c
+++ b/drivers/bluetooth/bfusb.c
@@ -623,7 +623,7 @@ static int bfusb_probe(struct usb_interface *intf, const struct usb_device_id *i
if (!data)
return -ENOMEM;

- data->udev = udev;
+ data->udev = usb_get_dev(udev);
data->bulk_in_ep = bulk_in_ep->desc.bEndpointAddress;
data->bulk_out_ep = bulk_out_ep->desc.bEndpointAddress;
data->bulk_pkt_size = le16_to_cpu(bulk_out_ep->desc.wMaxPacketSize);
@@ -699,6 +699,8 @@ static void bfusb_disconnect(struct usb_interface *intf)

usb_set_intfdata(intf, NULL);

+ usb_put_dev(interface_to_usbdev(intf));
+
bfusb_close(hdev);

hci_unregister_dev(hdev);
--
2.25.1