igb: PCIe devices do not need to unset MANC_ARP_ENA
Users reported that ARP's were lost with igb. 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
41825d7158
commit
aa20c6c6d2
1 changed files with 0 additions and 28 deletions
|
@ -606,9 +606,6 @@ static void igb_init_manageability(struct igb_adapter *adapter)
|
||||||
u32 manc2h = rd32(E1000_MANC2H);
|
u32 manc2h = rd32(E1000_MANC2H);
|
||||||
u32 manc = rd32(E1000_MANC);
|
u32 manc = rd32(E1000_MANC);
|
||||||
|
|
||||||
/* disable hardware interception of ARP */
|
|
||||||
manc &= ~(E1000_MANC_ARP_EN);
|
|
||||||
|
|
||||||
/* enable receiving management packets to the host */
|
/* enable receiving management packets to the host */
|
||||||
/* this will probably generate destination unreachable messages
|
/* this will probably generate destination unreachable messages
|
||||||
* from the host OS, but the packets will be handled on SMBUS */
|
* from the host OS, but the packets will be handled on SMBUS */
|
||||||
|
@ -623,25 +620,6 @@ static void igb_init_manageability(struct igb_adapter *adapter)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void igb_release_manageability(struct igb_adapter *adapter)
|
|
||||||
{
|
|
||||||
struct e1000_hw *hw = &adapter->hw;
|
|
||||||
|
|
||||||
if (adapter->en_mng_pt) {
|
|
||||||
u32 manc = rd32(E1000_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 */
|
|
||||||
|
|
||||||
/* XXX stop the hardware watchdog ? */
|
|
||||||
wr32(E1000_MANC, manc);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* igb_configure - configure the hardware for RX and TX
|
* igb_configure - configure the hardware for RX and TX
|
||||||
* @adapter: private board structure
|
* @adapter: private board structure
|
||||||
|
@ -844,7 +822,6 @@ void igb_reset(struct igb_adapter *adapter)
|
||||||
|
|
||||||
igb_reset_adaptive(&adapter->hw);
|
igb_reset_adaptive(&adapter->hw);
|
||||||
adapter->hw.phy.ops.get_phy_info(&adapter->hw);
|
adapter->hw.phy.ops.get_phy_info(&adapter->hw);
|
||||||
igb_release_manageability(adapter);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1178,9 +1155,6 @@ static void __devexit igb_remove(struct pci_dev *pdev)
|
||||||
|
|
||||||
flush_scheduled_work();
|
flush_scheduled_work();
|
||||||
|
|
||||||
|
|
||||||
igb_release_manageability(adapter);
|
|
||||||
|
|
||||||
/* Release control of h/w to f/w. If f/w is AMT enabled, this
|
/* Release control of h/w to f/w. If f/w is AMT enabled, this
|
||||||
* would have already happened in close and is redundant. */
|
* would have already happened in close and is redundant. */
|
||||||
igb_release_hw_control(adapter);
|
igb_release_hw_control(adapter);
|
||||||
|
@ -3955,8 +3929,6 @@ static int igb_suspend(struct pci_dev *pdev, pm_message_t state)
|
||||||
pci_enable_wake(pdev, PCI_D3cold, 0);
|
pci_enable_wake(pdev, PCI_D3cold, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
igb_release_manageability(adapter);
|
|
||||||
|
|
||||||
/* make sure adapter isn't asleep if manageability is enabled */
|
/* make sure adapter isn't asleep if manageability is enabled */
|
||||||
if (adapter->en_mng_pt) {
|
if (adapter->en_mng_pt) {
|
||||||
pci_enable_wake(pdev, PCI_D3hot, 1);
|
pci_enable_wake(pdev, PCI_D3hot, 1);
|
||||||
|
|
Loading…
Add table
Reference in a new issue