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