diff options
Diffstat (limited to 'drivers/staging/rtl8712/usb_ops_linux.c')
-rw-r--r-- | drivers/staging/rtl8712/usb_ops_linux.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/drivers/staging/rtl8712/usb_ops_linux.c b/drivers/staging/rtl8712/usb_ops_linux.c index b796c6bb593..24e1ec5f006 100644 --- a/drivers/staging/rtl8712/usb_ops_linux.c +++ b/drivers/staging/rtl8712/usb_ops_linux.c @@ -334,17 +334,16 @@ void r8712_xmit_bh(void *priv) struct _adapter *padapter = (struct _adapter *)priv; struct xmit_priv *pxmitpriv = &padapter->xmitpriv; - while (1) { - if ((padapter->bDriverStopped == true) || - (padapter->bSurpriseRemoved == true)) { - printk(KERN_ERR "r8712u: xmit_bh => bDriverStopped" - " or bSurpriseRemoved\n"); - break; - } - ret = r8712_xmitframe_complete(padapter, pxmitpriv, NULL); - if (ret == false) - break; + if ((padapter->bDriverStopped == true) || + (padapter->bSurpriseRemoved == true)) { + printk(KERN_ERR "r8712u: xmit_bh => bDriverStopped" + " or bSurpriseRemoved\n"); + return; } + ret = r8712_xmitframe_complete(padapter, pxmitpriv, NULL); + if (ret == false) + return; + tasklet_hi_schedule(&pxmitpriv->xmit_tasklet); } static void usb_write_port_complete(struct urb *purb) |