On Tue, 31 Jul 2012, Oliver Neukum wrote:

> > Another alternative is for the other drivers to delay the reset (by 
> > sleeping in their pre_reset callbacks) until they can handle the reset 
> > safely.
> 
> No! You must not ever do that!
> 
> The reset is a part of the error handling path of the block layer. Therefore
> it must not sleep indefinitely. In particular you must never wait for anything
> user space does or for any part of the kernel that allocates memory with
> GFP_KERNEL or GFP_NOFS, and you must allocate memory only with GFP_NOIO.
> The penalty is deadlock.

True; it's easy to forget that.  Although in practice it's not very 
likely to occur.  It would require a writable memory-mapped file or 
swap partition on a USB drive and a system running low on available 
memory.

Alan Stern

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to