On 02/16/2016 03:20 PM, Hemmo Nieminen wrote:
Fix a driver hang caused by earlier suspend/resume cycles. By handling a
ENODEV error during suspend as a real error we eventually end up stopping
the whole driver.
Fix this by handling the ENODEV error (during suspend) essentially by
retrying.
Signed-off-by: Hemmo Nieminen <hemmo.niemi...@iki.fi>
---
drivers/staging/rtl8712/usb_ops_linux.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
Looks good.
Acked-by: Larry Finger <Larry.Finger.net>
diff --git a/drivers/staging/rtl8712/usb_ops_linux.c
b/drivers/staging/rtl8712/usb_ops_linux.c
index e77be2a..03aac59 100644
--- a/drivers/staging/rtl8712/usb_ops_linux.c
+++ b/drivers/staging/rtl8712/usb_ops_linux.c
@@ -228,16 +228,19 @@ 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:
padapter->bDriverStopped = true;
break;
+ case -ENOENT:
+ if (!padapter->bSuspended)
+ {
+ padapter->bDriverStopped = true;
+ break;
+ }
+ /* Fall through. */
case -EPROTO:
precvbuf->reuse = true;
r8712_read_port(padapter, precvpriv->ff_hwaddr, 0,
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel