Commit:     ddc1fd6ac1f3ad3275e19451fb07d2eff249161c
Parent:     6372594ac1779261926f2f2c4ef5e79936e4faef
Author:     Alan Stern <[EMAIL PROTECTED]>
AuthorDate: Wed Nov 21 15:13:10 2007 -0800
Committer:  Greg Kroah-Hartman <[EMAIL PROTECTED]>
CommitDate: Wed Nov 28 13:58:35 2007 -0800

    USB HCD: avoid duplicate local_irq_disable()
    Arnd Bergmann wrote:
    usb_hcd_flush_endpoint() has a retry loop that starts with a 
    but only gives up the spinlock, not the irq_disable before jumping to the
    rescan label.
    Alan Stern:
    I agree with your sentiment, but it would be better to solve this
    problem without using local_irq_disable().
    Signed-off-by: Alan Stern <[EMAIL PROTECTED]>
    Cc: Arnd Bergmann <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]>
 drivers/usb/core/hcd.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
index fea8256..d5ed3fa 100644
--- a/drivers/usb/core/hcd.c
+++ b/drivers/usb/core/hcd.c
@@ -1311,8 +1311,8 @@ void usb_hcd_flush_endpoint(struct usb_device *udev,
        hcd = bus_to_hcd(udev->bus);
        /* No more submits can occur */
        list_for_each_entry (urb, &ep->urb_list, urb_list) {
                int     is_in;
@@ -1345,6 +1345,7 @@ rescan:
                usb_put_urb (urb);
                /* list contents may have changed */
+               spin_lock(&hcd_urb_list_lock);
                goto rescan;
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to