usb/usblp: use wait_event_interruptible_timeout()
Subsystems (3)
PATCH 38/39 usb/usblp: use wait_event_interruptible_timeout()
Hi,
Please consider applying.
Description: Use wait_event_timeout() instead of custom wait-queue code. Remove now unused variables.
Signed-off-by Nishanth Aravamudan <[email protected]>
drivers/usb/class/usblp.c +7 -17
@@ -54,6 +54,7 @@#include <linux/init.h> #include <linux/slab.h> #include <linux/lp.h> +#include <linux/wait.h> #undef DEBUG#include <linux/usb.h>
@@ -622,10 +623,10 @@ done:static ssize_t usblp_write (struct file *file,const char __user *buffer,size_t count,loff_t *ppos) { -DECLARE_WAITQUEUE (wait, current);struct usblp *usblp = file->private_data; -int timeout, err =0 , transfer_length =0 ; +int err =0 , transfer_length =0 ;size_t writecount =0 ; +long ret;while (writecount < count) {if (!usblp->wcomplete) {
@@ -635,21 +636,10 @@ static ssize_t usblp_write(struct file *return writecount ? writecount : -EAGAIN ; } - timeout =USBLP_WRITE_TIMEOUT ; -add_wait_queue (&usblp->wait, &wait); -while (timeout) { -if (signal_pending (current)) { -remove_wait_queue (&usblp->wait, &wait); -return writecount ? writecount : -EINTR ; - } -set_current_state (TASK_INTERRUPTIBLE ); -if (usblp->wcomplete) { -set_current_state (TASK_RUNNING ); -break ; - } - timeout =schedule_timeout (timeout); - } -remove_wait_queue (&usblp->wait, &wait); + ret =wait_event_interruptible_timeout (usblp->wait, + usblp->complete,USBLP_WRITE_TIMEOUT ); +if (ret == -ERESTARTSYS ) +return writecount ? writecount : -EINTR ; }down (&usblp->sem);
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors