Example #1
0
void
roq_eth_tx_ib_compl(struct ib_cq *cq, void *dev_ptr)
{
	struct net_device *ndev = dev_ptr;
	struct roq_eth_priv *priv = netdev_priv(ndev);

	if (poll_tx(priv))
		netif_wake_queue(ndev);
}
/**
 * Since CCAT doesn't support interrupts until now, we have to poll
 * some status bits to recognize things like link change etc.
 */
static enum hrtimer_restart poll_timer_callback(struct hrtimer *timer)
{
	struct ccat_eth_priv *const priv =
	    container_of(timer, struct ccat_eth_priv, poll_timer);

	poll_link(priv);
	poll_rx(priv);
	poll_tx(priv);
	hrtimer_forward_now(timer, POLL_TIME);
	return HRTIMER_RESTART;
}