Skip to content

Commit

Permalink
e1000e: PCIe devices do not need to unset MANC_ARP_ENA
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
David Graham authored and Jeff Garzik committed Feb 15, 2008
1 parent aa20c6c commit e8ef7f2
Showing 1 changed file with 0 additions and 26 deletions.
26 changes: 0 additions & 26 deletions drivers/net/e1000e/netdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
**/
Expand Down Expand Up @@ -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 */
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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);
Expand Down

0 comments on commit e8ef7f2

Please sign in to comment.