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); }
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); }