Commit 6498d9db authored by Alan Stern's avatar Alan Stern Committed by Greg Kroah-Hartman

USB: documentation update for the pre_reset method

This patch (as1459) updates the documentation for the pre_reset method
in struct usb_driver.  When a driver is notified of an impending
reset, it must cancel all outstanding I/O and not start any new I/O
until it has been notified that the reset is complete.

As far as I know, most existing drivers that implement pre_reset do
this now.  The major exceptions appear to be the SpeedTouch and
CDC-WDM drivers.
Signed-off-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 15b2f320
...@@ -95,9 +95,11 @@ pre_reset ...@@ -95,9 +95,11 @@ pre_reset
int (*pre_reset)(struct usb_interface *intf); int (*pre_reset)(struct usb_interface *intf);
Another driver or user space is triggering a reset on the device which A driver or user space is triggering a reset on the device which
contains the interface passed as an argument. Cease IO and save any contains the interface passed as an argument. Cease IO, wait for all
device state you need to restore. outstanding URBs to complete, and save any device state you need to
restore. No more URBs may be submitted until the post_reset method
is called.
If you need to allocate memory here, use GFP_NOIO or GFP_ATOMIC, if you If you need to allocate memory here, use GFP_NOIO or GFP_ATOMIC, if you
are in atomic context. are in atomic context.
......
...@@ -806,8 +806,10 @@ struct usbdrv_wrap { ...@@ -806,8 +806,10 @@ struct usbdrv_wrap {
* @resume: Called when the device is being resumed by the system. * @resume: Called when the device is being resumed by the system.
* @reset_resume: Called when the suspended device has been reset instead * @reset_resume: Called when the suspended device has been reset instead
* of being resumed. * of being resumed.
* @pre_reset: Called by usb_reset_device() when the device * @pre_reset: Called by usb_reset_device() when the device is about to be
* is about to be reset. * reset. This routine must not return until the driver has no active
* URBs for the device, and no more URBs may be submitted until the
* post_reset method is called.
* @post_reset: Called by usb_reset_device() after the device * @post_reset: Called by usb_reset_device() after the device
* has been reset * has been reset
* @id_table: USB drivers use ID table to support hotplugging. * @id_table: USB drivers use ID table to support hotplugging.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment