On Mon, Jan 31, 2005 at 11:33:28AM -0800, Greg KH wrote:
> On Mon, Jan 31, 2005 at 11:27:03AM -0800, Nishanth Aravamudan wrote:
> > On Mon, Jan 31, 2005 at 10:51:59AM -0800, Greg KH wrote:
> > > On Fri, Jan 21, 2005 at 01:36:35PM -0800, Nishanth Aravamudan wrote:
> > > > 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.
> > >
> > > 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.
Signed-off-by: Nishanth Aravamudan <[EMAIL PROTECTED]>
--- 2.6.11-rc2-v/drivers/usb/net/kaweth.c 2005-01-31 11:17:54.000000000
-0800
+++ 2.6.11-rc2-kj/drivers/usb/net/kaweth.c 2005-01-24 09:35:07.000000000
-0800
@@ -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
-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel