[PATCH net v2 0/2] rxrpc: Call state fixes

From: David Howells
Date: Tue Feb 04 2025 - 18:06:31 EST


Here some call state fixes for AF_RXRPC.

(1) Fix the state of a call to not treat the challenge-response cycle as
part of an incoming call's state set. The problem is that it makes
handling received of the final packet in the receive phase difficult
as that wants to change the call state - but security negotiations may
not yet be complete.

(2) Fix a race between the changing of the call state at the end of the
request reception phase of a service call, recvmsg() collecting the last
data and sendmsg() trying to send the reply before the I/O thread has
advanced the call state.

David

---

Changes
=======
ver #2)
- This was previously posted here[1] as patch 1, but I split out the broken
race fix, leaving the rest in the new patch 1 here. The race fix was
itself fixed and placed into the new patch 2.

The patches can be found here also:

http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-fixes

Link: https://lore.kernel.org/r/20250203110307.7265-2-dhowells@xxxxxxxxxx/ [1]

David Howells (2):
rxrpc: Fix call state set to not include the SERVER_SECURING state
rxrpc: Fix race in call state changing vs recvmsg()

net/rxrpc/ar-internal.h | 2 +-
net/rxrpc/call_object.c | 6 ++----
net/rxrpc/conn_event.c | 4 +---
net/rxrpc/input.c | 12 ++++++++++--
net/rxrpc/sendmsg.c | 2 +-
5 files changed, 15 insertions(+), 11 deletions(-)