From: David Howells Date: Mon, 8 Aug 2016 12:06:41 +0000 (+0100) Subject: rxrpc: Need to flag call as being released on connect failure X-Git-Tag: v4.9.8~1493^2~35^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=17b963e319449f709e78dc1ef445d797a13eecbc;p=platform%2Fkernel%2Flinux-rpi3.git rxrpc: Need to flag call as being released on connect failure If rxrpc_new_client_call() fails to make a connection, the call record that it allocated needs to be marked as RXRPC_CALL_RELEASED before it is passed to rxrpc_put_call() to indicate that it no longer has any attachment to the AF_RXRPC socket. Without this, an assertion failure may occur at: net/rxrpc/call_object:635 Signed-off-by: David Howells --- diff --git a/net/rxrpc/call_object.c b/net/rxrpc/call_object.c index e8c953c..ae057e0 100644 --- a/net/rxrpc/call_object.c +++ b/net/rxrpc/call_object.c @@ -275,6 +275,7 @@ error: list_del_init(&call->link); write_unlock_bh(&rxrpc_call_lock); + set_bit(RXRPC_CALL_RELEASED, &call->flags); call->state = RXRPC_CALL_DEAD; rxrpc_put_call(call); _leave(" = %d", ret); @@ -287,6 +288,7 @@ error: */ found_user_ID_now_present: write_unlock(&rx->call_lock); + set_bit(RXRPC_CALL_RELEASED, &call->flags); call->state = RXRPC_CALL_DEAD; rxrpc_put_call(call); _leave(" = -EEXIST [%p]", call);