The driver docs say the flush() function “should flush any packets that
the module may have queued pending transmission.” Yet the drivers in
the DDK only flush the queue of packets waiting to be handed to the
hardware, and do nothing about any packets that may be the tranmit ring
awaiting either transmission or post-transmission cleanup. It’s not
very likely that such packets exist, but probably just as likely as any
existing in the queue. In other words, if the real transmit queue is
defined as all packets passed to rx_down() and not yet passed back to
tx_done(), why are only some of them dealt with by flush()?