Thread (5 messages) flat view 5 messages, 1 author, 7h ago
HOTtoday

[PATCH net-next 0/4] net/rds: Bug fix ports, part 2

From: Allison Henderson <achender@kernel.org>
Date: 2026-08-06 07:20:46
Also in: linux-rdma

Hi all,

This is the next batch of net/rds fixes ported from the Oracle UEK
kernel, following up on the first set now in net-next [1].  As
discussed on the previous series, these target net-next since the
bugs are pretty old and could probably use the longer cycle.

Patches 3 and 4 close a teardown race that UEK fixed after a long
tail of failover crashes: quiescing the transmit path by *sampling*
the RDS_IN_XMIT/RDS_RECV_REFILL bits clear instead of acquiring them
is a store-buffering pattern.  So on weakly ordered arches,
rds_send_xmit() can run concurrently with connection teardown
resetting the transmit state under it. Patch 3 makes
rds_conn_shutdown() take the bit locks.  Patch 4 does the same for
the only other rds_send_path_reset() call site in
rds_tcp_reset_callbacks().

Patches 1 and 2 are small initialization hardening ports from the
same UEK series. re-initialize rds_send_xmit()'s to_be_dropped
list on its restart path, and initialize i_conn_path in
rds_inc_init() so both inc init helpers leave an equivalent,
fully-initialized structure.  Neither has a known user-visible bug
upstream.

[PATCH net 1/4] net/rds: reinitialize to_be_dropped on rds_send_xmit() restart
  Port commit 7f52b9968d79 ("net/rds: rds_send_xmit should INIT_LIST_HEAD (&to_be_dropped) on restart")
  https://github.com/oracle/linux-uek/commit/7f52b9968d79 

[PATCH net 2/4] net/rds: initialize i_conn_path in rds_inc_init()
  Port commit 0ec6a520da4f ("rds: rds_inc_init() should initialize the inc->i_conn_path field")
  https://github.com/oracle/linux-uek/commit/0ec6a520da4f
 
[PATCH net 3/4] net/rds: acquire the fastpath locks in rds_conn_shutdown()
  Port commit 2b8aaa4f163b ("rds: Make sure transmit path and connection tear-down does not run concurrently")
  https://github.com/oracle/linux-uek/commit/2b8aaa4f163b 

[PATCH net 4/4] net/rds: acquire RDS_IN_XMIT in rds_tcp_reset_callbacks()
  Extend the last port to cover extra call sites in rds_tcp_reset_callbacks()

Questions and comments appreciated!

Thanks,
Allison

[1] https://lore.kernel.org/netdev/20260730041629.3512480-1-achender@kernel.org/ (local)

Allison Henderson (1):
  net/rds: acquire RDS_IN_XMIT in rds_tcp_reset_callbacks()

Håkon Bugge (1):
  net/rds: acquire the fastpath locks in rds_conn_shutdown()

Sharath Srinivasan (1):
  net/rds: reinitialize to_be_dropped on rds_send_xmit() restart

William Kucharski (1):
  net/rds: initialize i_conn_path in rds_inc_init()

 net/rds/connection.c | 22 ++++++++++++++++++++--
 net/rds/recv.c       |  1 +
 net/rds/send.c       |  6 ++++++
 net/rds/tcp.c        | 15 ++++++++++++++-
 4 files changed, 41 insertions(+), 3 deletions(-)


base-commit: b0057c68df711bf6a62033c072ac61c4f9d3cbc1
-- 
2.25.1
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help