Re: [PATCH net-next v5 3/4] virtio-net: Map NAPIs to queues

From: Jakub Kicinski
Date: Fri Feb 28 2025 - 21:28:12 EST


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