Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Several cases of overlapping changes which were for the most part trivially resolvable. Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
@@ -217,7 +217,7 @@ struct rxrpc_peer *rxrpc_alloc_peer(struct rxrpc_local *local, gfp_t gfp)
|
||||
peer = kzalloc(sizeof(struct rxrpc_peer), gfp);
|
||||
if (peer) {
|
||||
atomic_set(&peer->usage, 1);
|
||||
peer->local = local;
|
||||
peer->local = rxrpc_get_local(local);
|
||||
INIT_HLIST_HEAD(&peer->error_targets);
|
||||
peer->service_conns = RB_ROOT;
|
||||
seqlock_init(&peer->service_conn_lock);
|
||||
@@ -231,7 +231,7 @@ struct rxrpc_peer *rxrpc_alloc_peer(struct rxrpc_local *local, gfp_t gfp)
|
||||
peer->cong_cwnd = 3;
|
||||
else
|
||||
peer->cong_cwnd = 4;
|
||||
trace_rxrpc_peer(peer, rxrpc_peer_new, 1, here);
|
||||
trace_rxrpc_peer(peer->debug_id, rxrpc_peer_new, 1, here);
|
||||
}
|
||||
|
||||
_leave(" = %p", peer);
|
||||
@@ -309,7 +309,6 @@ void rxrpc_new_incoming_peer(struct rxrpc_sock *rx, struct rxrpc_local *local,
|
||||
unsigned long hash_key;
|
||||
|
||||
hash_key = rxrpc_peer_hash_key(local, &peer->srx);
|
||||
peer->local = local;
|
||||
rxrpc_init_peer(rx, peer, hash_key);
|
||||
|
||||
spin_lock(&rxnet->peer_hash_lock);
|
||||
@@ -384,7 +383,7 @@ struct rxrpc_peer *rxrpc_get_peer(struct rxrpc_peer *peer)
|
||||
int n;
|
||||
|
||||
n = atomic_inc_return(&peer->usage);
|
||||
trace_rxrpc_peer(peer, rxrpc_peer_got, n, here);
|
||||
trace_rxrpc_peer(peer->debug_id, rxrpc_peer_got, n, here);
|
||||
return peer;
|
||||
}
|
||||
|
||||
@@ -398,7 +397,7 @@ struct rxrpc_peer *rxrpc_get_peer_maybe(struct rxrpc_peer *peer)
|
||||
if (peer) {
|
||||
int n = atomic_fetch_add_unless(&peer->usage, 1, 0);
|
||||
if (n > 0)
|
||||
trace_rxrpc_peer(peer, rxrpc_peer_got, n + 1, here);
|
||||
trace_rxrpc_peer(peer->debug_id, rxrpc_peer_got, n + 1, here);
|
||||
else
|
||||
peer = NULL;
|
||||
}
|
||||
@@ -419,6 +418,7 @@ static void __rxrpc_put_peer(struct rxrpc_peer *peer)
|
||||
list_del_init(&peer->keepalive_link);
|
||||
spin_unlock_bh(&rxnet->peer_hash_lock);
|
||||
|
||||
rxrpc_put_local(peer->local);
|
||||
kfree_rcu(peer, rcu);
|
||||
}
|
||||
|
||||
@@ -428,11 +428,13 @@ static void __rxrpc_put_peer(struct rxrpc_peer *peer)
|
||||
void rxrpc_put_peer(struct rxrpc_peer *peer)
|
||||
{
|
||||
const void *here = __builtin_return_address(0);
|
||||
unsigned int debug_id;
|
||||
int n;
|
||||
|
||||
if (peer) {
|
||||
debug_id = peer->debug_id;
|
||||
n = atomic_dec_return(&peer->usage);
|
||||
trace_rxrpc_peer(peer, rxrpc_peer_put, n, here);
|
||||
trace_rxrpc_peer(debug_id, rxrpc_peer_put, n, here);
|
||||
if (n == 0)
|
||||
__rxrpc_put_peer(peer);
|
||||
}
|
||||
@@ -445,13 +447,15 @@ void rxrpc_put_peer(struct rxrpc_peer *peer)
|
||||
void rxrpc_put_peer_locked(struct rxrpc_peer *peer)
|
||||
{
|
||||
const void *here = __builtin_return_address(0);
|
||||
unsigned int debug_id = peer->debug_id;
|
||||
int n;
|
||||
|
||||
n = atomic_dec_return(&peer->usage);
|
||||
trace_rxrpc_peer(peer, rxrpc_peer_put, n, here);
|
||||
trace_rxrpc_peer(debug_id, rxrpc_peer_put, n, here);
|
||||
if (n == 0) {
|
||||
hash_del_rcu(&peer->hash_link);
|
||||
list_del_init(&peer->keepalive_link);
|
||||
rxrpc_put_local(peer->local);
|
||||
kfree_rcu(peer, rcu);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user