diff options
-rw-r--r-- | include/trace/events/rxrpc.h | 6 | ||||
-rw-r--r-- | net/rxrpc/peer_object.c | 11 |
2 files changed, 10 insertions, 7 deletions
diff --git a/include/trace/events/rxrpc.h b/include/trace/events/rxrpc.h index edc5c887a44c..45556fe771c3 100644 --- a/include/trace/events/rxrpc.h +++ b/include/trace/events/rxrpc.h | |||
@@ -519,10 +519,10 @@ TRACE_EVENT(rxrpc_local, | |||
519 | ); | 519 | ); |
520 | 520 | ||
521 | TRACE_EVENT(rxrpc_peer, | 521 | TRACE_EVENT(rxrpc_peer, |
522 | TP_PROTO(struct rxrpc_peer *peer, enum rxrpc_peer_trace op, | 522 | TP_PROTO(unsigned int peer_debug_id, enum rxrpc_peer_trace op, |
523 | int usage, const void *where), | 523 | int usage, const void *where), |
524 | 524 | ||
525 | TP_ARGS(peer, op, usage, where), | 525 | TP_ARGS(peer_debug_id, op, usage, where), |
526 | 526 | ||
527 | TP_STRUCT__entry( | 527 | TP_STRUCT__entry( |
528 | __field(unsigned int, peer ) | 528 | __field(unsigned int, peer ) |
@@ -532,7 +532,7 @@ TRACE_EVENT(rxrpc_peer, | |||
532 | ), | 532 | ), |
533 | 533 | ||
534 | TP_fast_assign( | 534 | TP_fast_assign( |
535 | __entry->peer = peer->debug_id; | 535 | __entry->peer = peer_debug_id; |
536 | __entry->op = op; | 536 | __entry->op = op; |
537 | __entry->usage = usage; | 537 | __entry->usage = usage; |
538 | __entry->where = where; | 538 | __entry->where = where; |
diff --git a/net/rxrpc/peer_object.c b/net/rxrpc/peer_object.c index 9c3ac96f71cb..b700b7ecaa3d 100644 --- a/net/rxrpc/peer_object.c +++ b/net/rxrpc/peer_object.c | |||
@@ -382,7 +382,7 @@ struct rxrpc_peer *rxrpc_get_peer(struct rxrpc_peer *peer) | |||
382 | int n; | 382 | int n; |
383 | 383 | ||
384 | n = atomic_inc_return(&peer->usage); | 384 | n = atomic_inc_return(&peer->usage); |
385 | trace_rxrpc_peer(peer, rxrpc_peer_got, n, here); | 385 | trace_rxrpc_peer(peer->debug_id, rxrpc_peer_got, n, here); |
386 | return peer; | 386 | return peer; |
387 | } | 387 | } |
388 | 388 | ||
@@ -396,7 +396,7 @@ struct rxrpc_peer *rxrpc_get_peer_maybe(struct rxrpc_peer *peer) | |||
396 | if (peer) { | 396 | if (peer) { |
397 | int n = atomic_fetch_add_unless(&peer->usage, 1, 0); | 397 | int n = atomic_fetch_add_unless(&peer->usage, 1, 0); |
398 | if (n > 0) | 398 | if (n > 0) |
399 | trace_rxrpc_peer(peer, rxrpc_peer_got, n + 1, here); | 399 | trace_rxrpc_peer(peer->debug_id, rxrpc_peer_got, n + 1, here); |
400 | else | 400 | else |
401 | peer = NULL; | 401 | peer = NULL; |
402 | } | 402 | } |
@@ -426,11 +426,13 @@ static void __rxrpc_put_peer(struct rxrpc_peer *peer) | |||
426 | void rxrpc_put_peer(struct rxrpc_peer *peer) | 426 | void rxrpc_put_peer(struct rxrpc_peer *peer) |
427 | { | 427 | { |
428 | const void *here = __builtin_return_address(0); | 428 | const void *here = __builtin_return_address(0); |
429 | unsigned int debug_id; | ||
429 | int n; | 430 | int n; |
430 | 431 | ||
431 | if (peer) { | 432 | if (peer) { |
433 | debug_id = peer->debug_id; | ||
432 | n = atomic_dec_return(&peer->usage); | 434 | n = atomic_dec_return(&peer->usage); |
433 | trace_rxrpc_peer(peer, rxrpc_peer_put, n, here); | 435 | trace_rxrpc_peer(debug_id, rxrpc_peer_put, n, here); |
434 | if (n == 0) | 436 | if (n == 0) |
435 | __rxrpc_put_peer(peer); | 437 | __rxrpc_put_peer(peer); |
436 | } | 438 | } |
@@ -443,10 +445,11 @@ void rxrpc_put_peer(struct rxrpc_peer *peer) | |||
443 | void rxrpc_put_peer_locked(struct rxrpc_peer *peer) | 445 | void rxrpc_put_peer_locked(struct rxrpc_peer *peer) |
444 | { | 446 | { |
445 | const void *here = __builtin_return_address(0); | 447 | const void *here = __builtin_return_address(0); |
448 | unsigned int debug_id = peer->debug_id; | ||
446 | int n; | 449 | int n; |
447 | 450 | ||
448 | n = atomic_dec_return(&peer->usage); | 451 | n = atomic_dec_return(&peer->usage); |
449 | trace_rxrpc_peer(peer, rxrpc_peer_put, n, here); | 452 | trace_rxrpc_peer(debug_id, rxrpc_peer_put, n, here); |
450 | if (n == 0) { | 453 | if (n == 0) { |
451 | hash_del_rcu(&peer->hash_link); | 454 | hash_del_rcu(&peer->hash_link); |
452 | list_del_init(&peer->keepalive_link); | 455 | list_del_init(&peer->keepalive_link); |