ChangeSet 1.2020.1.21, 2005/03/07 22:33:54-08:00, [EMAIL PROTECTED] [PATCH] usb/auerswald: use wait_event_timeout()
Use wait_event_timeout() instead of custom wait-queue code. There might be a problem with returning without adding/removing to the waitqueue before wait_event_timeout() is called. I am not sure if this is a problem or not. Signed-off-by: Nishanth Aravamudan <[EMAIL PROTECTED]> Signed-off-by: Greg Kroah-Hartman <[EMAIL PROTECTED]> drivers/usb/misc/auerswald.c | 19 +++---------------- 1 files changed, 3 insertions(+), 16 deletions(-) diff -Nru a/drivers/usb/misc/auerswald.c b/drivers/usb/misc/auerswald.c --- a/drivers/usb/misc/auerswald.c 2005-03-08 16:54:35 -08:00 +++ b/drivers/usb/misc/auerswald.c 2005-03-08 16:54:35 -08:00 @@ -29,6 +29,7 @@ #include <linux/slab.h> #include <linux/module.h> #include <linux/init.h> +#include <linux/wait.h> #undef DEBUG /* include debug macros until it's done */ #include <linux/usb.h> @@ -605,7 +606,6 @@ /* Starts chained urb and waits for completion or timeout */ static int auerchain_start_wait_urb (pauerchain_t acp, struct urb *urb, int timeout, int* actual_length) { - DECLARE_WAITQUEUE (wait, current); auerchain_chs_t chs; int status; @@ -613,26 +613,13 @@ init_waitqueue_head (&chs.wqh); chs.done = 0; - set_current_state (TASK_UNINTERRUPTIBLE); - add_wait_queue (&chs.wqh, &wait); urb->context = &chs; status = auerchain_submit_urb (acp, urb); - if (status) { + if (status) /* something went wrong */ - set_current_state (TASK_RUNNING); - remove_wait_queue (&chs.wqh, &wait); return status; - } - - while (timeout && !chs.done) - { - timeout = schedule_timeout (timeout); - set_current_state(TASK_UNINTERRUPTIBLE); - rmb(); - } - set_current_state (TASK_RUNNING); - remove_wait_queue (&chs.wqh, &wait); + timeout = wait_event_timeout(chs.wqh, chs.done, timeout); if (!timeout && !chs.done) { if (urb->status != -EINPROGRESS) { /* No callback?!! */ ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://ads.osdn.com/?ad_ide95&alloc_id396&op=click _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel