Commit 31efdae0 authored by Scott Feldman's avatar Scott Feldman Committed by Jeff Garzik

[PATCH] e1000: disable CSA fix for 82547

* Multiple reports of system lock-ups with the CSA patch, so
  let's disable fix for now until we can understand why this
  is causing the hangs.  It was first thought that only pre-
  productions systems would hang, but that's not true.
parent e998ff1a
...@@ -2131,26 +2131,10 @@ e1000_intr(int irq, void *data, struct pt_regs *regs) ...@@ -2131,26 +2131,10 @@ e1000_intr(int irq, void *data, struct pt_regs *regs)
__netif_rx_schedule(netdev); __netif_rx_schedule(netdev);
} }
#else #else
/* Writing IMC and IMS is needed for 82547.
Due to Hub Link bus being occupied, an interrupt
de-assertion message is not able to be sent.
When an interrupt assertion message is generated later,
two messages are re-ordered and sent out.
That causes APIC to think 82547 is in de-assertion
state, while 82547 is in assertion state, resulting
in dead lock. Writing IMC forces 82547 into
de-assertion state.
*/
if(hw->mac_type == e1000_82547 || hw->mac_type == e1000_82547_rev_2)
e1000_irq_disable(adapter);
for(i = 0; i < E1000_MAX_INTR; i++) for(i = 0; i < E1000_MAX_INTR; i++)
if(!e1000_clean_rx_irq(adapter) & if(!e1000_clean_rx_irq(adapter) &
!e1000_clean_tx_irq(adapter)) !e1000_clean_tx_irq(adapter))
break; break;
if(hw->mac_type == e1000_82547 || hw->mac_type == e1000_82547_rev_2)
e1000_irq_enable(adapter);
#endif #endif
return IRQ_HANDLED; return IRQ_HANDLED;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment