[PATCH v2 08/23] arm64: cpufeature: Store every ID register with its overrides applied

Ben Horgan ben.horgan at arm.com
Mon Oct 12 04:10:53 PDT 2026


Hi Fuad,

On 11/10/2026 08:34, Fuad Tabba wrote:
> Hi Ben,
> 
> On Fri, 09 Oct 2026 16:51:14 +0100, Ben Horgan <ben.horgan at arm.com> wrote:
> [...]
>>> the same way. Everything read with read_cpuid() goes through
>>> read_cpuid_with_overrides(). CTR_EL0 and CNTFRQ_EL0, which are read
> [...]
>> For completeness shouldn't read_cpuid(SMIDR_EL1) change to
>> read_cpuid_with_overrides(SMIDR_EL1)?
> 
> "Everything" should have said every register in arm64_ftr_regs[], and
> SMIDR_EL1 isn't one of them, so read_cpuid_with_overrides() would hit
> the WARN_ON() in get_arm64_ftr_reg() whenever SME is enabled.

Thanks for the explanation. If I understand correctly, SMIDR_EL1 isn't in arm64_ftr_regs[] because
there is no need to sanitize SMIDR_EL1 to give a consistent view across cpus. If and when support
for sme priority is added then a unified view of the SMIDR_EL1.HIP, highest implement priority,
would be needed and so at that point deserve a place in arm64_ftr_regs[].

Cheers,
Ben

> 
> Thanks,
> /fuad




More information about the linux-arm-kernel mailing list