Re: [PATCH v4 06/48] arm64/sysreg: Update ICC_CR0_EL1 with LINK and LINK_IDLE fields

Sascha Bischoff <[email protected]> Fri, 31 Jul 2026 09:32:15 +0000
Newsgroups dev.linux.lists.sashiko-reviews,dev.linux.lists.kvmarm,org.kernel.vger.kvm
Message-ID <[email protected]>
On Fri, 2026-07-24 at 11:14 +0000, [email protected] wrote:
> [Severity: High]
> This is a pre-existing issue, but since this patch updates the
> ICC_CR0_EL1
> sysreg definitions, is it possible that context synchronization
> events are
> missing after writes to these control registers?
> 
> For example, in drivers/irqchip/irq-gic-
> v5.c:gicv5_cpu_disable_interrupts(),
> SYS_ICC_CR0_EL1 is written without an immediate isb():
> 
> drivers/irqchip/irq-gic-v5.c:gicv5_cpu_disable_interrupts() {
> 	cr0 = FIELD_PREP(ICC_CR0_EL1_EN, 0);
> 	write_sysreg_s(cr0, SYS_ICC_CR0_EL1);
> }
> 
> A similar pattern occurs in gicv5_cpu_enable_interrupts(),
> write_ppi_sysreg_s(),
> and gicv5_ppi_priority_init() for registers like SYS_ICC_PCR_EL1, 
> SYS_ICC_PPI_SPENDR0_EL1, and SYS_ICC_PPI_PRIORITYR0_EL1. Is there a
> risk of
> operating under a stale pipeline configuration if an ISB does not
> immediately
> follow these writes?

Ah, this again? No. This is not an issue, and "stale pipeline
configuration" really isn't what we'd get here (or a thing).

Thanks,
Sascha