132: Usb device reference counting with usb_get_dev/usb_put_dev and interface_to_usbdev
Proper reference counting should be performed for
struct usb_device with the use of functions
/** * usb_get_dev - increments the reference count of the usb device structure * @dev: the device being referenced * * Each live reference to a device should be refcounted. * * Drivers for USB interfaces should normally record such references in * their probe() methods, when they bind to an interface, and release * them by calling usb_put_dev(), in their disconnect() methods.
Usually the reference count is increased in
probe()handler and decreased in
exit()handler. It look like
interface_to_usbdev()macro is often used in
probe()handler to get the reference to
usb_deviceby the reference to
So the rule may be initially formalized in the following way: after acquiring a reference to
struct usb_device with
usb_interface macro one should increase the corresponding reference counter with
usb_get_dev and then decrease it with
usb_put_dev at finalization.
Sample bugfixes 927c3fa