diff --git a/net/xdp/xsk_buff_pool.c b/net/xdp/xsk_buff_pool.c index 9287eddec52c..be5b548ecce9 100644 --- a/net/xdp/xsk_buff_pool.c +++ b/net/xdp/xsk_buff_pool.c @@ -37,6 +37,9 @@ void xp_destroy(struct xsk_buff_pool *pool) if (!pool) return; + xskq_destroy(pool->fq); + xskq_destroy(pool->cq); + kvfree(pool->heads); kvfree(pool); } @@ -234,16 +237,6 @@ static void xp_release_deferred(struct work_struct *work) xp_clear_dev(pool); rtnl_unlock(); - if (pool->fq) { - xskq_destroy(pool->fq); - pool->fq = NULL; - } - - if (pool->cq) { - xskq_destroy(pool->cq); - pool->cq = NULL; - } - xdp_put_umem(pool->umem, false); xp_destroy(pool); }