2021-07-31 15:42:55

by Salah Triki

[permalink] [raw]
Subject: [PATCH v2] bluetooth: bcm203x: 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/bcm203x.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/bluetooth/bcm203x.c b/drivers/bluetooth/bcm203x.c
index e667933c3d70..547d35425d70 100644
--- a/drivers/bluetooth/bcm203x.c
+++ b/drivers/bluetooth/bcm203x.c
@@ -166,7 +166,7 @@ static int bcm203x_probe(struct usb_interface *intf, const struct usb_device_id
if (!data)
return -ENOMEM;

- data->udev = udev;
+ data->udev = usb_get_dev(udev);
data->state = BCM203X_LOAD_MINIDRV;

data->urb = usb_alloc_urb(0, GFP_KERNEL);
@@ -244,6 +244,8 @@ static void bcm203x_disconnect(struct usb_interface *intf)

usb_set_intfdata(intf, NULL);

+ usb_put_dev(data->udev);
+
usb_free_urb(data->urb);
kfree(data->fw_data);
kfree(data->buffer);
--
2.25.1