diff options
Diffstat (limited to 'drivers/net/macb.c')
| -rw-r--r-- | drivers/net/macb.c | 13 | 
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/net/macb.c b/drivers/net/macb.c index 79ccb54ab00..6c6a02869df 100644 --- a/drivers/net/macb.c +++ b/drivers/net/macb.c @@ -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; @@ -1171,8 +1177,7 @@ static int __init macb_probe(struct platform_device *pdev)  	}  	dev->irq = platform_get_irq(pdev, 0); -	err = request_irq(dev->irq, macb_interrupt, IRQF_SAMPLE_RANDOM, -			  dev->name, dev); +	err = request_irq(dev->irq, macb_interrupt, 0, dev->name, dev);  	if (err) {  		printk(KERN_ERR  		       "%s: Unable to request IRQ %d (error %d)\n", @@ -1351,5 +1356,5 @@ module_exit(macb_exit);  MODULE_LICENSE("GPL");  MODULE_DESCRIPTION("Atmel MACB Ethernet driver"); -MODULE_AUTHOR("Haavard Skinnemoen <hskinnemoen@atmel.com>"); +MODULE_AUTHOR("Haavard Skinnemoen (Atmel)");  MODULE_ALIAS("platform:macb");  |