On 1/17/25 02:13, Jakub Kicinski wrote:
On Thu, 16 Jan 2025 15:16:59 -0800 David Wei wrote:
+static void io_close_queue(struct io_zcrx_ifq *ifq)
+{
+ struct net_device *netdev;
+ netdevice_tracker netdev_tracker;
+ struct pp_memory_provider_params p = {
+ .mp_ops = &io_uring_pp_zc_ops,
+ .mp_priv = ifq,
+ };
+
+ if (ifq->if_rxq == -1)
+ return;
+
+ spin_lock(&ifq->lock);
+ netdev = ifq->netdev;
+ netdev_tracker = ifq->netdev_tracker;
+ ifq->netdev = NULL;
+ spin_unlock(&ifq->lock);
+
+ if (netdev)
+ net_mp_close_rxq(netdev, ifq->if_rxq, &p);
+ ifq->if_rxq = -1;
+}
Did you mean to call netdev_put() somewhere here? :S
yeah, it's missed
--
Pavel Begunkov