diff options
author | David Howells <dhowells@redhat.com> | 2018-03-30 16:05:17 -0400 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2018-03-30 16:05:17 -0400 |
commit | 88f2a8257c9aa7df957b1a79a104f348d60d8027 (patch) | |
tree | d2caa88668da0142f6f3b8478a0d17620240c765 /net/rxrpc/sendmsg.c | |
parent | edb63e2b271752a9424a3d33cfcd4f434a020f9b (diff) |
rxrpc: Fix checker warnings and errors
Fix various issues detected by checker.
Errors:
(*) rxrpc_discard_prealloc() should be using rcu_assign_pointer to set
call->socket.
Warnings:
(*) rxrpc_service_connection_reaper() should be passing NULL rather than 0 to
trace_rxrpc_conn() as the where argument.
(*) rxrpc_disconnect_client_call() should get its net pointer via the
call->conn rather than call->sock to avoid a warning about accessing
an RCU pointer without protection.
(*) Proc seq start/stop functions need annotation as they pass locks
between the functions.
False positives:
(*) Checker doesn't correctly handle of seq-retry lock context balance in
rxrpc_find_service_conn_rcu().
(*) Checker thinks execution may proceed past the BUG() in
rxrpc_publish_service_conn().
(*) Variable length array warnings from SKCIPHER_REQUEST_ON_STACK() in
rxkad.c.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/rxrpc/sendmsg.c')
-rw-r--r-- | net/rxrpc/sendmsg.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/rxrpc/sendmsg.c b/net/rxrpc/sendmsg.c index 783c777fc6e7..a62980a80151 100644 --- a/net/rxrpc/sendmsg.c +++ b/net/rxrpc/sendmsg.c | |||
@@ -556,6 +556,7 @@ static struct rxrpc_call * | |||
556 | rxrpc_new_client_call_for_sendmsg(struct rxrpc_sock *rx, struct msghdr *msg, | 556 | rxrpc_new_client_call_for_sendmsg(struct rxrpc_sock *rx, struct msghdr *msg, |
557 | struct rxrpc_send_params *p) | 557 | struct rxrpc_send_params *p) |
558 | __releases(&rx->sk.sk_lock.slock) | 558 | __releases(&rx->sk.sk_lock.slock) |
559 | __acquires(&call->user_mutex) | ||
559 | { | 560 | { |
560 | struct rxrpc_conn_parameters cp; | 561 | struct rxrpc_conn_parameters cp; |
561 | struct rxrpc_call *call; | 562 | struct rxrpc_call *call; |
@@ -596,6 +597,7 @@ rxrpc_new_client_call_for_sendmsg(struct rxrpc_sock *rx, struct msghdr *msg, | |||
596 | */ | 597 | */ |
597 | int rxrpc_do_sendmsg(struct rxrpc_sock *rx, struct msghdr *msg, size_t len) | 598 | int rxrpc_do_sendmsg(struct rxrpc_sock *rx, struct msghdr *msg, size_t len) |
598 | __releases(&rx->sk.sk_lock.slock) | 599 | __releases(&rx->sk.sk_lock.slock) |
600 | __releases(&call->user_mutex) | ||
599 | { | 601 | { |
600 | enum rxrpc_call_state state; | 602 | enum rxrpc_call_state state; |
601 | struct rxrpc_call *call; | 603 | struct rxrpc_call *call; |