Esempio n. 1
0
File: skbuff.c Progetto: Lyude/linux
/*
 * Note the addition of a ref on a socket buffer.
 */
void rxrpc_get_skb(struct sk_buff *skb, enum rxrpc_skb_trace op)
{
	const void *here = __builtin_return_address(0);
	int n = atomic_inc_return(select_skb_count(op));
	trace_rxrpc_skb(skb, op, refcount_read(&skb->users), n, here);
	skb_get(skb);
}
Esempio n. 2
0
File: skbuff.c Progetto: mhei/linux
/*
 * Note the re-emergence of a socket buffer from a queue or buffer.
 */
void rxrpc_see_skb(struct sk_buff *skb, enum rxrpc_skb_trace op)
{
    const void *here = __builtin_return_address(0);
    if (skb) {
        int n = atomic_read(select_skb_count(op));
        trace_rxrpc_skb(skb, op, atomic_read(&skb->users), n, here);
    }
}
Esempio n. 3
0
File: skbuff.c Progetto: Lyude/linux
/*
 * Clear a queue of socket buffers.
 */
void rxrpc_purge_queue(struct sk_buff_head *list)
{
	const void *here = __builtin_return_address(0);
	struct sk_buff *skb;
	while ((skb = skb_dequeue((list))) != NULL) {
		int n = atomic_dec_return(select_skb_count(rxrpc_skb_rx_purged));
		trace_rxrpc_skb(skb, rxrpc_skb_rx_purged,
				refcount_read(&skb->users), n, here);
		kfree_skb(skb);
	}
}
Esempio n. 4
0
File: skbuff.c Progetto: Lyude/linux
/*
 * Note the injected loss of a socket buffer.
 */
void rxrpc_lose_skb(struct sk_buff *skb, enum rxrpc_skb_trace op)
{
	const void *here = __builtin_return_address(0);
	if (skb) {
		int n;
		CHECK_SLAB_OKAY(&skb->users);
		n = atomic_dec_return(select_skb_count(op));
		trace_rxrpc_skb(skb, op, refcount_read(&skb->users), n, here);
		kfree_skb(skb);
	}
}