[PATCH] RDMA/rtrs: server: Fix error handling in get_or_create_srv

From: Ma Ke

Date: Mon Nov 03 2025 - 21:19:35 EST


get_or_create_srv() fails to call put_device() after
device_initialize() when memory allocation fails. This could cause
reference count leaks during error handling, preventing proper device
cleanup and resulting in memory leaks.

Found by code review.

Cc: stable@xxxxxxxxxxxxxxx
Fixes: 9cb837480424 ("RDMA/rtrs: server: main functionality")
Signed-off-by: Ma Ke <make24@xxxxxxxxxxx>
---
drivers/infiniband/ulp/rtrs/rtrs-srv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/infiniband/ulp/rtrs/rtrs-srv.c b/drivers/infiniband/ulp/rtrs/rtrs-srv.c
index ef4abdea3c2d..9ecc6343455d 100644
--- a/drivers/infiniband/ulp/rtrs/rtrs-srv.c
+++ b/drivers/infiniband/ulp/rtrs/rtrs-srv.c
@@ -1450,7 +1450,7 @@ static struct rtrs_srv_sess *get_or_create_srv(struct rtrs_srv_ctx *ctx,
kfree(srv->chunks);

err_free_srv:
- kfree(srv);
+ put_device(&srv->dev);
return ERR_PTR(-ENOMEM);
}

--
2.17.1