diff options
author | David Howells <dhowells@redhat.com> | 2016-09-07 15:45:26 +0200 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2016-09-07 16:30:22 +0200 |
commit | f4fdb3525b247e1b4f9cc563641494c96c80f91a (patch) | |
tree | 1a8c55630fae2e945ca87f5960ffa5059a7b9dda /net/rxrpc/call_object.c | |
parent | rxrpc: Improve the call tracking tracepoint (diff) | |
download | linux-f4fdb3525b247e1b4f9cc563641494c96c80f91a.tar.xz linux-f4fdb3525b247e1b4f9cc563641494c96c80f91a.zip |
rxrpc: Use call->peer rather than call->conn->params.peer
Use call->peer rather than call->conn->params.peer to avoid the possibility
of call->conn being NULL and, whilst we're at it, check it for NULL before we
access it.
Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'net/rxrpc/call_object.c')
-rw-r--r-- | net/rxrpc/call_object.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/net/rxrpc/call_object.c b/net/rxrpc/call_object.c index 3166b5222435..060ddc32a85e 100644 --- a/net/rxrpc/call_object.c +++ b/net/rxrpc/call_object.c @@ -514,9 +514,11 @@ void rxrpc_release_call(struct rxrpc_call *call) */ _debug("RELEASE CALL %p (%d CONN %p)", call, call->debug_id, conn); - spin_lock(&conn->params.peer->lock); - hlist_del_init(&call->error_link); - spin_unlock(&conn->params.peer->lock); + if (call->peer) { + spin_lock(&call->peer->lock); + hlist_del_init(&call->error_link); + spin_unlock(&call->peer->lock); + } write_lock_bh(&rx->call_lock); if (!list_empty(&call->accept_link)) { |