android_kernel_motorola_sm6225/net/rxrpc
David Howells 72d778f688 rxrpc: Fix missing unlock in rxrpc_do_sendmsg()
[ Upstream commit 4feb2c44629e6f9b459b41a5a60491069d346a95 ]

One of the error paths in rxrpc_do_sendmsg() doesn't unlock the call mutex
before returning.  Fix it to do this.

Note that this still doesn't get rid of the checker warning:

   ../net/rxrpc/sendmsg.c:617:5: warning: context imbalance in 'rxrpc_do_sendmsg' - wrong count at exit

I think the interplay between the socket lock and the call's user_mutex may
be too complicated for checker to analyse, especially as
rxrpc_new_client_call_for_sendmsg(), which it calls, returns with the
call's user_mutex if successful but unconditionally drops the socket lock.

Fixes: e754eba685 ("rxrpc: Provide a cmsg to specify the amount of Tx data for a call")
Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-01-18 11:30:33 +01:00
..
af_rxrpc.c rxrpc: Fix deadlock around release of dst cached on udp tunnel 2021-02-10 09:21:06 +01:00
ar-internal.h rxrpc: Fix NULL pointer deref due to call->conn being cleared on disconnect 2020-02-11 04:33:54 -08:00
call_accept.c rxrpc: Fix memory leak in rxrpc_lookup_local 2021-02-03 23:23:26 +01:00
call_event.c rxrpc: Don't try to resend the request if we're receiving the reply 2022-06-14 16:59:23 +02:00
call_object.c rxrpc: Fix race between recvmsg and sendmsg on immediate call failure 2020-08-11 15:32:35 +02:00
conn_client.c rxrpc: Fix NULL pointer deref due to call->conn being cleared on disconnect 2020-02-11 04:33:54 -08:00
conn_event.c rxrpc: Fix some missing _bh annotations on locking conn->state_lock 2020-10-14 10:31:26 +02:00
conn_object.c rxrpc: Fix race between recvmsg and sendmsg on immediate call failure 2020-08-11 15:32:35 +02:00
conn_service.c rxrpc: Fix trace-after-put looking at the put connection record 2020-01-27 14:51:16 +01:00
input.c rxrpc: Call state should be read with READ_ONCE() under some circumstances 2021-01-23 15:49:56 +01:00
insecure.c
Kconfig
key.c rxrpc: Fix handling of an unsupported token type in rxrpc_read() 2021-01-23 15:49:56 +01:00
local_event.c rxrpc: Trace packet transmission 2018-08-01 13:28:23 +01:00
local_object.c rxrpc: Fix local destruction being repeated 2022-09-28 11:02:52 +02:00
Makefile
misc.c
net_ns.c rxrpc: Restore removed timer deletion 2022-04-27 13:39:42 +02:00
output.c rxrpc: Fix DATA Tx to disable nofrag for UDP on AF_INET6 socket 2020-05-02 17:25:51 +02:00
peer_event.c rxrpc: Fix missing active use pinning of rxrpc_local object 2020-02-11 04:33:54 -08:00
peer_object.c rxrpc: Fix rxrpc_local leak in rxrpc_lookup_peer() 2021-12-08 08:50:13 +01:00
proc.c rxrpc: Adjust /proc/net/rxrpc/calls to display call->debug_id not user_ID 2020-06-25 15:33:01 +02:00
protocol.h rxrpc: Improve up-front incoming packet checking 2018-09-28 10:32:31 +01:00
recvmsg.c rxrpc: Fix race between recvmsg and sendmsg on immediate call failure 2020-08-11 15:32:35 +02:00
rxkad.c rxrpc: Fix a memory leak in rxkad_verify_response() 2020-05-27 17:37:44 +02:00
security.c
sendmsg.c rxrpc: Fix missing unlock in rxrpc_do_sendmsg() 2023-01-18 11:30:33 +01:00
skbuff.c
sysctl.c rxrpc: Fix listen() setting the bar too high for the prealloc rings 2022-06-14 16:59:23 +02:00
utils.c