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