diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2024-10-30 23:11:30 +0300 |
---|---|---|
committer | Chuck Lever <chuck.lever@oracle.com> | 2024-10-30 23:14:00 +0300 |
commit | 63a81588cd2025e75fbaf30b65930b76825c456f (patch) | |
tree | e3cde3c3eb3426867520ca25d4617f481d552e31 /net | |
parent | 8286f8b622990194207df9ab852e0f87c60d35e9 (diff) | |
download | linux-63a81588cd2025e75fbaf30b65930b76825c456f.tar.xz |
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 <dai.ngo@oracle.com>
Fixes: 7e86845a0346 ("rpcrdma: Implement generic device removal")
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'net')
-rw-r--r-- | net/sunrpc/xprtrdma/ib_client.c | 1 |
1 files changed, 1 insertions, 0 deletions
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); } |