[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 7/8] hw/net: e1000e: Clear ICR on read when using non MSI-X inter
From: |
Jason Wang |
Subject: |
[PATCH 7/8] hw/net: e1000e: Clear ICR on read when using non MSI-X interrupts |
Date: |
Mon, 14 Feb 2022 11:57:40 +0800 |
From: Nick Hudson <skrll@netbsd.org>
In section 7.4.3 of the 82574 datasheet it states that
"In systems that do not support MSI-X, reading the ICR
register clears it's bits..."
Some OSes rely on this.
Signed-off-by: Nick Hudson <skrll@netbsd.org>
Signed-off-by: Jason Wang <jasowang@redhat.com>
---
hw/net/e1000e_core.c | 5 +++++
hw/net/trace-events | 1 +
2 files changed, 6 insertions(+)
diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
index 8ae6fb7e14..2c51089a82 100644
--- a/hw/net/e1000e_core.c
+++ b/hw/net/e1000e_core.c
@@ -2607,6 +2607,11 @@ e1000e_mac_icr_read(E1000ECore *core, int index)
core->mac[ICR] = 0;
}
+ if (!msix_enabled(core->owner)) {
+ trace_e1000e_irq_icr_clear_nonmsix_icr_read();
+ core->mac[ICR] = 0;
+ }
+
if ((core->mac[ICR] & E1000_ICR_ASSERTED) &&
(core->mac[CTRL_EXT] & E1000_CTRL_EXT_IAME)) {
trace_e1000e_irq_icr_clear_iame();
diff --git a/hw/net/trace-events b/hw/net/trace-events
index 643338f610..4c0ec3fda1 100644
--- a/hw/net/trace-events
+++ b/hw/net/trace-events
@@ -221,6 +221,7 @@ e1000e_irq_write_ics(uint32_t val) "Adding ICR bits 0x%x"
e1000e_irq_icr_process_iame(void) "Clearing IMS bits due to IAME"
e1000e_irq_read_ics(uint32_t ics) "Current ICS: 0x%x"
e1000e_irq_read_ims(uint32_t ims) "Current IMS: 0x%x"
+e1000e_irq_icr_clear_nonmsix_icr_read(void) "Clearing ICR on read due to non
MSI-X int"
e1000e_irq_icr_read_entry(uint32_t icr) "Starting ICR read. Current ICR: 0x%x"
e1000e_irq_icr_read_exit(uint32_t icr) "Ending ICR read. Current ICR: 0x%x"
e1000e_irq_icr_clear_zero_ims(void) "Clearing ICR on read due to zero IMS"
--
2.32.0 (Apple Git-132)
- [PATCH 1/8] hw/net/vmxnet3: Log guest-triggerable errors using LOG_GUEST_ERROR, Jason Wang, 2022/02/13
- [PATCH 2/8] net/tap: Set return code on failure, Jason Wang, 2022/02/13
- [PATCH 3/8] net: Fix uninitialized data usage, Jason Wang, 2022/02/13
- [PATCH 4/8] net/colo-compare.c: Optimize compare order for performance, Jason Wang, 2022/02/13
- [PATCH 5/8] net/colo-compare.c: Update the default value comments, Jason Wang, 2022/02/13
- [PATCH 6/8] net/filter: Optimize filter_send to coroutine, Jason Wang, 2022/02/13
- [PATCH 7/8] hw/net: e1000e: Clear ICR on read when using non MSI-X interrupts,
Jason Wang <=
- [PATCH 8/8] net/eth: Don't consider ESP to be an IPv6 option header, Jason Wang, 2022/02/13
- Re: [PATCH 1/8] hw/net/vmxnet3: Log guest-triggerable errors using LOG_GUEST_ERROR, Jason Wang, 2022/02/13