From: Chuck Lever Date: Wed, 30 Oct 2024 20:11:30 +0000 (-0400) Subject: rpcrdma: Always release the rpcrdma_device's xa_array X-Git-Tag: microblaze-v6.16~733^2~1 X-Git-Url: http://git.monstr.eu/?a=commitdiff_plain;h=63a81588cd2025e75fbaf30b65930b76825c456f;p=linux-2.6-microblaze.git rpcrdma: Always release the rpcrdma_device's xa_array Dai pointed out that the xa_init_flags() in rpcrdma_add_one() needs to have a matching xa_destroy() in rpcrdma_remove_one() to release underlying memory that the xarray might have accrued during operation. Reported-by: Dai Ngo Fixes: 7e86845a0346 ("rpcrdma: Implement generic device removal") Signed-off-by: Chuck Lever --- diff --git a/net/sunrpc/xprtrdma/ib_client.c b/net/sunrpc/xprtrdma/ib_client.c index 8507cd4d8921..28c68b5f6823 100644 --- a/net/sunrpc/xprtrdma/ib_client.c +++ b/net/sunrpc/xprtrdma/ib_client.c @@ -153,6 +153,7 @@ static void rpcrdma_remove_one(struct ib_device *device, } trace_rpcrdma_client_remove_one_done(device); + xa_destroy(&rd->rd_xa); kfree(rd); }