Exemple #1
0
/*
 * put a packet up for transport-level abort
 */
void rxrpc_reject_packet(struct rxrpc_local *local, struct sk_buff *skb)
{
	CHECK_SLAB_OKAY(&local->usage);

	skb_queue_tail(&local->reject_queue, skb);
	rxrpc_queue_work(&local->processor);
}
Exemple #2
0
/*
 * 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);
	}
}
void rxrpc_reject_packet(struct rxrpc_local *local, struct sk_buff *skb)
{
	CHECK_SLAB_OKAY(&local->usage);

	if (!atomic_inc_not_zero(&local->usage)) {
		printk("resurrected on reject\n");
		BUG();
	}

	skb_queue_tail(&local->reject_queue, skb);
	rxrpc_queue_work(&local->rejecter);
}