linux/net/rxrpc
David Howells d41b3f5b96 rxrpc: Wrap accesses to get call state to put the barrier in one place
Wrap accesses to get the state of a call from outside of the I/O thread in
a single place so that the barrier needed to order wrt the error code and
abort code is in just that place.

Also use a barrier when setting the call state and again when reading the
call state such that the auxiliary completion info (error code, abort code)
can be read without taking a read lock on the call state lock.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
2023-01-06 09:43:32 +00:00
..
af_rxrpc.c rxrpc: Wrap accesses to get call state to put the barrier in one place 2023-01-06 09:43:32 +00:00
ar-internal.h rxrpc: Wrap accesses to get call state to put the barrier in one place 2023-01-06 09:43:32 +00:00
call_accept.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
call_event.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
call_object.c rxrpc: Set up a connection bundle from a call, not rxrpc_conn_parameters 2023-01-06 09:43:32 +00:00
call_state.c rxrpc: Wrap accesses to get call state to put the barrier in one place 2023-01-06 09:43:32 +00:00
conn_client.c rxrpc: Set up a connection bundle from a call, not rxrpc_conn_parameters 2023-01-06 09:43:32 +00:00
conn_event.c rxrpc: Offload the completion of service conn security to the I/O thread 2023-01-06 09:43:32 +00:00
conn_object.c rxrpc: Set up a connection bundle from a call, not rxrpc_conn_parameters 2023-01-06 09:43:32 +00:00
conn_service.c rxrpc: Remove the _bh annotation from all the spinlocks 2022-12-01 13:36:42 +00:00
input.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
insecure.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
io_thread.c rxrpc: Offload the completion of service conn security to the I/O thread 2023-01-06 09:43:32 +00:00
Kconfig rxrpc: Implement an in-kernel rxperf server for testing purposes 2022-12-01 13:36:37 +00:00
key.c rxrpc: Drop rxrpc_conn_parameters from rxrpc_connection and rxrpc_bundle 2022-12-01 13:36:38 +00:00
local_event.c rxrpc: Make the I/O thread take over the call and local processor work 2022-12-01 13:36:42 +00:00
local_object.c rxrpc: Make the set of connection IDs per local endpoint 2023-01-06 09:43:32 +00:00
Makefile rxrpc: Split out the call state changing functions into their own file 2023-01-06 09:43:32 +00:00
misc.c rxrpc: Get rid of the Rx ring 2022-11-08 16:42:28 +00:00
net_ns.c rxrpc: Don't hold a ref for connection workqueue 2022-12-01 13:36:40 +00:00
output.c rxrpc: Clean up connection abort 2023-01-06 09:43:32 +00:00
peer_event.c rxrpc: Fix locking issues in rxrpc_put_peer_locked() 2022-12-19 09:51:31 +00:00
peer_object.c rxrpc: Stash the network namespace pointer in rxrpc_local 2023-01-06 09:43:31 +00:00
proc.c rxrpc: Clean up connection abort 2023-01-06 09:43:32 +00:00
protocol.h rxrpc: Clone received jumbo subpackets and queue separately 2022-11-08 16:42:28 +00:00
recvmsg.c rxrpc: Wrap accesses to get call state to put the barrier in one place 2023-01-06 09:43:32 +00:00
rtt.c
rxkad.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
rxperf.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
security.c rxrpc: Tidy up abort generation infrastructure 2023-01-06 09:43:32 +00:00
sendmsg.c rxrpc: Wrap accesses to get call state to put the barrier in one place 2023-01-06 09:43:32 +00:00
server_key.c rxrpc: Implement an in-kernel rxperf server for testing purposes 2022-12-01 13:36:37 +00:00
skbuff.c rxrpc: trace: Don't use __builtin_return_address for sk_buff tracing 2022-12-01 13:36:39 +00:00
sysctl.c rxrpc: Get rid of the Rx ring 2022-11-08 16:42:28 +00:00
txbuf.c rxrpc: Transmit ACKs at the point of generation 2022-12-01 13:36:43 +00:00
utils.c