usb/kaweth: use wait_event_timeout()
Subsystems (2)
PATCH 36/39 usb/kaweth: use wait_event_timeout()
Quoted 11 lines · Greg KH
Quoted 10 lines · Nishanth Aravamudan
Quoted 9 lines · Greg KH
Quoted 7 lines · Nishanth Aravamudan
Hi,
Please consider applying.
Description: Use
wait_event_timeout()instead of custom wait-queue code. Remove now unused variables. I changed the code to only add to the wait-queue if necessary, but I'm not sure if this is correct.
Quoted 8 lines
Quoted 4 lines
Quoted 2 lines
Please at least compile your patches to make sure they build. This one does not :(
I'm not seeing a build error here; what errors are coming up for you?
Don't remember anymore, as I reverted the patch already...
I think it was a {} matching issue like your other patches.
You are right. I had actually fixed this, but didn't mail the updated diff. Sorry about that, Greg.
Please consider the following which builds cleanly.
Description: Use wait_event_timeout() instead of custom wait-queue code. Remove now unused variables. I changed the code to only add to the wait-queue if necessary, but I'm not sure if this is correct.
drivers/usb/net/kaweth.c +2 -11
@@ -58,6 +58,7 @@#include <linux/ethtool.h> #include <linux/pci.h> #include <linux/dma-mapping.h> +#include <linux/wait.h> #include <asm/uaccess.h> #include <asm/semaphore.h> #include <asm/byteorder.h>
@@ -1180,31 +1181,21 @@ static void usb_api_blocking_completion(// Starts urb and waits for completion or timeout static int usb_start_wait_urb (struct urb *urb,int timeout,int * actual_length) { -DECLARE_WAITQUEUE (wait, current);struct usb_api_data awd;int status;init_waitqueue_head (&awd.wqh); awd.done =0 ; -add_wait_queue (&awd.wqh, &wait); urb->context = &awd; status =usb_submit_urb (urb,GFP_NOIO );if (status) {// something went wrong usb_free_urb (urb); -remove_wait_queue (&awd.wqh, &wait);return status; } -while (timeout && !awd.done) { -set_current_state (TASK_UNINTERRUPTIBLE ); - timeout =schedule_timeout (timeout); - } - -remove_wait_queue (&awd.wqh, &wait); - -if (!timeout) { +if (!wait_event_timeout (awd.wqh, awd.done, timeout)) {// timeout kaweth_warn ("usb_control/bulk_msg: timeout" );usb_kill_urb (urb);// remove urb safely
_______________________________________________
Kernel-janitors mailing list
[email protected]
http://lists.osdl.org/mailman/listinfo/kernel-janitors