USB: fix race in HCD removal
authorAlan Stern <stern@rowland.harvard.edu>
Tue, 13 Mar 2007 15:10:52 +0000 (11:10 -0400)
committerGreg Kroah-Hartman <gregkh@suse.de>
Fri, 27 Apr 2007 20:28:34 +0000 (13:28 -0700)
commit1b42ae6d4355328dc4406b6f0188adcf8c566435
tree054e44f46fd7c2c4b25e4a7d40313879c5a4bffd
parent949be0f7be8de0c5a6a46626bd983f7a03a4b26e
USB: fix race in HCD removal

This patch (as865) fixes a race in the HCD removal code discovered by
Milan Plzik.  Arrival of an interrupt after the root hub was
unregistered could cause the root-hub status timer to start up, even
after it was supposed to have been shut down.  The problem is fixed by
moving the del_timer_sync() call to after the HCD's stop() method, at
which time IRQ generation should be disabled.

Cc: Milan Plzik <milan.plzik@gmail.com>
Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/core/hcd.c