On Thu, 19 Feb 2026 at 14:02, Gustavo Romero <[email protected]> wrote:
>
> get_phys_addr_disabled() is called from only one function,
> get_phys_addr_nogpc(), and from two locations within it.
>
> The first call to get_phys_addr_disabled() occurs when mmu_idx is one of
> the following: ARMMMUIdx_Phys_S, ARMMMUIdx_Phys_NS, ARMMMUIdx_Phys_Root,
> or ARMMMUIdx_Phys_Realm. So, handling ARMMMUIdx_Stage2 or
> ARMMMUIdx_Stage2_S is not required in get_phys_addr_disabled() for this
> case.
>
> The second call to get_phys_addr_disabled(), with mmu_idx ==
> ARMMMUIdx_Stage2 (or ARMMMUIdx_Stage2_S), only would occur if
> regime_translation_disabled() returns
> true for these mmu indexes. However, mmu_idx == ARMMMUIdx_Stage2 (or
> ARMMMUIdx_Stage2_S) can only occur if get_phys_addr_twostage() was
> called, since it's the only place where ptw->in_mmu_idx is set to
> ARMMMUIdx_Stage2 (or ARMMMUIdx_Stage2_S) and that only happens if
> regime_translation_disabled() returns false.

This is true, but only because we never call get_phys_addr_for_at()
with an mmu_idx argument of Stage2, right?

-- PMM

Reply via email to