diff options
Diffstat (limited to 'drivers/net/ethernet/cadence/macb.c')
| -rw-r--r-- | drivers/net/ethernet/cadence/macb.c | 7 | 
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c index a9b0830fb39..79039439bfd 100644 --- a/drivers/net/ethernet/cadence/macb.c +++ b/drivers/net/ethernet/cadence/macb.c @@ -287,7 +287,7 @@ static int macb_mii_probe(struct net_device *dev)  	}  	/* attach the mac to the phy */ -	ret = phy_connect_direct(dev, phydev, &macb_handle_link_change, 0, +	ret = phy_connect_direct(dev, phydev, &macb_handle_link_change,  				 bp->phy_interface);  	if (ret) {  		netdev_err(dev, "Could not attach to PHY\n"); @@ -693,6 +693,11 @@ static int macb_poll(struct napi_struct *napi, int budget)  		 * get notified when new packets arrive.  		 */  		macb_writel(bp, IER, MACB_RX_INT_FLAGS); + +		/* Packets received while interrupts were disabled */ +		status = macb_readl(bp, RSR); +		if (unlikely(status)) +			napi_reschedule(napi);  	}  	/* TODO: Handle errors */  |