Re: [PATCH net] rxrpc: Fix deadlock between call creation and sendmsg/recvmsg

From: David Miller
Date: Wed Mar 01 2017 - 12:51:36 EST


From: David Howells <dhowells@xxxxxxxxxx>
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@xxxxxxxxxx>
> Tested-by: Marc Dionne <marc.c.dionne@xxxxxxxxxxxx>

Applied, thanks David.