]> git.karo-electronics.de Git - mv-sheeva.git/blobdiff - drivers/usb/core/hcd.c
Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mfashe...
[mv-sheeva.git] / drivers / usb / core / hcd.c
index 3dd997df8505bf3b2f64c7210f71b466b7101746..d5ed3fa9e304b5d76b859b31203ab6bb866a3aa1 100644 (file)
@@ -30,7 +30,6 @@
 #include <linux/utsname.h>
 #include <linux/mm.h>
 #include <asm/io.h>
-#include <asm/scatterlist.h>
 #include <linux/device.h>
 #include <linux/dma-mapping.h>
 #include <linux/mutex.h>
@@ -1312,8 +1311,8 @@ void usb_hcd_flush_endpoint(struct usb_device *udev,
        hcd = bus_to_hcd(udev->bus);
 
        /* No more submits can occur */
-rescan:
        spin_lock_irq(&hcd_urb_list_lock);
+rescan:
        list_for_each_entry (urb, &ep->urb_list, urb_list) {
                int     is_in;
 
@@ -1346,6 +1345,7 @@ rescan:
                usb_put_urb (urb);
 
                /* list contents may have changed */
+               spin_lock(&hcd_urb_list_lock);
                goto rescan;
        }
        spin_unlock_irq(&hcd_urb_list_lock);