Corrected a workaround that should only be applied to one adapter. Workaround
was causing device hangs when incorrectly applied to other adapters. PR: kern/66634
This commit is contained in:
parent
66fe651294
commit
b1ffdfc7c2
@ -3005,8 +3005,20 @@ em_enable_intr(struct adapter * adapter)
|
||||
static void
|
||||
em_disable_intr(struct adapter *adapter)
|
||||
{
|
||||
E1000_WRITE_REG(&adapter->hw, IMC,
|
||||
(0xffffffff & ~E1000_IMC_RXSEQ));
|
||||
/*
|
||||
* The first version of 82542 had an errata where when link was forced it
|
||||
* would stay up even up even if the cable was disconnected. Sequence errors
|
||||
* were used to detect the disconnect and then the driver would unforce the link.
|
||||
* This code in the in the ISR. For this to work correctly the Sequence error
|
||||
* interrupt had to be enabled all the time.
|
||||
*/
|
||||
|
||||
if (adapter->hw.mac_type == em_82542_rev2_0)
|
||||
E1000_WRITE_REG(&adapter->hw, IMC,
|
||||
(0xffffffff & ~E1000_IMC_RXSEQ));
|
||||
else
|
||||
E1000_WRITE_REG(&adapter->hw, IMC,
|
||||
0xffffffff);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user