]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
net: rds: clear i_sends on setup unwind
authorYuqi Xu <xuyq21@lenovo.com>
Fri, 29 May 2026 13:01:44 +0000 (21:01 +0800)
committerJakub Kicinski <kuba@kernel.org>
Tue, 2 Jun 2026 20:31:27 +0000 (13:31 -0700)
commit20cf0fb715c41111469577e85e35d15f099473e0
tree68ec8931d43208cba14843b43f41865ebf471fc2
parent16e408e607a94b646fb14a2a98422c6877ae4b3c
net: rds: clear i_sends on setup unwind

The RDS IB connection teardown path is written so it can run during
partial startup and on repeated shutdown attempts. It uses NULL
pointers to distinguish resources that are still owned from resources
that have already been released.

When rds_ib_setup_qp() fails after allocating i_sends but before
allocating i_recvs, the sends_out path frees i_sends without clearing
the pointer. A later shutdown pass can still treat that stale pointer
as a live send ring allocation.

Clear i_sends after vfree() in the error unwind path so the existing
shutdown logic continues to use the correct ownership state.

Fixes: 3b12f73a5c29 ("rds: ib: add error handle")
Cc: stable@kernel.org
Reported-by: Yuan Tan <yuantan098@gmail.com>
Reported-by: Zhengchuan Liang <zcliangcn@gmail.com>
Reported-by: Xin Liu <bird@lzu.edu.cn>
Signed-off-by: Yuqi Xu <xuyq21@lenovo.com>
Signed-off-by: Ren Wei <n05ec@lzu.edu.cn>
Reviewed-by: Allison Henderson <achender@kernel.org>
Link: https://patch.msgid.link/5a0f7624bb9845a7b67d26166a150b59e7f394ce.1779632468.git.xuyq21@lenovo.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
net/rds/ib_cm.c