diff mbox series

usb/usbtmc: Remove a redundant kref_put in usbtmc_disconnect

Message ID 20210311150354.8723-1-lyl2019@mail.ustc.edu.cn
State New
Headers show
Series usb/usbtmc: Remove a redundant kref_put in usbtmc_disconnect | expand

Commit Message

Lv Yunlong March 11, 2021, 3:03 p.m. UTC
In the implementation of usbtmc_free_int(), it already calls
kref_put() to free the data as shown below. So, in
usbtmc_disconnect, call an extra kref_put() is redundant.

"""
static void usbtmc_free_int(struct usbtmc_device_data *data)
{
	if (!data->iin_ep_present || !data->iin_urb)
		return;
	usb_kill_urb(data->iin_urb);
	kfree(data->iin_buffer);
	data->iin_buffer = NULL;
	usb_free_urb(data->iin_urb);
	data->iin_urb = NULL;
	kref_put(&data->kref, usbtmc_delete);
}
"""

Signed-off-by: Lv Yunlong <lyl2019@mail.ustc.edu.cn>
---
 drivers/usb/class/usbtmc.c | 1 -
 1 file changed, 1 deletion(-)

Comments

Greg Kroah-Hartman March 12, 2021, 2:30 p.m. UTC | #1
On Thu, Mar 11, 2021 at 07:03:54AM -0800, Lv Yunlong wrote:
> In the implementation of usbtmc_free_int(), it already calls

> kref_put() to free the data as shown below. So, in

> usbtmc_disconnect, call an extra kref_put() is redundant.

> 

> """

> static void usbtmc_free_int(struct usbtmc_device_data *data)

> {

> 	if (!data->iin_ep_present || !data->iin_urb)

> 		return;

> 	usb_kill_urb(data->iin_urb);

> 	kfree(data->iin_buffer);

> 	data->iin_buffer = NULL;

> 	usb_free_urb(data->iin_urb);

> 	data->iin_urb = NULL;

> 	kref_put(&data->kref, usbtmc_delete);

> }

> """

> 

> Signed-off-by: Lv Yunlong <lyl2019@mail.ustc.edu.cn>

> ---

>  drivers/usb/class/usbtmc.c | 1 -

>  1 file changed, 1 deletion(-)

> 

> diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c

> index 74d5a9c5238a..adcdd2df1949 100644

> --- a/drivers/usb/class/usbtmc.c

> +++ b/drivers/usb/class/usbtmc.c

> @@ -2494,7 +2494,6 @@ static void usbtmc_disconnect(struct usb_interface *intf)

>  	}

>  	mutex_unlock(&data->io_mutex);

>  	usbtmc_free_int(data);

> -	kref_put(&data->kref, usbtmc_delete);


Did you test this change?

If not, please do so, I think the code is fine as-is.

thanks,

greg k-h
diff mbox series

Patch

diff --git a/drivers/usb/class/usbtmc.c b/drivers/usb/class/usbtmc.c
index 74d5a9c5238a..adcdd2df1949 100644
--- a/drivers/usb/class/usbtmc.c
+++ b/drivers/usb/class/usbtmc.c
@@ -2494,7 +2494,6 @@  static void usbtmc_disconnect(struct usb_interface *intf)
 	}
 	mutex_unlock(&data->io_mutex);
 	usbtmc_free_int(data);
-	kref_put(&data->kref, usbtmc_delete);
 }
 
 static void usbtmc_draw_down(struct usbtmc_file_data *file_data)