• David Howells's avatar
    rxrpc: Fix apparent leak of rxrpc_local objects · 31f5f9a1
    David Howells authored
    rxrpc_local objects cannot be disposed of until all the connections that
    point to them have been RCU'd as a connection object holds refcount on the
    local endpoint it is communicating through.  Currently, this can cause an
    assertion failure to occur when a network namespace is destroyed as there's
    no check that the RCU destructors for the connections have been run before
    we start trying to destroy local endpoints.
    
    The kernel reports:
    
    	rxrpc: AF_RXRPC: Leaked local 0000000036a41bc1 {5}
    	------------[ cut here ]------------
    	kernel BUG at ../net/rxrpc/local_object.c:439!
    
    Fix this by keeping a count of the live connections and waiting for it to
    go to zero at the end of rxrpc_destroy_all_connections().
    
    Fixes: dee46364 ("rxrpc: Add RCU destruction for connections and calls")
    Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
    31f5f9a1
conn_object.c 12.6 KB