summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorOlympia Giannou <ogiannou@gmail.com>2020-09-11 14:17:24 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-10-07 08:00:06 +0200
commit22edeb67dfa89f1e1394dfbd8702b8dc3ae55062 (patch)
tree17e27bb971e025bca8bc1f9518388e7c84bd48cf /drivers
parent2f9f01cfc32b4f39891a88dd653c89cf7d7220f4 (diff)
downloadlinux-stable-22edeb67dfa89f1e1394dfbd8702b8dc3ae55062.tar.gz
linux-stable-22edeb67dfa89f1e1394dfbd8702b8dc3ae55062.tar.bz2
linux-stable-22edeb67dfa89f1e1394dfbd8702b8dc3ae55062.zip
rndis_host: increase sleep time in the query-response loop
[ Upstream commit 4202c9fdf03d79dedaa94b2c4cf574f25793d669 ] Some WinCE devices face connectivity issues via the NDIS interface. They fail to register, resulting in -110 timeout errors and failures during the probe procedure. In this kind of WinCE devices, the Windows-side ndis driver needs quite more time to be loaded and configured, so that the linux rndis host queries to them fail to be responded correctly on time. More specifically, when INIT is called on the WinCE side - no other requests can be served by the Client and this results in a failed QUERY afterwards. The increase of the waiting time on the side of the linux rndis host in the command-response loop leaves the INIT process to complete and respond to a QUERY, which comes afterwards. The WinCE devices with this special "feature" in their ndis driver are satisfied by this fix. Signed-off-by: Olympia Giannou <olympia.giannou@leica-geosystems.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/usb/rndis_host.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/usb/rndis_host.c b/drivers/net/usb/rndis_host.c
index b807c91abe1d..a22ae3137a3f 100644
--- a/drivers/net/usb/rndis_host.c
+++ b/drivers/net/usb/rndis_host.c
@@ -213,7 +213,7 @@ int rndis_command(struct usbnet *dev, struct rndis_msg_hdr *buf, int buflen)
dev_dbg(&info->control->dev,
"rndis response error, code %d\n", retval);
}
- msleep(20);
+ msleep(40);
}
dev_dbg(&info->control->dev, "rndis response timeout\n");
return -ETIMEDOUT;