On Thu, 27 Feb 2025 18:50:13 +0000 Joe Damato wrote:
> @@ -2870,9 +2883,15 @@ static void refill_work(struct work_struct *work)
>       for (i = 0; i < vi->curr_queue_pairs; i++) {
>               struct receive_queue *rq = &vi->rq[i];
>  
> +             rtnl_lock();
>               virtnet_napi_disable(rq);
> +             rtnl_unlock();
> +
>               still_empty = !try_fill_recv(vi, rq, GFP_KERNEL);
> +
> +             rtnl_lock();
>               virtnet_napi_enable(rq);
> +             rtnl_unlock();

Looks to me like refill_work is cancelled _sync while holding rtnl_lock
from the close path. I think this could deadlock?
-- 
pw-bot: cr

Reply via email to