Re: [PATCH] input: pxrc - do not store USB device in private struct
From: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Date: 2018-07-25 23:37:57
Also in:
lkml
On Tue, Jul 24, 2018 at 08:09:59PM +0200, Marcus Folkesson wrote:
Hello Dmitry, On Tue, Jul 24, 2018 at 02:38:04AM +0000, Dmitry Torokhov wrote:quoted
Hi Marcus, On Mon, Jul 16, 2018 at 04:40:14PM +0200, Marcus Folkesson wrote:quoted
The USB device is only needed during setup, so put it back after initialization and do not store it in our private struct. Also, the USB device is a parent of USB interface so our driver model rules ensure that USB device should not disappear while interface device is still there. So not keep a refcount on the device is safe. Reported-by: Alexey Khoroshilov <redacted> Signed-off-by: Marcus Folkesson <marcus.folkesson@gmail.com> --- drivers/input/joystick/pxrc.c | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-)diff --git a/drivers/input/joystick/pxrc.c b/drivers/input/joystick/pxrc.c index 07a0dbd3ced2..46a7acb747bf 100644 --- a/drivers/input/joystick/pxrc.c +++ b/drivers/input/joystick/pxrc.c...quoted
@@ -204,23 +204,25 @@ static int pxrc_probe(struct usb_interface *intf, return -ENOMEM; mutex_init(&pxrc->pm_mutex); - pxrc->udev = usb_get_dev(interface_to_usbdev(intf)); + udev = usb_get_dev(interface_to_usbdev(intf));There is really no need to "get" device for the probe duration, or in general, when you are not storing the reference to it. I posted series with an updated version of this patch plus couple more cleanups/fixes, and would appreciate if you could give it a spin.Thank you for doing this. I have reviewed the patchset and tested on real hardware, and it looks good to me. For what it's worth: Reviewed-by: Marcus Folkesson <marcus.folkesson@gmail.com> Tested-by: Marcus Folkesson <marcus.folkesson@gmail.com> On the whole patchset.
Excellent, thank you. -- Dmitry