mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-06 16:49:22 +00:00
staging: rtl8712: Improve suspend/resume functionality.
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.nieminen@iki.fi> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
f99ca86646
commit
b900d57937
1 changed files with 6 additions and 4 deletions
|
@ -228,16 +228,18 @@ static void r8712_usb_read_port_complete(struct urb *purb)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
switch (purb->status) {
|
switch (purb->status) {
|
||||||
case -ENOENT:
|
|
||||||
if (padapter->bSuspended)
|
|
||||||
break;
|
|
||||||
/* Fall through. */
|
|
||||||
case -EINVAL:
|
case -EINVAL:
|
||||||
case -EPIPE:
|
case -EPIPE:
|
||||||
case -ENODEV:
|
case -ENODEV:
|
||||||
case -ESHUTDOWN:
|
case -ESHUTDOWN:
|
||||||
padapter->bDriverStopped = true;
|
padapter->bDriverStopped = true;
|
||||||
break;
|
break;
|
||||||
|
case -ENOENT:
|
||||||
|
if (!padapter->bSuspended) {
|
||||||
|
padapter->bDriverStopped = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
/* Fall through. */
|
||||||
case -EPROTO:
|
case -EPROTO:
|
||||||
precvbuf->reuse = true;
|
precvbuf->reuse = true;
|
||||||
r8712_read_port(padapter, precvpriv->ff_hwaddr, 0,
|
r8712_read_port(padapter, precvpriv->ff_hwaddr, 0,
|
||||||
|
|
Loading…
Reference in a new issue