Skip to content

Commit

Permalink
xen/arm: guest_walk: LPAE specific bits should be enclosed within "if…
Browse files Browse the repository at this point in the history
…ndef CONFIG_PHYS_ADDR_T_32"

As the previous patch introduces CONFIG_PHYS_ADDR_T_32 to support 32 bit
physical addresses, the code specific to "Large Physical Address Extension"
(ie LPAE) should be enclosed within "ifndef CONFIG_PHYS_ADDR_T_32".

Refer xen/arch/arm/include/asm/short-desc.h, "short_desc_l1_supersec_t"
unsigned int extbase1:4;    /* Extended base address, PA[35:32] */
unsigned int extbase2:4;    /* Extended base address, PA[39:36] */

Thus, extbase1 and extbase2 are not valid when 32 bit physical addresses
are supported.

Signed-off-by: Ayan Kumar Halder <[email protected]>
Acked-by: Stefano Stabellini <[email protected]>
  • Loading branch information
ayankuma-amd authored and Julien Grall committed Jun 16, 2023
1 parent b6733ed commit c3aabf7
Showing 1 changed file with 2 additions and 0 deletions.
2 changes: 2 additions & 0 deletions xen/arch/arm/guest_walk.c
Original file line number Diff line number Diff line change
Expand Up @@ -154,8 +154,10 @@ static bool guest_walk_sd(const struct vcpu *v,
mask = (1ULL << L1DESC_SUPERSECTION_SHIFT) - 1;
*ipa = gva & mask;
*ipa |= (paddr_t)(pte.supersec.base) << L1DESC_SUPERSECTION_SHIFT;
#ifndef CONFIG_PHYS_ADDR_T_32
*ipa |= (paddr_t)(pte.supersec.extbase1) << L1DESC_SUPERSECTION_EXT_BASE1_SHIFT;
*ipa |= (paddr_t)(pte.supersec.extbase2) << L1DESC_SUPERSECTION_EXT_BASE2_SHIFT;
#endif /* CONFIG_PHYS_ADDR_T_32 */
}

/* Set permissions so that the caller can check the flags by herself. */
Expand Down

0 comments on commit c3aabf7

Please sign in to comment.