summaryrefslogtreecommitdiff
path: root/drivers/staging/rtl8712/usb_ops_linux.c
diff options
context:
space:
mode:
authorHemmo Nieminen <hemmo.nieminen@iki.fi>2015-12-04 01:11:32 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-02-08 06:52:30 +0300
commit39e9526cec50358725d6f68f271b35c041986800 (patch)
tree32d75ee059a0355243a9517afe86881525781e4f /drivers/staging/rtl8712/usb_ops_linux.c
parent549d33d278674d317115b4364b570506c4463aa3 (diff)
downloadlinux-39e9526cec50358725d6f68f271b35c041986800.tar.xz
staging: rtl8712: Improve suspend/resume functionality.
Cancel pending URBs during suspend operation to avoid receiving ESHUTDOWN in read/write completion callbacks while the device is suspended. Receiving ESHUTDOWN in read/write completion callbacks will cause the driver to enter a non-functioning "stopped" state from which the driver is unable to recover without reloading the module. Signed-off-by: Hemmo Nieminen <hemmo.nieminen@iki.fi> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/rtl8712/usb_ops_linux.c')
-rw-r--r--drivers/staging/rtl8712/usb_ops_linux.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c
index 489a9e6d52fc..e77be2af62fa 100644
--- a/drivers/staging/rtl8712/usb_ops_linux.c
+++ b/drivers/staging/rtl8712/usb_ops_linux.c
@@ -228,11 +228,14 @@ static void r8712_usb_read_port_complete(struct urb *purb)
}
} else {
switch (purb->status) {
+ case -ENOENT:
+ if (padapter->bSuspended)
+ break;
+ /* Fall through. */
case -EINVAL:
case -EPIPE:
case -ENODEV:
case -ESHUTDOWN:
- case -ENOENT:
padapter->bDriverStopped = true;
break;
case -EPROTO: