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