Index: sys/dev/ixgbe/ixgbe.c =================================================================== --- ixgbe.c (revision 270665) +++ ixgbe.c (working copy) @@ -1543,7 +1543,7 @@ IXGBE_TX_LOCK(txr); ixgbe_txeof(txr); #ifdef IXGBE_LEGACY_TX - if (!IFQ_DRV_IS_EMPTY(ifp->if_snd)) + if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd)) ixgbe_start_locked(txr, ifp); #else if (!drbr_empty(ifp, txr->br)) @@ -2091,7 +2091,11 @@ (paused == 0)) ++hung; else if (txr->queue_status == IXGBE_QUEUE_WORKING) +#ifndef IXGBE_LEGACY_TX taskqueue_enqueue(que->tq, &txr->txq_task); +#else + taskqueue_enqueue(que->tq, &que->que_task); +#endif } /* Only truely watchdog if all queues show hung */ if (hung == adapter->num_queues) @@ -3327,10 +3331,6 @@ tx_buffer->map = NULL; } } -#ifdef IXGBE_LEGACY_TX - if (txr->br != NULL) - buf_ring_free(txr->br, M_DEVBUF); -#endif if (txr->tx_buffers != NULL) { free(txr->tx_buffers, M_DEVBUF); txr->tx_buffers = NULL;