|
@@ -154,11 +154,6 @@ e1000e_intrmgr_on_throttling_timer(void *opaque)
|
|
|
|
|
|
timer->running = false;
|
|
timer->running = false;
|
|
|
|
|
|
- if (!timer->core->itr_intr_pending) {
|
|
|
|
- trace_e1000e_irq_throttling_no_pending_interrupts();
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
if (msi_enabled(timer->core->owner)) {
|
|
if (msi_enabled(timer->core->owner)) {
|
|
trace_e1000e_irq_msi_notify_postponed();
|
|
trace_e1000e_irq_msi_notify_postponed();
|
|
/* Clear msi_causes_pending to fire MSI eventually */
|
|
/* Clear msi_causes_pending to fire MSI eventually */
|
|
@@ -180,11 +175,6 @@ e1000e_intrmgr_on_msix_throttling_timer(void *opaque)
|
|
|
|
|
|
timer->running = false;
|
|
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);
|
|
trace_e1000e_irq_msix_notify_postponed_vec(idx);
|
|
msix_notify(timer->core->owner, idx);
|
|
msix_notify(timer->core->owner, idx);
|
|
}
|
|
}
|
|
@@ -2015,13 +2005,11 @@ e1000e_clear_ims_bits(E1000ECore *core, uint32_t bits)
|
|
}
|
|
}
|
|
|
|
|
|
static inline bool
|
|
static inline bool
|
|
-e1000e_postpone_interrupt(bool *interrupt_pending,
|
|
|
|
- E1000IntrDelayTimer *timer)
|
|
|
|
|
|
+e1000e_postpone_interrupt(E1000IntrDelayTimer *timer)
|
|
{
|
|
{
|
|
if (timer->running) {
|
|
if (timer->running) {
|
|
trace_e1000e_irq_postponed_by_xitr(timer->delay_reg << 2);
|
|
trace_e1000e_irq_postponed_by_xitr(timer->delay_reg << 2);
|
|
|
|
|
|
- *interrupt_pending = true;
|
|
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -2035,14 +2023,13 @@ e1000e_postpone_interrupt(bool *interrupt_pending,
|
|
static inline bool
|
|
static inline bool
|
|
e1000e_itr_should_postpone(E1000ECore *core)
|
|
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
|
|
static inline bool
|
|
e1000e_eitr_should_postpone(E1000ECore *core, int idx)
|
|
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
|
|
static void
|