示例#1
0
static void ethertap_rx(struct sock *sk, int len)
{
	struct device *dev = tap_map[sk->protocol];
	struct sk_buff *skb;

	if (dev==NULL) {
		printk(KERN_CRIT "ethertap: bad unit!\n");
		skb_queue_purge(&sk->receive_queue);
		return;
	}

	if (ethertap_debug > 3)
		printk("%s: ethertap_rx()\n", dev->name);

	while ((skb = skb_dequeue(&sk->receive_queue)) != NULL)
		ethertap_rx_skb(skb, dev);
}
示例#2
0
static void ethertap_rx(struct sock *sk, int len)
{
	unsigned unit = sk->sk_protocol - NETLINK_TAPBASE; 
	struct net_device *dev;
	struct sk_buff *skb;

	if (unit >= max_taps || (dev = tap_map[unit]) == NULL) { 
		printk(KERN_CRIT "ethertap: bad unit %u!\n", unit);
		skb_queue_purge(&sk->sk_receive_queue);
		return;
	}

	if (ethertap_debug > 3)
		printk(KERN_DEBUG "%s: ethertap_rx()\n", dev->name);

	while ((skb = skb_dequeue(&sk->sk_receive_queue)) != NULL)
		ethertap_rx_skb(skb, dev);
}