linux/net/rxrpc
David Howells 78883793f8 rxrpc: Fix unexposed client conn release
If the last call on a client connection is release after the connection has
had a bunch of calls allocated but before any DATA packets are sent (so
that it's not yet marked RXRPC_CONN_EXPOSED), an assertion will happen in
rxrpc_disconnect_client_call().

	af_rxrpc: Assertion failed - 1(0x1) >= 2(0x2) is false
	------------[ cut here ]------------
	kernel BUG at ../net/rxrpc/conn_client.c:753!

This is because it's expecting the conn to have been exposed and to have 2
or more refs - but this isn't necessarily the case.

Simply remove the assertion.  This allows the conn to be moved into the
inactive state and deleted if it isn't resurrected before the final put is
called.

Signed-off-by: David Howells <dhowells@redhat.com>
2016-09-17 10:53:21 +01:00
..
af_rxrpc.c rxrpc: Make IPv6 support conditional on CONFIG_IPV6 2016-09-17 03:58:45 -04:00
ar-internal.h rxrpc: Correctly initialise, limit and transmit call->rx_winsize 2016-09-13 22:38:45 +01:00
call_accept.c rxrpc: Record calls that need to be accepted 2016-09-17 10:51:54 +01:00
call_event.c rxrpc: Remove some whitespace. 2016-09-17 10:50:15 +01:00
call_object.c rxrpc: Call rxrpc_release_call() on error in rxrpc_new_client_call() 2016-09-17 10:53:21 +01:00
conn_client.c rxrpc: Fix unexposed client conn release 2016-09-17 10:53:21 +01:00
conn_event.c rxrpc: Rewrite the data and ack handling code 2016-09-08 11:10:12 +01:00
conn_object.c rxrpc: Make IPv6 support conditional on CONFIG_IPV6 2016-09-17 03:58:45 -04:00
conn_service.c rxrpc: Rewrite the data and ack handling code 2016-09-08 11:10:12 +01:00
input.c rxrpc: Fix handling of the last packet in rxrpc_recvmsg_data() 2016-09-17 10:51:54 +01:00
insecure.c rxrpc: Rewrite the data and ack handling code 2016-09-08 11:10:12 +01:00
Kconfig rxrpc: Make IPv6 support conditional on CONFIG_IPV6 2016-09-17 03:58:45 -04:00
key.c rxrpc: Use structs to hold connection params and protocol info 2016-06-22 09:09:59 +01:00
local_event.c rxrpc: Use rxrpc_extract_addr_from_skb() rather than doing this manually 2016-09-13 23:09:13 +01:00
local_object.c rxrpc: Make IPv6 support conditional on CONFIG_IPV6 2016-09-17 03:58:45 -04:00
Makefile rxrpc: Split sendmsg from packet transmission code 2016-09-04 21:41:39 +01:00
misc.c rxrpc: Correctly initialise, limit and transmit call->rx_winsize 2016-09-13 22:38:45 +01:00
output.c rxrpc: Make IPv6 support conditional on CONFIG_IPV6 2016-09-17 03:58:45 -04:00
peer_event.c rxrpc: Make IPv6 support conditional on CONFIG_IPV6 2016-09-17 03:58:45 -04:00
peer_object.c rxrpc: Make IPv6 support conditional on CONFIG_IPV6 2016-09-17 03:58:45 -04:00
proc.c rxrpc: Add IPv6 support 2016-09-13 23:09:13 +01:00
recvmsg.c rxrpc: Fix handling of the last packet in rxrpc_recvmsg_data() 2016-09-17 10:51:54 +01:00
rxkad.c rxrpc: Rewrite the data and ack handling code 2016-09-08 11:10:12 +01:00
security.c rxrpc: Rewrite the data and ack handling code 2016-09-08 11:10:12 +01:00
sendmsg.c rxrpc: Rewrite the data and ack handling code 2016-09-08 11:10:12 +01:00
skbuff.c rxrpc: Rewrite the data and ack handling code 2016-09-08 11:10:12 +01:00
sysctl.c rxrpc: Correctly initialise, limit and transmit call->rx_winsize 2016-09-13 22:38:45 +01:00
utils.c rxrpc: Make IPv6 support conditional on CONFIG_IPV6 2016-09-17 03:58:45 -04:00