b08f499b32
Under polling(4), we counted non-existent output packets and wasted CPU cycles, corrected. (PR kern/64975.) The fix in revision 1.71 to correct resetting of the watchdog timer was wrong. In rl(4), the TX list does not have a gap between the consumer and producer, so the "empty TX list" test was wrong, corrected. Also, resetting the timer to five each time we know there is still some TX work to do was a bad idea -- under polling(4), if the chip goes out to lunch, this results in the watchdog routine to _never_ be called. Instead, let the timer downgrade to zero and fire the watchdog, then reset it to five when it is zero AND there is some TX work left. (Most other network drivers need this fix too.) MFC after: 3 days