static void x25_asy_data_transmit(void *token, struct sk_buff *skb) { struct x25_asy *sl=token; if (netif_queue_stopped(sl->dev)) { printk(KERN_ERR "x25_asy: tbusy drop\n"); kfree_skb(skb); return; } /* We were not busy, so we are now... :-) */ if (skb != NULL) { x25_asy_lock(sl); sl->tx_bytes+=skb->len; x25_asy_encaps(sl, skb->data, skb->len); dev_kfree_skb(skb); } }
static void x25_asy_data_transmit(struct net_device *dev, struct sk_buff *skb) { struct x25_asy *sl = netdev_priv(dev); spin_lock(&sl->lock); if (netif_queue_stopped(sl->dev) || sl->tty == NULL) { spin_unlock(&sl->lock); netdev_err(dev, "tbusy drop\n"); kfree_skb(skb); return; } /* We were not busy, so we are now... :-) */ if (skb != NULL) { x25_asy_lock(sl); dev->stats.tx_bytes += skb->len; x25_asy_encaps(sl, skb->data, skb->len); dev_kfree_skb(skb); } spin_unlock(&sl->lock); }