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

From: Ma Ke
Date: Sun Nov 09 2025 - 19:59:37 EST


After device_initialize() is called, use put_device() to release the
device according to kernel device management rules. While direct
kfree() might work in some cases, using put_device() ensures proper
device lifecycle management.

Found by code review.

Fixes: 9cb837480424 ("RDMA/rtrs: server: main functionality")
Signed-off-by: Ma Ke <make24@xxxxxxxxxxx>
---
Changes in v2:
- modified the patch according to suggestions;
- removed Cc label.
---
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