提交 a97b1f3d 编写于 作者: J Jussi Kivilinna 提交者: John W. Linville

rndis_wlan: enable stall workaround by link quality instead of link speed

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: NJussi Kivilinna <jussi.kivilinna@mbnet.fi>
Signed-off-by: NJohn W. Linville <linville@tuxdriver.com>
上级 281c56dd
...@@ -2300,7 +2300,7 @@ static void rndis_update_wireless_stats(struct work_struct *work) ...@@ -2300,7 +2300,7 @@ static void rndis_update_wireless_stats(struct work_struct *work)
struct usbnet *usbdev = priv->usbdev; struct usbnet *usbdev = priv->usbdev;
struct iw_statistics iwstats; struct iw_statistics iwstats;
__le32 rssi, tmp; __le32 rssi, tmp;
int len, ret, bitrate, j; int len, ret, j;
unsigned long flags; unsigned long flags;
int update_jiffies = STATS_UPDATE_JIFFIES; int update_jiffies = STATS_UPDATE_JIFFIES;
void *buf; void *buf;
...@@ -2352,14 +2352,10 @@ static void rndis_update_wireless_stats(struct work_struct *work) ...@@ -2352,14 +2352,10 @@ static void rndis_update_wireless_stats(struct work_struct *work)
if (ret == 0) if (ret == 0)
iwstats.discard.misc += le32_to_cpu(tmp); iwstats.discard.misc += le32_to_cpu(tmp);
/* Workaround transfer stalls on poor quality links. */ /* Workaround transfer stalls on poor quality links.
len = sizeof(tmp); * TODO: find right way to fix these stalls (as stalls do not happen
ret = rndis_query_oid(usbdev, OID_GEN_LINK_SPEED, &tmp, &len); * with ndiswrapper/windows driver). */
if (ret == 0) { if (iwstats.qual.qual <= 25) {
bitrate = le32_to_cpu(tmp) * 100;
if (bitrate > 11000000)
goto end;
/* Decrease stats worker interval to catch stalls. /* Decrease stats worker interval to catch stalls.
* faster. Faster than 400-500ms causes packet loss, * faster. Faster than 400-500ms causes packet loss,
* Slower doesn't catch stalls fast enough. * Slower doesn't catch stalls fast enough.
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册