This patch merely cleans up the code a little and doesn't fix any bugs.
It makes a couple of code paths a bit easier to understand, removes an
unused variable (uhci_list) and some procfs variables when not using
procfs.

Greg, please apply to 2.4 and 2.5.

JE

--- linux-2.4.19-pre6.orig/drivers/usb/uhci.c   Sun Apr  7 16:29:57 2002
+++ linux-2.4.19-pre6/drivers/usb/uhci.c        Sun Apr  7 16:22:49 2002
@@ -1622,8 +1622,7 @@
 
        if (urb->status != -EINPROGRESS) {
                info("uhci_transfer_result: called for URB %p not in flight?", urb);
-               spin_unlock_irqrestore(&urb->lock, flags);
-               return;
+               goto out;
        }
 
        switch (usb_pipetype(urb->pipe)) {
@@ -1643,10 +1642,8 @@
 
        urbp->status = ret;
 
-       if (ret == -EINPROGRESS) {
-               spin_unlock_irqrestore(&urb->lock, flags);
-               return;
-       }
+       if (ret == -EINPROGRESS)
+               goto out;
 
        switch (usb_pipetype(urb->pipe)) {
        case PIPE_CONTROL:
@@ -1660,11 +1657,8 @@
                break;
        case PIPE_INTERRUPT:
                /* Interrupts are an exception */
-               if (urb->interval) {
-                       uhci_add_complete(urb);
-                       spin_unlock_irqrestore(&urb->lock, flags);
-                       return;         /* <-- note return */
-               }
+               if (urb->interval)
+                       goto out_complete;
 
                /* Release bandwidth for Interrupt or Isoc. transfers */
                /* Spinlock needed ? */
@@ -1680,8 +1674,10 @@
        /* Remove it from uhci->urb_list */
        list_del_init(&urb->urb_list);
 
+out_complete:
        uhci_add_complete(urb);
 
+out:
        spin_unlock_irqrestore(&urb->lock, flags);
 }
 
@@ -2710,6 +2706,7 @@
        }
 
        uhci->dev = dev;
+       uhci->irq = dev->irq;
        uhci->io_addr = io_addr;
        uhci->io_size = io_size;
        pci_set_drvdata(dev, uhci);
@@ -2922,8 +2919,6 @@
 
        if (request_irq(dev->irq, uhci_interrupt, SA_SHIRQ, "usb-uhci", uhci))
                goto err_request_irq;
-
-       uhci->irq = dev->irq;
 
        /* disable legacy emulation */
        pci_write_config_word(uhci->dev, USBLEGSUP, USBLEGSUP_DEFAULT);
--- linux-2.4.19-pre6.orig/drivers/usb/uhci.h   Sun Apr  7 13:22:10 2002
+++ linux-2.4.19-pre6/drivers/usb/uhci.h        Sun Apr  7 16:16:55 2002
@@ -287,16 +287,16 @@
 struct uhci {
        struct pci_dev *dev;
 
+#ifdef CONFIG_PROC_FS
        /* procfs */
        int num;
        struct proc_dir_entry *proc_entry;
+#endif
 
        /* Grabbed from PCI */
        int irq;
        unsigned int io_addr;
        unsigned int io_size;
-
-       struct list_head uhci_list;
 
        struct pci_pool *qh_pool;
        struct pci_pool *td_pool;

_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to