Deleted Added
full compact
29c29
< __FBSDID("$FreeBSD: head/sys/dev/cxgbe/t4_main.c 220643 2011-04-14 20:06:23Z np $");
---
> __FBSDID("$FreeBSD: head/sys/dev/cxgbe/t4_main.c 220649 2011-04-15 03:09:27Z np $");
1040a1041,1043
> struct sge_txq *txq;
> int i;
> struct mbuf *m;
1042c1045,1055
< device_printf(pi->dev, "%s unimplemented.\n", __func__);
---
> /* queues do not exist if !IFF_DRV_RUNNING. */
> if (ifp->if_drv_flags & IFF_DRV_RUNNING) {
> for_each_txq(pi, i, txq) {
> TXQ_LOCK(txq);
> m_freem(txq->m);
> while ((m = buf_ring_dequeue_sc(txq->eq.br)) != NULL)
> m_freem(m);
> TXQ_UNLOCK(txq);
> }
> }
> if_qflush(ifp);
2676,2677c2689,2693
< txq->eq.flags &= ~EQ_CRFLUSHED;
< txq_start(txq->ifp, txq);
---
> if (txq->eq.flags & EQ_CRFLUSHED) {
> txq->eq.flags &= ~EQ_CRFLUSHED;
> txq_start(txq->ifp, txq);
> } else
> wakeup_one(txq); /* txq is going away, wakeup free_txq */