Re: [PATCH net] rxrpc: Fix deadlock between call creation and sendmsg/recvmsg
From: David Miller <davem@davemloft.net>
Date: 2017-03-01 17:51:32
Also in:
lkml
From: David Miller <davem@davemloft.net>
Date: 2017-03-01 17:51:32
Also in:
lkml
From: David Howells <dhowells@redhat.com> Date: Mon, 27 Feb 2017 15:43:06 +0000
All the routines by which rxrpc is accessed from the outside are serialised by means of the socket lock (sendmsg, recvmsg, bind, rxrpc_kernel_begin_call(), ...) and this presents a problem:
...
Fix this by:
...
This patch has the nice bonus that calls on the same socket are now to some extent parallelisable. Note that we might want to move rxrpc_service_prealloc() calls out from the socket lock and give it its own lock, so that we don't hang progress in other calls because we're waiting for the allocator. We probably also want to avoid calling rxrpc_notify_socket() from within the socket lock (rxrpc_accept_call()). Signed-off-by: David Howells <dhowells@redhat.com> Tested-by: Marc Dionne <redacted>
Applied, thanks David.