diff --git a/net/core/xdp.c b/net/core/xdp.c
index c013b836006bd02e2fba2e1edea5a8f7e369bd8b..57285383ed00c9b3ab7616f4adddfca0d525f850 100644
--- a/net/core/xdp.c
+++ b/net/core/xdp.c
@@ -348,8 +348,7 @@ static void __xdp_return(void *data, struct xdp_mem_info *mem, bool napi_direct,
 		rcu_read_lock();
 		/* mem->id is valid, checked in xdp_rxq_info_reg_mem_model() */
 		xa = rhashtable_lookup(mem_id_ht, &mem->id, mem_id_rht_params);
-		if (!WARN_ON_ONCE(!xa))
-			xa->zc_alloc->free(xa->zc_alloc, handle);
+		xa->zc_alloc->free(xa->zc_alloc, handle);
 		rcu_read_unlock();
 	default:
 		/* Not possible, checked in xdp_rxq_info_reg_mem_model() */