diff options
Diffstat (limited to 'target/linux')
-rw-r--r-- | target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c index 607cc0b934..a38b336a8d 100644 --- a/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c +++ b/target/linux/ath79/files/drivers/net/ethernet/atheros/ag71xx/ag71xx_main.c @@ -1600,6 +1600,12 @@ static int ag71xx_probe(struct platform_device *pdev) return -ENOMEM; } + /* ensure that HW is in manual polling mode before interrupts are + * activated. Otherwise ag71xx_interrupt might call napi_schedule + * before it is initialized by netif_napi_add. + */ + ag71xx_int_disable(ag, AG71XX_INT_POLL); + dev->irq = platform_get_irq(pdev, 0); err = devm_request_irq(&pdev->dev, dev->irq, ag71xx_interrupt, 0x0, dev_name(&pdev->dev), dev); |