2008-12-20 01:21:58

by Christian Lamparter

[permalink] [raw]
Subject: [PATCH 2/2] p54usb: fix random traffic stalls (LM87)

All LM87 firmwares need a explicit termination "packet",
in oder to finish the pending transfer properly.

Signed-off-by: Christian Lamparter <[email protected]>
---
Larry,

Does your test case still fail with this one?
---
diff -Nurp a/drivers/net/wireless/p54/p54usb.c b/drivers/net/wireless/p54/p54usb.c
--- a/drivers/net/wireless/p54/p54usb.c 2008-12-20 00:26:35.000000000 +0100
+++ b/drivers/net/wireless/p54/p54usb.c 2008-12-20 01:09:45.000000000 +0100
@@ -284,6 +284,7 @@ static void p54u_tx_lm87(struct ieee8021
usb_fill_bulk_urb(data_urb, priv->udev,
usb_sndbulkpipe(priv->udev, P54U_PIPE_DATA),
skb->data, skb->len, p54u_tx_cb, skb);
+ data_urb->transfer_flags |= URB_ZERO_PACKET;

usb_anchor_urb(data_urb, &priv->submitted);
if (usb_submit_urb(data_urb, GFP_ATOMIC)) {



2008-12-20 05:53:58

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 2/2] p54usb: fix random traffic stalls (LM87)

Larry Finger wrote:
>
> When the connection failed, unloading the driver and reloading it yielded the lines
>
> usb 1-5: (p54usb) reset failed! (-22)
> p54usb: probe of 1-5:1.0 failed with error -22

I think this problem was thermal. After the device sat on the shelf for 20
minutes, it worked fine. Maybe I need a better heat sink as well.

Larry

2008-12-20 05:47:51

by Larry Finger

[permalink] [raw]
Subject: Re: [PATCH 2/2] p54usb: fix random traffic stalls (LM87)

Christian Lamparter wrote:
> All LM87 firmwares need a explicit termination "packet",
> in oder to finish the pending transfer properly.
>
> Signed-off-by: Christian Lamparter <[email protected]>
> ---
> Larry,
>
> Does your test case still fail with this one?

No, it seems to be fixed. I still have a failure, but the symptoms are different.

Today I had created the following script:

#! /usr/bin/perl
#
for ($i = 30; $i < 1600 ; $i++) {
`ping -c 1 -s $i my_server`;
printf ("%d\n ", $i);
}

I found that this script stalled for i of 372, 884 and 1396. I was still trying
to find it it was a transmit or receive problem when your patch arrived. With
this change, the ping script runs to completion, and my NFS compile ran a lot
longer than previously.

When the connection failed, unloading the driver and reloading it yielded the lines

usb 1-5: (p54usb) reset failed! (-22)
p54usb: probe of 1-5:1.0 failed with error -22

In my estimation, I think the patch is clearly needed and should be pushed.

Larry