r8152: check RTL8152_UNPLUG and netif_running before autoresume
If the device is unplugged or !netif_running(), the workqueue doesn't need to wake the device, and could return directly. Signed-off-by: Hayes Wang <hayeswang@realtek.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
9451a11c18
commit
a1f83feecc
@ -2857,15 +2857,18 @@ static void rtl_work_func_t(struct work_struct *work)
|
||||
{
|
||||
struct r8152 *tp = container_of(work, struct r8152, schedule.work);
|
||||
|
||||
/* If the device is unplugged or !netif_running(), the workqueue
|
||||
* doesn't need to wake the device, and could return directly.
|
||||
*/
|
||||
if (test_bit(RTL8152_UNPLUG, &tp->flags) || !netif_running(tp->netdev))
|
||||
return;
|
||||
|
||||
if (usb_autopm_get_interface(tp->intf) < 0)
|
||||
return;
|
||||
|
||||
if (!test_bit(WORK_ENABLE, &tp->flags))
|
||||
goto out1;
|
||||
|
||||
if (test_bit(RTL8152_UNPLUG, &tp->flags))
|
||||
goto out1;
|
||||
|
||||
if (!mutex_trylock(&tp->control)) {
|
||||
schedule_delayed_work(&tp->schedule, 0);
|
||||
goto out1;
|
||||
|
Loading…
Reference in New Issue
Block a user