I guess this patch have been missed so I resend it as 2 rc more and still not applied 
or rejected.
Begin forwarded message:

Date: Tue, 11 Nov 2003 00:00:26 +0100
From: "fee mail" <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: Re: [linux-usb-devel] oops with usb-uhci module


here it is in diff -u old new format 
On Mon, 10 Nov 2003 14:51:30 -0800
"David Brownell" <[EMAIL PROTECTED]> wrote:

> diff -u old new


-- 
jeanseb
I know it look like I'm insane
Take a closer look I'm not to blame.
If love is blind I guess I'll buy myself a cane
        (slash / axl rose )
--- usb-uhci.c.orig     Mon Nov 10 23:37:44 2003
+++ usb-uhci.c  Mon Nov 10 16:28:50 2003
@@ -795,7 +795,7 @@
 
        list_add (&qh->desc_list, &urb_priv->desc_list);
 
-       queue_urb (s, urb);     // queue before inserting in desc chain
+       queue_urb_unlocked (s, urb);    // queue before inserting in desc chain
 
        qh->hw.qh.element &= cpu_to_le32(~UHCI_PTR_TERM);
 
@@ -1351,7 +1351,7 @@
        int ret=-1;
        unsigned long flags;
        
-       spin_lock_irqsave (&s->urb_list_lock, flags);
+       /* spin_lock_irqsave (&s->urb_list_lock, flags);*/
        p=s->urb_list.prev;
 
        for (; p != &s->urb_list; p = p->prev) {
@@ -1370,7 +1370,7 @@
                ret=0;
        }
        
-       spin_unlock_irqrestore(&s->urb_list_lock, flags);
+       /* spin_unlock_irqrestore(&s->urb_list_lock, flags);*/
        
        return ret;
 }
@@ -1486,7 +1486,7 @@
        fill_td (td, status, info, urb_priv->transfer_buffer_dma);
        list_add_tail (&td->desc_list, &urb_priv->desc_list);
 
-       queue_urb (s, urb);
+       queue_urb_unlocked (s, urb);
 
        insert_td_horizontal (s, s->int_chain[nint], td);       // store in INT-TDs
 
@@ -1567,7 +1567,7 @@
                        
                if (n  == last) {
                        status |= TD_CTRL_IOC;
-                       queue_urb (s, urb);
+                       queue_urb_unlocked (s, urb);
                }
 
                fill_td (td, status, destination | (((urb->iso_frame_desc[n].length - 
1) & 0x7ff) << 21),
@@ -1709,7 +1709,6 @@
                spin_unlock_irqrestore (&s->urb_list_lock, flags);
        }
        else {
-               spin_unlock_irqrestore (&s->urb_list_lock, flags);
                switch (type) {
                case PIPE_ISOCHRONOUS:                  
                        if (urb->bandwidth == 0) {      /* not yet checked/allocated */
@@ -1750,6 +1749,7 @@
                default:
                        ret = -EINVAL;
                }
+               spin_unlock_irqrestore (&s->urb_list_lock, flags);
        }
 
        dbg("submit_urb: scheduled with ret: %d", ret);

Reply via email to