summaryrefslogtreecommitdiffstats
path: root/net/rxrpc/call_state.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/rxrpc/call_state.c')
-rw-r--r--net/rxrpc/call_state.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/rxrpc/call_state.c b/net/rxrpc/call_state.c
index 8fbb2112ed7e..649fb9e5d1af 100644
--- a/net/rxrpc/call_state.c
+++ b/net/rxrpc/call_state.c
@@ -19,7 +19,8 @@ bool __rxrpc_set_call_completion(struct rxrpc_call *call,
call->abort_code = abort_code;
call->error = error;
call->completion = compl;
- call->state = RXRPC_CALL_COMPLETE;
+ /* Allow reader of completion state to operate locklessly */
+ smp_store_release(&call->state, RXRPC_CALL_COMPLETE);
trace_rxrpc_call_complete(call);
wake_up(&call->waitq);
rxrpc_notify_socket(call);