Re: [PATCH] HID: elo: Fix refcount leak in elo_probe()
From: Alan Stern <stern@rowland.harvard.edu>
Date: 2022-02-17 15:25:10
Also in:
linux-usb
From: Alan Stern <stern@rowland.harvard.edu>
Date: 2022-02-17 15:25:10
Also in:
linux-usb
On Thu, Feb 17, 2022 at 11:04:59AM +0300, Dan Carpenter wrote:
Salah sent a bunch of these. The reasoning was explained in this email. https://www.spinics.net/lists/kernel/msg4026672.html When he resent the patch, Greg said that taking the reference wasn't needed so the patch wasn't applied. (Also it had the same reference leak so that's a second reason it wasn't applied).
Indeed, the kerneldoc for usb_get_intf() does say that each reference held by a driver must be refcounted. And there's nothing wrong with doing that, _provided_ you do it correctly. But if you know the extra refcount will never be needed (because the reference will be dropped before the usb_interface in question is removed), fiddling with the reference count is unnecessary. I guess whether or not to do it could be considered a matter of taste. On the other hand, it wouldn't hurt to update the kerneldoc for usb_get_intf() (and usb_get_dev() also). We could point out that if a driver does not access the usb_interface structure after its disconnect routine returns, incrementing the refcount isn't mandatory. Greg, any opinion on this? Alan Stern