aboutsummaryrefslogtreecommitdiffstats
path: root/usb
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2006-05-12 12:08:10 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2006-05-12 12:08:10 -0700
commit6959249171ed531e3238721562bc8204004e5cd7 (patch)
tree8e1889f47510407c9df9f211e7746981981cbbbc /usb
parent6fbc08c96071b6de8e4fd0a447ea9425c8c32cbf (diff)
downloadpatches-6959249171ed531e3238721562bc8204004e5cd7.tar.gz
put omninet in usb dir
Diffstat (limited to 'usb')
-rw-r--r--usb/omninet.patch52
1 files changed, 52 insertions, 0 deletions
diff --git a/usb/omninet.patch b/usb/omninet.patch
new file mode 100644
index 00000000000000..e860d2d8a4749b
--- /dev/null
+++ b/usb/omninet.patch
@@ -0,0 +1,52 @@
+From foo@baz Tue Apr 9 12:12:43 2002
+Date: Tue, 2 May 2006 08:44:45 +0200
+To: Greg KH <greg@kroah.com>
+From: Greg Kroah-Hartman <gregkh@suse.de>
+Subject: USB: fix omninet driver bug
+
+I introduced this way back in 2.6.13 when adding the port lock logic.
+This device talks out through different "ports" all at the same time, so
+the lock logic was wrong, preventing any data from ever being sent
+properly.
+
+Thanks a lot to Bernhard Reiter <bernhard@intevation.de> for being
+patient and helping with debugging this.
+
+Cc: Bernhard Reiter <bernhard@intevation.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/usb/serial/omninet.c | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+--- gregkh-2.6.orig/drivers/usb/serial/omninet.c
++++ gregkh-2.6/drivers/usb/serial/omninet.c
+@@ -257,14 +257,14 @@ static int omninet_write (struct usb_ser
+ return (0);
+ }
+
+- spin_lock(&port->lock);
+- if (port->write_urb_busy) {
+- spin_unlock(&port->lock);
++ spin_lock(&wport->lock);
++ if (wport->write_urb_busy) {
++ spin_unlock(&wport->lock);
+ dbg("%s - already writing", __FUNCTION__);
+ return 0;
+ }
+- port->write_urb_busy = 1;
+- spin_unlock(&port->lock);
++ wport->write_urb_busy = 1;
++ spin_unlock(&wport->lock);
+
+ count = (count > OMNINET_BULKOUTSIZE) ? OMNINET_BULKOUTSIZE : count;
+
+@@ -283,7 +283,7 @@ static int omninet_write (struct usb_ser
+ wport->write_urb->dev = serial->dev;
+ result = usb_submit_urb(wport->write_urb, GFP_ATOMIC);
+ if (result) {
+- port->write_urb_busy = 0;
++ wport->write_urb_busy = 0;
+ err("%s - failed submitting write urb, error %d", __FUNCTION__, result);
+ } else
+ result = count;