linux-stable/net/rds
Yewon Choi 52287ed416 rds: introduce acquire/release ordering in acquire/release_in_xmit()
[ Upstream commit 1422f28826 ]

acquire/release_in_xmit() work as bit lock in rds_send_xmit(), so they
are expected to ensure acquire/release memory ordering semantics.
However, test_and_set_bit/clear_bit() don't imply such semantics, on
top of this, following smp_mb__after_atomic() does not guarantee release
ordering (memory barrier actually should be placed before clear_bit()).

Instead, we use clear_bit_unlock/test_and_set_bit_lock() here.

Fixes: 0f4b1c7e89 ("rds: fix rds_send_xmit() serialization")
Fixes: 1f9ecd7eac ("RDS: Pass rds_conn_path to rds_send_xmit()")
Signed-off-by: Yewon Choi <woni9911@gmail.com>
Reviewed-by: Michal Kubiak <michal.kubiak@intel.com>
Link: https://lore.kernel.org/r/ZfQUxnNTO9AJmzwc@libra05
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-03-26 18:21:00 -04:00
..
af_rds.c net/rds: Fix UBSAN: array-index-out-of-bounds in rds_cmsg_recv 2024-01-31 16:17:04 -08:00
bind.c treewide: use get_random_{u8,u16}() when possible, part 2 2022-10-11 17:42:58 -06:00
cong.c
connection.c rds: memory leak in __rds_conn_create() 2021-12-14 12:51:52 +00:00
ib.c RDMA: Split kernel-only global device caps from uverbs device caps 2022-04-06 15:02:13 -03:00
ib.h
ib_cm.c
ib_frmr.c
ib_mr.h
ib_rdma.c
ib_recv.c rds: add missing barrier to release_refill 2022-08-12 10:46:01 +01:00
ib_ring.c
ib_send.c
ib_stats.c
ib_sysctl.c
info.c
info.h
Kconfig
loop.c
loop.h
Makefile
message.c rds: rds_rm_zerocopy_callback() correct order for list_add_tail() 2023-03-10 09:33:02 +01:00
page.c
rdma.c net/rds: fix WARNING in rds_conn_connect_if_down 2024-03-15 10:48:15 -04:00
rdma_transport.c net: rds: Fix possible NULL-pointer dereference 2023-10-06 14:56:41 +02:00
rdma_transport.h
rds.h
rds_single_path.h
recv.c
send.c rds: introduce acquire/release ordering in acquire/release_in_xmit() 2024-03-26 18:21:00 -04:00
stats.c
sysctl.c
tcp.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2022-10-03 17:44:18 -07:00
tcp.h net: rds: use maybe_get_net() when acquiring refcount on TCP sockets 2022-05-05 16:44:49 -07:00
tcp_connect.c net: prevent address rewrite in kernel_bind() 2023-10-19 23:08:50 +02:00
tcp_listen.c net: prevent address rewrite in kernel_bind() 2023-10-19 23:08:50 +02:00
tcp_recv.c
tcp_send.c
tcp_stats.c
threads.c
transport.c