Commit 8097e71c authored by Kevin Wolf's avatar Kevin Wolf
Browse files

e1000: Acknowledge interrupts explicitly by ICR write


The old e1000 models used to clear the interrupt flags in ICR on read,
but e1000e doesn't do this any more. Just writing the bits back is fine
for both, so let's do just that.

Clearing the bits must be done before actually processing the interrupt
in order to avoid races with new events.
Signed-off-by: Kevin Wolf's avatarKevin Wolf <kevin@tyndur.org>
parent 12cc64c0
No related merge requests found
Showing with 1 addition and 0 deletions
+1 -0
......@@ -584,6 +584,7 @@ static void e1000_handle_interrupt(struct cdi_device* device)
struct e1000_device* netcard = (struct e1000_device*) device;
uint32_t icr = reg_inl(netcard, REG_INTR_CAUSE);
reg_outl(netcard, REG_INTR_CAUSE, icr);
#ifdef DEBUG
printf("e1000: Interrupt, ICR = %08x\n", icr);
......
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