e1000e: PCIe devices do not need to unset MANC_ARP_ENA
Users reported that ARP's were lost with e1000e. The problem is fixed by not enabling this manageability configuration bit. None of the release_manageability code is actually needed as the normal device reset during a shutdown returns everthing to the right condition automatically. Signed-off-by: David Graham <david.graham@intel.com> Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com> Signed-off-by: Jeff Garzik <jeff@garzik.org>
This commit is contained in:
parent
aa20c6c6d2
commit
e8ef7f295b
|
@ -1055,23 +1055,6 @@ static void e1000_release_hw_control(struct e1000_adapter *adapter)
|
|||
}
|
||||
}
|
||||
|
||||
static void e1000_release_manageability(struct e1000_adapter *adapter)
|
||||
{
|
||||
if (adapter->flags & FLAG_MNG_PT_ENABLED) {
|
||||
struct e1000_hw *hw = &adapter->hw;
|
||||
|
||||
u32 manc = er32(MANC);
|
||||
|
||||
/* re-enable hardware interception of ARP */
|
||||
manc |= E1000_MANC_ARP_EN;
|
||||
manc &= ~E1000_MANC_EN_MNG2HOST;
|
||||
|
||||
/* don't explicitly have to mess with MANC2H since
|
||||
* MANC has an enable disable that gates MANC2H */
|
||||
ew32(MANC, manc);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @e1000_alloc_ring - allocate memory for a ring structure
|
||||
**/
|
||||
|
@ -1561,9 +1544,6 @@ static void e1000_init_manageability(struct e1000_adapter *adapter)
|
|||
|
||||
manc = er32(MANC);
|
||||
|
||||
/* disable hardware interception of ARP */
|
||||
manc &= ~(E1000_MANC_ARP_EN);
|
||||
|
||||
/* enable receiving management packets to the host. this will probably
|
||||
* generate destination unreachable messages from the host OS, but
|
||||
* the packets will be handled on SMBUS */
|
||||
|
@ -2140,8 +2120,6 @@ void e1000e_reset(struct e1000_adapter *adapter)
|
|||
phy_data &= ~IGP02E1000_PM_SPD;
|
||||
e1e_wphy(hw, IGP02E1000_PHY_POWER_MGMT, phy_data);
|
||||
}
|
||||
|
||||
e1000_release_manageability(adapter);
|
||||
}
|
||||
|
||||
int e1000e_up(struct e1000_adapter *adapter)
|
||||
|
@ -3487,8 +3465,6 @@ static int e1000_suspend(struct pci_dev *pdev, pm_message_t state)
|
|||
pci_enable_wake(pdev, PCI_D3cold, 0);
|
||||
}
|
||||
|
||||
e1000_release_manageability(adapter);
|
||||
|
||||
/* make sure adapter isn't asleep if manageability is enabled */
|
||||
if (adapter->flags & FLAG_MNG_PT_ENABLED) {
|
||||
pci_enable_wake(pdev, PCI_D3hot, 1);
|
||||
|
@ -4054,8 +4030,6 @@ static void __devexit e1000_remove(struct pci_dev *pdev)
|
|||
|
||||
flush_scheduled_work();
|
||||
|
||||
e1000_release_manageability(adapter);
|
||||
|
||||
/* Release control of h/w to f/w. If f/w is AMT enabled, this
|
||||
* would have already happened in close and is redundant. */
|
||||
e1000_release_hw_control(adapter);
|
||||
|
|
Loading…
Reference in New Issue