if ((td_status = sonic_tda_get(dev, entry, SONIC_TD_STATUS)) == 0)
                                        break;
 
-                               if (td_status & 0x0001) {
+                               if (td_status & SONIC_TCR_PTX) {
                                        lp->stats.tx_packets++;
                                        lp->stats.tx_bytes += sonic_tda_get(dev, entry, SONIC_TD_PKTSIZE);
                                } else {
-                                       lp->stats.tx_errors++;
-                                       if (td_status & 0x0642)
+                                       if (td_status & (SONIC_TCR_EXD |
+                                           SONIC_TCR_EXC | SONIC_TCR_BCM))
                                                lp->stats.tx_aborted_errors++;
-                                       if (td_status & 0x0180)
+                                       if (td_status &
+                                           (SONIC_TCR_NCRS | SONIC_TCR_CRLS))
                                                lp->stats.tx_carrier_errors++;
-                                       if (td_status & 0x0020)
+                                       if (td_status & SONIC_TCR_OWC)
                                                lp->stats.tx_window_errors++;
-                                       if (td_status & 0x0004)
+                                       if (td_status & SONIC_TCR_FU)
                                                lp->stats.tx_fifo_errors++;
                                }
 
                if (status & SONIC_INT_RFO) {
                        netif_dbg(lp, rx_err, dev, "%s: rx fifo overrun\n",
                                  __func__);
-                       lp->stats.rx_fifo_errors++;
                }
                if (status & SONIC_INT_RDE) {
                        netif_dbg(lp, rx_err, dev, "%s: rx descriptors exhausted\n",
                                  __func__);
-                       lp->stats.rx_dropped++;
                }
                if (status & SONIC_INT_RBAE) {
                        netif_dbg(lp, rx_err, dev, "%s: rx buffer area exceeded\n",
                                  __func__);
-                       lp->stats.rx_dropped++;
                }
 
                /* counter overruns; all counters are 16bit wide */
                        sonic_rra_put(dev, entry, SONIC_RR_BUFADR_H, bufadr_h);
                } else {
                        /* This should only happen, if we enable accepting broken packets. */
-                       lp->stats.rx_errors++;
-                       if (status & SONIC_RCR_FAER)
-                               lp->stats.rx_frame_errors++;
-                       if (status & SONIC_RCR_CRCR)
-                               lp->stats.rx_crc_errors++;
                }
                if (status & SONIC_RCR_LPKT) {
                        /*