By the time io_zcrx_ifq_free() is called the interface queue should already be closed, so io_close_queue() will be a no-op. Remove the call and add a couple of warnings. Signed-off-by: Pavel Begunkov --- io_uring/zcrx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c index 4bf6635c222f..f4440881960f 100644 --- a/io_uring/zcrx.c +++ b/io_uring/zcrx.c @@ -575,7 +575,10 @@ static void io_close_queue(struct io_zcrx_ifq *ifq) static void io_zcrx_ifq_free(struct io_zcrx_ifq *ifq) { - io_close_queue(ifq); + if (WARN_ON_ONCE(ifq->if_rxq != -1)) + return; + if (WARN_ON_ONCE(ifq->netdev != NULL)) + return; if (ifq->area) io_zcrx_free_area(ifq, ifq->area); -- 2.54.0