Update of /cvsroot/linuxconsole/ruby/linux/drivers/usb
In directory usw-pr-cvs1:/tmp/cvs-serv21222
Modified Files:
hid-core.c
Log Message:
Adapted to usb API changes.
Added seemingly missing spin_unlock_irq_restore()s in completion handlers.
Index: hid-core.c
===================================================================
RCS file: /cvsroot/linuxconsole/ruby/linux/drivers/usb/hid-core.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- hid-core.c 21 Feb 2002 09:27:10 -0000 1.45
+++ hid-core.c 27 Feb 2002 22:26:58 -0000 1.46
@@ -49,6 +49,7 @@
#include <linux/hiddev.h>
#endif
+
/*
* Version Information
*/
@@ -990,7 +991,7 @@
dbg("submitting out urb");
- if (usb_submit_urb(hid->urbout)) {
+ if (usb_submit_urb(hid->urbout, GFP_ATOMIC)) {
err("usb_submit_urb(out) failed");
return -1;
}
@@ -1021,7 +1022,7 @@
dbg("submitting ctrl urb");
- if (usb_submit_urb(hid->urbctrl)) {
+ if (usb_submit_urb(hid->urbctrl, GFP_ATOMIC)) {
err("usb_submit_urb(ctrl) failed");
return -1;
}
@@ -1047,6 +1048,7 @@
if (hid->outhead != hid->outtail) {
hid_submit_out(hid);
+ spin_unlock_irqrestore(&hid->outlock, flags);
return;
}
@@ -1078,6 +1080,7 @@
if (hid->ctrlhead != hid->ctrltail) {
hid_submit_ctrl(hid);
+ spin_unlock_irqrestore(&hid->ctrllock, flags);
return;
}
@@ -1169,7 +1172,7 @@
hid->urbin->dev = hid->dev;
- if (usb_submit_urb(hid->urbin))
+ if (usb_submit_urb(hid->urbin, GFP_KERNEL))
return -EIO;
return 0;
@@ -1316,14 +1319,14 @@
if (endpoint->bEndpointAddress & USB_DIR_IN) {
if (hid->urbin)
continue;
- if (!(hid->urbin = usb_alloc_urb(0)))
+ if (!(hid->urbin = usb_alloc_urb(0, GFP_KERNEL)))
goto fail;
pipe = usb_rcvintpipe(dev, endpoint->bEndpointAddress);
FILL_INT_URB(hid->urbin, dev, pipe, hid->inbuf, 0, hid_irq_in, hid, endpoint->bInterval);
} else {
if (hid->urbout)
continue;
- if (!(hid->urbout = usb_alloc_urb(0)))
+ if (!(hid->urbout = usb_alloc_urb(0, GFP_KERNEL)))
goto fail;
pipe = usb_sndbulkpipe(dev, endpoint->bEndpointAddress);
FILL_BULK_URB(hid->urbout, dev, pipe, hid->outbuf, 0, hid_irq_out, hid);
@@ -1365,7 +1368,7 @@
kfree(buf);
- hid->urbctrl = usb_alloc_urb(0);
+ hid->urbctrl = usb_alloc_urb(0, GFP_KERNEL);
FILL_CONTROL_URB(hid->urbctrl, dev, 0, (void*) &hid->cr, hid->ctrlbuf, 1, hid_ctrl, hid);
return hid;
|