]> git.baikalelectronics.ru Git - kernel.git/commit
rxrpc: Fix trace-after-put looking at the put call record
authorDavid Howells <dhowells@redhat.com>
Mon, 7 Oct 2019 09:58:29 +0000 (10:58 +0100)
committerDavid Howells <dhowells@redhat.com>
Mon, 7 Oct 2019 10:05:05 +0000 (11:05 +0100)
commit6ff4f81e30e754d5e03b9f12cdcc9b1a68b28e5c
tree6cc456254863837669a21dd40b25a11a735b56e1
parent9a3fe7b3909eb6d5daeb8d5ec9f1794042c24350
rxrpc: Fix trace-after-put looking at the put call record

rxrpc_put_call() calls trace_rxrpc_call() after it has done the decrement
of the refcount - which looks at the debug_id in the call record.  But
unless the refcount was reduced to zero, we no longer have the right to
look in the record and, indeed, it may be deleted by some other thread.

Fix this by getting the debug_id out before decrementing the refcount and
then passing that into the tracepoint.

Fixes: d77ae6d1959c ("rxrpc: Trace rxrpc_call usage")
Signed-off-by: David Howells <dhowells@redhat.com>
include/trace/events/rxrpc.h
net/rxrpc/call_accept.c
net/rxrpc/call_object.c