summaryrefslogtreecommitdiffstats
path: root/net/rxrpc/call_object.c
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2016-09-07 15:45:26 +0200
committerDavid Howells <dhowells@redhat.com>2016-09-07 16:30:22 +0200
commitf4fdb3525b247e1b4f9cc563641494c96c80f91a (patch)
tree1a8c55630fae2e945ca87f5960ffa5059a7b9dda /net/rxrpc/call_object.c
parentrxrpc: Improve the call tracking tracepoint (diff)
downloadlinux-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 '')
-rw-r--r--net/rxrpc/call_object.c8
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)) {