--- fec.c 2002-10-15 14:58:00.000000000 +0200 +++ fec_cfix.c 2002-10-24 20:59:20.000000000 +0200 @@ -502,11 +502,12 @@ if (bdp->cbd_sc & BD_ENET_TX_READY) printk("HEY! Enet xmit interrupt and TX_READY.\n"); #endif - /* Deferred means some collisions occurred during transmit, - * but we eventually sent the packet OK. - */ - if (bdp->cbd_sc & BD_ENET_TX_DEF) - fep->stats.collisions++; + /* Check retry counter, i.e. collision counter */ + /* Only valid if LAST is set, but it should always be. */ + if (bdp->cbd_sc & BD_ENET_TX_RCMASK){ + /* Note that counter cannot go higher than 15 */ + fep->stats.collisions+=(bdp->cbd_sc & BD_ENET_TX_RCMASK)>>2; + } /* Free the sk buffer associated with this last transmit. */