[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 11/29] e1000e: Remove pending interrupt flags
From: |
Akihiko Odaki |
Subject: |
[PATCH v5 11/29] e1000e: Remove pending interrupt flags |
Date: |
Wed, 1 Feb 2023 12:35:21 +0900 |
They are duplicate of running throttling timer flags and incomplete as
the flags are not cleared when the interrupts are fired or the device is
reset.
Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
---
hw/net/e1000e.c | 5 ++---
hw/net/e1000e_core.c | 19 +++----------------
hw/net/e1000e_core.h | 2 --
hw/net/trace-events | 2 --
4 files changed, 5 insertions(+), 23 deletions(-)
diff --git a/hw/net/e1000e.c b/hw/net/e1000e.c
index d591d01c07..0bc222d354 100644
--- a/hw/net/e1000e.c
+++ b/hw/net/e1000e.c
@@ -631,12 +631,11 @@ static const VMStateDescription e1000e_vmstate = {
VMSTATE_E1000E_INTR_DELAY_TIMER(core.tidv, E1000EState),
VMSTATE_E1000E_INTR_DELAY_TIMER(core.itr, E1000EState),
- VMSTATE_BOOL(core.itr_intr_pending, E1000EState),
+ VMSTATE_UNUSED(1),
VMSTATE_E1000E_INTR_DELAY_TIMER_ARRAY(core.eitr, E1000EState,
E1000E_MSIX_VEC_NUM),
- VMSTATE_BOOL_ARRAY(core.eitr_intr_pending, E1000EState,
- E1000E_MSIX_VEC_NUM),
+ VMSTATE_UNUSED(E1000E_MSIX_VEC_NUM),
VMSTATE_UINT32(core.itr_guest_value, E1000EState),
VMSTATE_UINT32_ARRAY(core.eitr_guest_value, E1000EState,
diff --git a/hw/net/e1000e_core.c b/hw/net/e1000e_core.c
index 87f964cdc1..37aec6a970 100644
--- a/hw/net/e1000e_core.c
+++ b/hw/net/e1000e_core.c
@@ -154,11 +154,6 @@ e1000e_intrmgr_on_throttling_timer(void *opaque)
timer->running = false;
- if (!timer->core->itr_intr_pending) {
- trace_e1000e_irq_throttling_no_pending_interrupts();
- return;
- }
-
if (msi_enabled(timer->core->owner)) {
trace_e1000e_irq_msi_notify_postponed();
/* Clear msi_causes_pending to fire MSI eventually */
@@ -180,11 +175,6 @@ e1000e_intrmgr_on_msix_throttling_timer(void *opaque)
timer->running = false;
- if (!timer->core->eitr_intr_pending[idx]) {
- trace_e1000e_irq_throttling_no_pending_vec(idx);
- return;
- }
-
trace_e1000e_irq_msix_notify_postponed_vec(idx);
msix_notify(timer->core->owner, idx);
}
@@ -2015,13 +2005,11 @@ e1000e_clear_ims_bits(E1000ECore *core, uint32_t bits)
}
static inline bool
-e1000e_postpone_interrupt(bool *interrupt_pending,
- E1000IntrDelayTimer *timer)
+e1000e_postpone_interrupt(E1000IntrDelayTimer *timer)
{
if (timer->running) {
trace_e1000e_irq_postponed_by_xitr(timer->delay_reg << 2);
- *interrupt_pending = true;
return true;
}
@@ -2035,14 +2023,13 @@ e1000e_postpone_interrupt(bool *interrupt_pending,
static inline bool
e1000e_itr_should_postpone(E1000ECore *core)
{
- return e1000e_postpone_interrupt(&core->itr_intr_pending, &core->itr);
+ return e1000e_postpone_interrupt(&core->itr);
}
static inline bool
e1000e_eitr_should_postpone(E1000ECore *core, int idx)
{
- return e1000e_postpone_interrupt(&core->eitr_intr_pending[idx],
- &core->eitr[idx]);
+ return e1000e_postpone_interrupt(&core->eitr[idx]);
}
static void
diff --git a/hw/net/e1000e_core.h b/hw/net/e1000e_core.h
index b8f38c47a0..d0a14b4523 100644
--- a/hw/net/e1000e_core.h
+++ b/hw/net/e1000e_core.h
@@ -95,10 +95,8 @@ struct E1000Core {
E1000IntrDelayTimer tidv;
E1000IntrDelayTimer itr;
- bool itr_intr_pending;
E1000IntrDelayTimer eitr[E1000E_MSIX_VEC_NUM];
- bool eitr_intr_pending[E1000E_MSIX_VEC_NUM];
VMChangeStateEntry *vmstate;
diff --git a/hw/net/trace-events b/hw/net/trace-events
index 4c0ec3fda1..8fa4299704 100644
--- a/hw/net/trace-events
+++ b/hw/net/trace-events
@@ -201,10 +201,8 @@ e1000e_rx_metadata_ipv6_filtering_disabled(void) "IPv6 RX
filtering disabled by
e1000e_vlan_vet(uint16_t vet) "Setting VLAN ethernet type 0x%X"
e1000e_irq_msi_notify(uint32_t cause) "MSI notify 0x%x"
-e1000e_irq_throttling_no_pending_interrupts(void) "No pending interrupts to
notify"
e1000e_irq_msi_notify_postponed(void) "Sending MSI postponed by ITR"
e1000e_irq_legacy_notify_postponed(void) "Raising legacy IRQ postponed by ITR"
-e1000e_irq_throttling_no_pending_vec(int idx) "No pending interrupts for
vector %d"
e1000e_irq_msix_notify_postponed_vec(int idx) "Sending MSI-X postponed by
EITR[%d]"
e1000e_irq_legacy_notify(bool level) "IRQ line state: %d"
e1000e_irq_msix_notify_vec(uint32_t vector) "MSI-X notify vector 0x%x"
--
2.39.1
- [PATCH v5 01/29] e1000e: Fix the code style, (continued)
- [PATCH v5 01/29] e1000e: Fix the code style, Akihiko Odaki, 2023/01/31
- [PATCH v5 03/29] fsl_etsec: Use hw/net/mii.h, Akihiko Odaki, 2023/01/31
- [PATCH v5 04/29] e1000: Use hw/net/mii.h, Akihiko Odaki, 2023/01/31
- [PATCH v5 02/29] hw/net: Add more MII definitions, Akihiko Odaki, 2023/01/31
- [PATCH v5 06/29] e1000e: Mask registers when writing, Akihiko Odaki, 2023/01/31
- [PATCH v5 07/29] e1000: Use more constant definitions, Akihiko Odaki, 2023/01/31
- [PATCH v5 08/29] e1000e: Use more constant definitions, Akihiko Odaki, 2023/01/31
- [PATCH v5 09/29] e1000: Use memcpy to intialize registers, Akihiko Odaki, 2023/01/31
- [PATCH v5 05/29] e1000: Mask registers when writing, Akihiko Odaki, 2023/01/31
- [PATCH v5 10/29] e1000e: Use memcpy to intialize registers, Akihiko Odaki, 2023/01/31
- [PATCH v5 11/29] e1000e: Remove pending interrupt flags,
Akihiko Odaki <=
- [PATCH v5 12/29] e1000e: Improve software reset, Akihiko Odaki, 2023/01/31
- [PATCH v5 13/29] e1000: Configure ResettableClass, Akihiko Odaki, 2023/01/31
- [PATCH v5 14/29] e1000e: Configure ResettableClass, Akihiko Odaki, 2023/01/31
- [PATCH v5 15/29] e1000e: Introduce e1000_rx_desc_union, Akihiko Odaki, 2023/01/31
- [PATCH v5 16/29] e1000e: Set MII_ANER_NWAY, Akihiko Odaki, 2023/01/31
- [PATCH v5 17/29] e1000e: Remove extra pointer indirection, Akihiko Odaki, 2023/01/31
- [PATCH v5 18/29] net: Check L4 header size, Akihiko Odaki, 2023/01/31
- [PATCH v5 19/29] e1000x: Alter the signature of e1000x_is_vlan_packet, Akihiko Odaki, 2023/01/31
- [PATCH v5 20/29] net: Strip virtio-net header when dumping, Akihiko Odaki, 2023/01/31
- [PATCH v5 21/29] hw/net/net_tx_pkt: Automatically determine if virtio-net header is used, Akihiko Odaki, 2023/01/31