macb: Add rx overrun counter
authorAlexander Stein <alexander.stein@systec-electronic.com>
Wed, 13 Apr 2011 05:03:24 +0000 (05:03 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 13 Apr 2011 18:50:08 +0000 (11:50 -0700)
Signed-off-by: Alexander Stein <alexander.stein@systec-electronic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/macb.c

index 2cb4e792f871599fa5584a6e8d056afa502f8d9e..629bd2649c0c650fbb1dec31089d9b33fb0b0be5 100644 (file)
@@ -576,6 +576,11 @@ static irqreturn_t macb_interrupt(int irq, void *dev_id)
                 * add that if/when we get our hands on a full-blown MII PHY.
                 */
 
+               if (status & MACB_BIT(ISR_ROVR)) {
+                       /* We missed at least one packet */
+                       bp->hw_stats.rx_overruns++;
+               }
+
                if (status & MACB_BIT(HRESP)) {
                        /*
                         * TODO: Reset the hardware, and maybe move the printk
@@ -1024,7 +1029,8 @@ static struct net_device_stats *macb_get_stats(struct net_device *dev)
                                   hwstat->rx_jabbers +
                                   hwstat->rx_undersize_pkts +
                                   hwstat->rx_length_mismatch);
-       nstat->rx_over_errors = hwstat->rx_resource_errors;
+       nstat->rx_over_errors = hwstat->rx_resource_errors +
+                                  hwstat->rx_overruns;
        nstat->rx_crc_errors = hwstat->rx_fcs_errors;
        nstat->rx_frame_errors = hwstat->rx_align_errors;
        nstat->rx_fifo_errors = hwstat->rx_overruns;