Hi,
Here's a patch against 2.4.13-pre5 that converts the usages of
current->state in the USB code to set_current_state(). The patch is by
Arnaldo Carvalho de Melo.
thanks,
greg k-h
(temporary USB maintainer)
diff --minimal -Nru a/drivers/usb/hiddev.c b/drivers/usb/hiddev.c
--- a/drivers/usb/hiddev.c Fri Oct 19 16:11:08 2001
+++ b/drivers/usb/hiddev.c Fri Oct 19 16:11:08 2001
@@ -264,7 +264,7 @@
if (list->head == list->tail) {
add_wait_queue(&list->hiddev->wait, &wait);
- current->state = TASK_INTERRUPTIBLE;
+ set_current_state(TASK_INTERRUPTIBLE);
while (list->head == list->tail) {
@@ -284,7 +284,7 @@
schedule();
}
- current->state = TASK_RUNNING;
+ set_current_state(TASK_RUNNING);
remove_wait_queue(&list->hiddev->wait, &wait);
}
diff --minimal -Nru a/drivers/usb/kaweth.c b/drivers/usb/kaweth.c
--- a/drivers/usb/kaweth.c Fri Oct 19 16:11:08 2001
+++ b/drivers/usb/kaweth.c Fri Oct 19 16:11:08 2001
@@ -969,14 +969,14 @@
init_waitqueue_head(&awd.wqh);
awd.done = 0;
- current->state = TASK_INTERRUPTIBLE;
+ set_current_state(TASK_INTERRUPTIBLE);
add_wait_queue(&awd.wqh, &wait);
urb->context = &awd;
status = usb_submit_urb(urb);
if (status) {
// something went wrong
usb_free_urb(urb);
- current->state = TASK_RUNNING;
+ set_current_state(TASK_RUNNING);
remove_wait_queue(&awd.wqh, &wait);
return status;
}
@@ -984,7 +984,7 @@
while (timeout && !awd.done)
timeout = schedule_timeout(timeout);
- current->state = TASK_RUNNING;
+ set_current_state(TASK_RUNNING);
remove_wait_queue(&awd.wqh, &wait);
if (!timeout) {
diff --minimal -Nru a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
--- a/drivers/usb/serial/ftdi_sio.c Fri Oct 19 16:11:08 2001
+++ b/drivers/usb/serial/ftdi_sio.c Fri Oct 19 16:11:08 2001
@@ -454,7 +454,7 @@
while (port->write_urb->status == -EINPROGRESS) {
dbg(__FUNCTION__ " write in progress - retrying");
if (signal_pending(current)) {
- current->state = TASK_RUNNING;
+ set_current_state(TASK_RUNNING);
remove_wait_queue(&port->write_wait, &wait);
rc = -ERESTARTSYS;
goto err;
diff --minimal -Nru a/drivers/usb/usb-ohci.c b/drivers/usb/usb-ohci.c
--- a/drivers/usb/usb-ohci.c Fri Oct 19 16:11:07 2001
+++ b/drivers/usb/usb-ohci.c Fri Oct 19 16:11:07 2001
@@ -779,7 +779,7 @@
set_current_state(TASK_UNINTERRUPTIBLE);
while (timeout && (urb->status == USB_ST_URB_PENDING))
timeout = schedule_timeout (timeout);
- current->state = TASK_RUNNING;
+ set_current_state(TASK_RUNNING);
remove_wait_queue (&unlink_wakeup, &wait);
if (urb->status == USB_ST_URB_PENDING) {
err ("unlink URB timeout");
@@ -884,7 +884,7 @@
set_current_state(TASK_UNINTERRUPTIBLE);
while (timeout && dev->ed_cnt)
timeout = schedule_timeout (timeout);
- current->state = TASK_RUNNING;
+ set_current_state(TASK_RUNNING);
remove_wait_queue (&freedev_wakeup, &wait);
if (dev->ed_cnt) {
err ("free device %d timeout",
usb_dev->devnum);
diff --minimal -Nru a/drivers/usb/usbnet.c b/drivers/usb/usbnet.c
--- a/drivers/usb/usbnet.c Fri Oct 19 16:11:09 2001
+++ b/drivers/usb/usbnet.c Fri Oct 19 16:11:09 2001
@@ -1056,7 +1056,7 @@
while (skb_queue_len (&dev->rxq)
&& skb_queue_len (&dev->txq)
&& skb_queue_len (&dev->done)) {
- current->state = TASK_UNINTERRUPTIBLE;
+ set_current_state(TASK_UNINTERRUPTIBLE);
schedule_timeout (UNLINK_TIMEOUT_JIFFIES);
dbg ("waited for %d urb completions", temp);
}
diff --minimal -Nru a/drivers/usb/uss720.c b/drivers/usb/uss720.c
--- a/drivers/usb/uss720.c Fri Oct 19 16:11:08 2001
+++ b/drivers/usb/uss720.c Fri Oct 19 16:11:08 2001
@@ -159,7 +159,7 @@
if (time_after_eq (jiffies, expire))
/* The FIFO is stuck. */
return -EBUSY;
- current->state = TASK_INTERRUPTIBLE;
+ set_current_state(TASK_INTERRUPTIBLE);
schedule_timeout((HZ + 99) / 100);
if (signal_pending (current))
break;
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel