diff options
Diffstat (limited to 'drivers/net/ethernet/intel/e1000/e1000_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/e1000/e1000_main.c | 10 | 
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c index 669ca3800c0..d94d64b5d69 100644 --- a/drivers/net/ethernet/intel/e1000/e1000_main.c +++ b/drivers/net/ethernet/intel/e1000/e1000_main.c @@ -4740,12 +4740,14 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)  		e1000_setup_rctl(adapter);  		e1000_set_rx_mode(netdev); +		rctl = er32(RCTL); +  		/* turn on all-multi mode if wake on multicast is enabled */ -		if (wufc & E1000_WUFC_MC) { -			rctl = er32(RCTL); +		if (wufc & E1000_WUFC_MC)  			rctl |= E1000_RCTL_MPE; -			ew32(RCTL, rctl); -		} + +		/* enable receives in the hardware */ +		ew32(RCTL, rctl | E1000_RCTL_EN);  		if (hw->mac_type >= e1000_82540) {  			ctrl = er32(CTRL);  |