summaryrefslogtreecommitdiff
path: root/net/rxrpc/call_object.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2022-10-10 12:55:24 +0300
committerDavid Howells <dhowells@redhat.com>2022-12-01 16:36:40 +0300
commit446b3e14525b477e441a6bb8ce56cea12512acc2 (patch)
tree50f27ca4bd24f79c2988009ad3c0c0a59835e21a /net/rxrpc/call_object.c
parenta275da62e8c111b897b9cb73eb91df2f4e475ca5 (diff)
downloadlinux-446b3e14525b477e441a6bb8ce56cea12512acc2.tar.xz
rxrpc: Move packet reception processing into I/O thread
Split the packet input handler to make the softirq side just dump the received packet into the local endpoint receive queue and then call the remainder of the input function from the I/O thread. Signed-off-by: David Howells <dhowells@redhat.com> cc: Marc Dionne <marc.dionne@auristor.com> cc: linux-afs@lists.infradead.org
Diffstat (limited to 'net/rxrpc/call_object.c')
-rw-r--r--net/rxrpc/call_object.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/net/rxrpc/call_object.c b/net/rxrpc/call_object.c
index 9cd7e0190ef4..57c8d4cc900a 100644
--- a/net/rxrpc/call_object.c
+++ b/net/rxrpc/call_object.c
@@ -632,7 +632,7 @@ void rxrpc_cleanup_call(struct rxrpc_call *call)
del_timer_sync(&call->timer);
cancel_work(&call->processor);
- if (in_softirq() || work_busy(&call->processor))
+ if (rcu_read_lock_held() || work_busy(&call->processor))
/* Can't use the rxrpc workqueue as we need to cancel/flush
* something that may be running/waiting there.
*/