This is a note to let you know that I've just added the patch titled Subject: USB: fix locking loop by avoiding flush_scheduled_work
to my gregkh-2.6 tree. Its filename is usb-fix-locking-loop-by-avoiding-flush_scheduled_work.patch This tree can be found at http://www.kernel.org/pub/linux/kernel/people/gregkh/gregkh-2.6/patches/ >From [EMAIL PROTECTED] Tue Dec 11 13:02:30 2007 From: Alan Stern <[EMAIL PROTECTED]> Date: Tue, 11 Dec 2007 16:02:23 -0500 (EST) Subject: USB: fix locking loop by avoiding flush_scheduled_work To: Greg KH <[EMAIL PROTECTED]> Cc: David Brownell <[EMAIL PROTECTED]>, USB list <linux-usb@vger.kernel.org>, USB development list <[EMAIL PROTECTED]> Message-ID: <[EMAIL PROTECTED]> This patch (as1027) replaces a call to flush_scheduled_work() -- a dangerous routine to invoke, especially while holding any sort of lock -- with calls to cancel_work_sync() and cancel_delayed_work_sync(). This fixes Bugzilla #9532. Signed-off-by: Alan Stern <[EMAIL PROTECTED]> CC: David Brownell <[EMAIL PROTECTED]> Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]> --- drivers/usb/core/hub.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -529,9 +529,9 @@ static void hub_quiesce(struct usb_hub * /* (blocking) stop khubd and related activity */ usb_kill_urb(hub->urb); if (hub->has_indicators) - cancel_delayed_work(&hub->leds); - if (hub->has_indicators || hub->tt.hub) - flush_scheduled_work(); + cancel_delayed_work_sync(&hub->leds); + if (hub->tt.hub) + cancel_work_sync(&hub->tt.kevent); } static void hub_activate(struct usb_hub *hub) Patches currently in gregkh-2.6 which might be from [EMAIL PROTECTED] are driver/pm-acquire-device-locks-prior-to-suspending.patch driver/kobject-drop-child-parent-ref-at-unregistration.patch driver/driver-core-fix-race-in-__device_release_driver.patch driver/driver-core-fix-class-glue-dir-cleanup-logic.patch usb/usb-storage-fix-devices-that-cannot-handle-32k-transfers.patch usb/usb-usb-storage-new-lockable-subclass-0x07.patch usb/usb-fix-locking-loop-by-avoiding-flush_scheduled_work.patch usb/usb-usb-mon-mon_bin.c-cleanups.patch usb/usb-revert-portions-of-unusual_dev-sync-up-some-reported-devices-from-ubuntu.patch usb/usb-use-irqf_disabled-for-hcd-interrupt-handlers.patch usb/usb-autosuspend-for-cdc-acm.patch usb/usb-don-t-change-hc-power-state-for-a-freeze.patch usb/usb-dummy_hcd-don-t-register-drivers-on-the-platform-bus.patch usb/usb-force-handover-port-to-companion-when-hub_port_connect_change-fails.patch usb/usb-make-ksuspend_usbd-thread-non-freezable.patch - To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html