On 2025/08/07 20:08, Laurent Vivier wrote:
A race condition between guest driver actions and QEMU timers can lead
to an assertion failure when the guest switches the e1000e from legacy
interrupt mode to MSI-X. If a legacy interrupt delay timer (TIDV or
RDTR) is active, but the guest enables MSI-X before the timer fires,
the pending interrupt cause can trigger an assert in
e1000e_intmgr_collect_delayed_causes().

This patch removes the assertion and executes the code that clears the
pending legacy causes. This change is safe and introduces no unintended
behavioral side effects, as it only alters a state that previously led
to termination.

- when core->delayed_causes == 0 the function was already a no-op and
   remains so.

- when core->delayed_causes != 0 the function would previously
   crash due to the assertion failure. The patch now defines a safe
   outcome by clearing the cause and returning. Since behavior after
   the assertion never existed, this simply corrects the crash.

This description is better than my comment written in haste. Thank you for taking care of this.

Reviewed-by: Akihiko Odaki <od...@rsg.ci.i.u-tokyo.ac.jp>



Reply via email to