/* Called from net/core when new frame is available.  */
static netdev_tx_t stir_hard_xmit(struct sk_buff *skb, struct net_device *netdev)
/* Called from net/core when new frame is available.  */
static netdev_tx_t stir_hard_xmit(struct sk_buff *skb, struct net_device *netdev)
{
	struct stir_cb *stir = netdev_priv(netdev);
	netif_stop_queue(netdev);
	SKB_LINEAR_ASSERT(skb);
	skb = xchg(&stir->tx_pending, skb);
        wake_up_process(stir->thread);
	if (unlikely(skb)) {
		WARN_ON(1);
		dev_kfree_skb(skb);
	}
	return NETDEV_TX_OK;
}