* [PATCH] rndis_wlan: enable stall workaround by link quality instead of link speed
@ 2008-02-06 13:36 Jussi Kivilinna
2008-02-16 10:06 ` Jussi Kivilinna
0 siblings, 1 reply; 3+ messages in thread
From: Jussi Kivilinna @ 2008-02-06 13:36 UTC (permalink / raw)
To: linville; +Cc: linux-wireless
Enable workaround for poor link stalls by link quality instead of link
speed. Using link speed caused workaround be active always on 802.11b
networks which reduced performance and not even catch all stalls.
Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
---
drivers/net/wireless/rndis_wlan.c | 14 +++++---------
1 files changed, 5 insertions(+), 9 deletions(-)
diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
index d3ecf89..8ce2ddf 100644
--- a/drivers/net/wireless/rndis_wlan.c
+++ b/drivers/net/wireless/rndis_wlan.c
@@ -2300,7 +2300,7 @@ static void rndis_update_wireless_stats(struct work_struct *work)
struct usbnet *usbdev = priv->usbdev;
struct iw_statistics iwstats;
__le32 rssi, tmp;
- int len, ret, bitrate, j;
+ int len, ret, j;
unsigned long flags;
int update_jiffies = STATS_UPDATE_JIFFIES;
void *buf;
@@ -2352,14 +2352,10 @@ static void rndis_update_wireless_stats(struct work_struct *work)
if (ret == 0)
iwstats.discard.misc += le32_to_cpu(tmp);
- /* Workaround transfer stalls on poor quality links. */
- len = sizeof(tmp);
- ret = rndis_query_oid(usbdev, OID_GEN_LINK_SPEED, &tmp, &len);
- if (ret == 0) {
- bitrate = le32_to_cpu(tmp) * 100;
- if (bitrate > 11000000)
- goto end;
-
+ /* Workaround transfer stalls on poor quality links.
+ * TODO: find right way to fix these stalls (as stalls do not happen
+ * with ndiswrapper/windows driver). */
+ if (iwstats.qual.qual <= 25) {
/* Decrease stats worker interval to catch stalls.
* faster. Faster than 400-500ms causes packet loss,
* Slower doesn't catch stalls fast enough.
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] rndis_wlan: enable stall workaround by link quality instead of link speed
2008-02-06 13:36 [PATCH] rndis_wlan: enable stall workaround by link quality instead of link speed Jussi Kivilinna
@ 2008-02-16 10:06 ` Jussi Kivilinna
2008-02-16 14:33 ` John W. Linville
0 siblings, 1 reply; 3+ messages in thread
From: Jussi Kivilinna @ 2008-02-16 10:06 UTC (permalink / raw)
To: linux-wireless; +Cc: linville
Hello,
Did I send this patch to right person/place, I hope this gets on 2.6.25.
- Jussi
On Wed, 2008-02-06 at 15:36 +0200, Jussi Kivilinna wrote:
> Enable workaround for poor link stalls by link quality instead of link
> speed. Using link speed caused workaround be active always on 802.11b
> networks which reduced performance and not even catch all stalls.
>
> Signed-off-by: Jussi Kivilinna <jussi.kivilinna@mbnet.fi>
> ---
>
> drivers/net/wireless/rndis_wlan.c | 14 +++++---------
> 1 files changed, 5 insertions(+), 9 deletions(-)
>
> diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
> index d3ecf89..8ce2ddf 100644
> --- a/drivers/net/wireless/rndis_wlan.c
> +++ b/drivers/net/wireless/rndis_wlan.c
> @@ -2300,7 +2300,7 @@ static void rndis_update_wireless_stats(struct work_struct *work)
> struct usbnet *usbdev = priv->usbdev;
> struct iw_statistics iwstats;
> __le32 rssi, tmp;
> - int len, ret, bitrate, j;
> + int len, ret, j;
> unsigned long flags;
> int update_jiffies = STATS_UPDATE_JIFFIES;
> void *buf;
> @@ -2352,14 +2352,10 @@ static void rndis_update_wireless_stats(struct work_struct *work)
> if (ret == 0)
> iwstats.discard.misc += le32_to_cpu(tmp);
>
> - /* Workaround transfer stalls on poor quality links. */
> - len = sizeof(tmp);
> - ret = rndis_query_oid(usbdev, OID_GEN_LINK_SPEED, &tmp, &len);
> - if (ret == 0) {
> - bitrate = le32_to_cpu(tmp) * 100;
> - if (bitrate > 11000000)
> - goto end;
> -
> + /* Workaround transfer stalls on poor quality links.
> + * TODO: find right way to fix these stalls (as stalls do not happen
> + * with ndiswrapper/windows driver). */
> + if (iwstats.qual.qual <= 25) {
> /* Decrease stats worker interval to catch stalls.
> * faster. Faster than 400-500ms causes packet loss,
> * Slower doesn't catch stalls fast enough.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] rndis_wlan: enable stall workaround by link quality instead of link speed
2008-02-16 10:06 ` Jussi Kivilinna
@ 2008-02-16 14:33 ` John W. Linville
0 siblings, 0 replies; 3+ messages in thread
From: John W. Linville @ 2008-02-16 14:33 UTC (permalink / raw)
To: Jussi Kivilinna; +Cc: linux-wireless
On Sat, Feb 16, 2008 at 12:06:16PM +0200, Jussi Kivilinna wrote:
> Did I send this patch to right person/place, I hope this gets on 2.6.25.
Sent upstream yesterday...
John
--
John W. Linville
linville@tuxdriver.com
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-02-16 15:09 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-02-06 13:36 [PATCH] rndis_wlan: enable stall workaround by link quality instead of link speed Jussi Kivilinna
2008-02-16 10:06 ` Jussi Kivilinna
2008-02-16 14:33 ` John W. Linville
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).