summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/trace/events/rxrpc.h6
-rw-r--r--net/rxrpc/peer_object.c11
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
521TRACE_EVENT(rxrpc_peer, 521TRACE_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)
426void rxrpc_put_peer(struct rxrpc_peer *peer) 426void 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)
443void rxrpc_put_peer_locked(struct rxrpc_peer *peer) 445void 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);