Hi Eric,

> > The proper work around is to enclose the napi_schedule() in a
> > local_bh_enable()/local_bh_disable()  pair.

> Something like :
> --- a/drivers/net/usb/r8152.c
> +++ b/drivers/net/usb/r8152.c
> @@ -3703,8 +3703,10 @@ static int rtl8152_resume(struct usb_interface *intf)
>                       napi_enable(&tp->napi);
>                       clear_bit(SELECTIVE_SUSPEND, &tp->flags);
>                       smp_mb__after_atomic();
> +                     local_bh_disable();
>                       if (!list_empty(&tp->rx_done))
>                               napi_schedule(&tp->napi);
> +                     local_bh_enable();

Unfortunately this doesn't work. Code in r8152.c doesn't use 
local_bh_enable()/local_bh_disable(). I tried to lock it with 
spin_lock_bh()/spin_unlock_bh() and with mutex_lock()/mutex_unlock() but 
neither work.


Kind regards,
Petr

Reply via email to