Save irq state in uhci_stop so that the irqsave/irqrestore's
in all the free_pending and remove_pending code can be eliminated.

diff -Nru a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
--- a/drivers/usb/host/uhci-hcd.c       Mon Feb  9 12:56:00 2004
+++ b/drivers/usb/host/uhci-hcd.c       Mon Feb  9 12:56:00 2004
@@ -2448,6 +2448,7 @@
 static void uhci_stop(struct usb_hcd *hcd)
 {
        struct uhci_hcd *uhci = hcd_to_uhci(hcd);
+       unsigned long flags;
 
        del_timer_sync(&uhci->stall_timer);
 
@@ -2455,6 +2456,7 @@
         * At this point, we're guaranteed that no new connects can be made
         * to this bus since there are no more parents
         */
+       local_irq_save(flags);
        uhci_free_pending_qhs(uhci);
        uhci_free_pending_tds(uhci);
        uhci_remove_pending_qhs(uhci);
@@ -2463,7 +2465,8 @@
 
        uhci_free_pending_qhs(uhci);
        uhci_free_pending_tds(uhci);
-
+       local_irq_restore(flags);
+       
        release_uhci(uhci);
 }
 


-------------------------------------------------------
The SF.Net email is sponsored by EclipseCon 2004
Premiere Conference on Open Tools Development and Integration
See the breadth of Eclipse activity. February 3-5 in Anaheim, CA.
http://www.eclipsecon.org/osdn
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to