diff options
| author | D Scott Phillips <scott@os.amperecomputing.com> | 2026-07-14 16:11:58 -0700 |
|---|---|---|
| committer | Marc Zyngier <maz@kernel.org> | 2026-07-21 11:19:00 +0100 |
| commit | 8a570b19b4b16a8a3b5ffa2b332bd5613110b2d8 (patch) | |
| tree | ef4c5462bcead568f99bd60a9253b2aa2dfadff2 /kernel | |
| parent | 1590cf0329716306e948a8fc29f1d3ee87d3989f (diff) | |
| download | linux-next-8a570b19b4b16a8a3b5ffa2b332bd5613110b2d8.tar.gz linux-next-8a570b19b4b16a8a3b5ffa2b332bd5613110b2d8.zip | |
KVM: arm64: vgic: Avoid double-deactivate of IRQs in the nested context
In the nested state, the physical interrupt has already been
deactivated through the HW bit in the LR. The extra deactivation
would be harmless but can hit an errata case on AmpereOne, so
avoid it here.
On AmpereOne, deactivating a physical interrupt through
ICC_DIR_EL1 or ICC_EOIR1_EL1 (depending on EOImode) which is not
active, but is the highest priority pending interrupt causes the
cpu to lose the interrupt pending state and also prevents the
delivery of future interrupts.
Fixes: 6dd333c8942b2 ("KVM: arm64: GICv3: nv: Plug L1 LR sync into deactivation primitive")
Signed-off-by: D Scott Phillips <scott@os.amperecomputing.com>
Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/linux-arm-kernel/20260710222128.416581-1-scott@os.amperecomputing.com/
Link: https://patch.msgid.link/20260714231158.496808-1-scott@os.amperecomputing.com
Signed-off-by: Marc Zyngier <maz@kernel.org>
Diffstat (limited to 'kernel')
0 files changed, 0 insertions, 0 deletions
