mirror of https://github.com/xemu-project/xemu.git
target/arm/ptw: Drop S1Translate::out_secure
We only use S1Translate::out_secure in two places, where we are setting up MemTxAttrs for a page table load. We can use arm_space_is_secure(ptw->out_space) instead, which guarantees that we're setting the MemTxAttrs secure and space fields consistently, and allows us to drop the out_secure field in S1Translate entirely. Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20230807141514.19075-12-peter.maydell@linaro.org
This commit is contained in:
parent
6279f6dcdb
commit
b02f5e06bc
|
@ -63,7 +63,6 @@ typedef struct S1Translate {
|
||||||
* Stage 2 is indicated by in_mmu_idx set to ARMMMUIdx_Stage2{,_S}.
|
* Stage 2 is indicated by in_mmu_idx set to ARMMMUIdx_Stage2{,_S}.
|
||||||
*/
|
*/
|
||||||
bool in_s1_is_el0;
|
bool in_s1_is_el0;
|
||||||
bool out_secure;
|
|
||||||
bool out_rw;
|
bool out_rw;
|
||||||
bool out_be;
|
bool out_be;
|
||||||
ARMSecuritySpace out_space;
|
ARMSecuritySpace out_space;
|
||||||
|
@ -553,7 +552,6 @@ static bool S1_ptw_translate(CPUARMState *env, S1Translate *ptw,
|
||||||
pte_attrs = s2.cacheattrs.attrs;
|
pte_attrs = s2.cacheattrs.attrs;
|
||||||
ptw->out_host = NULL;
|
ptw->out_host = NULL;
|
||||||
ptw->out_rw = false;
|
ptw->out_rw = false;
|
||||||
ptw->out_secure = s2.f.attrs.secure;
|
|
||||||
ptw->out_space = s2.f.attrs.space;
|
ptw->out_space = s2.f.attrs.space;
|
||||||
} else {
|
} else {
|
||||||
#ifdef CONFIG_TCG
|
#ifdef CONFIG_TCG
|
||||||
|
@ -572,7 +570,6 @@ static bool S1_ptw_translate(CPUARMState *env, S1Translate *ptw,
|
||||||
ptw->out_phys = full->phys_addr | (addr & ~TARGET_PAGE_MASK);
|
ptw->out_phys = full->phys_addr | (addr & ~TARGET_PAGE_MASK);
|
||||||
ptw->out_rw = full->prot & PAGE_WRITE;
|
ptw->out_rw = full->prot & PAGE_WRITE;
|
||||||
pte_attrs = full->pte_attrs;
|
pte_attrs = full->pte_attrs;
|
||||||
ptw->out_secure = full->attrs.secure;
|
|
||||||
ptw->out_space = full->attrs.space;
|
ptw->out_space = full->attrs.space;
|
||||||
#else
|
#else
|
||||||
g_assert_not_reached();
|
g_assert_not_reached();
|
||||||
|
@ -630,8 +627,8 @@ static uint32_t arm_ldl_ptw(CPUARMState *env, S1Translate *ptw,
|
||||||
} else {
|
} else {
|
||||||
/* Page tables are in MMIO. */
|
/* Page tables are in MMIO. */
|
||||||
MemTxAttrs attrs = {
|
MemTxAttrs attrs = {
|
||||||
.secure = ptw->out_secure,
|
|
||||||
.space = ptw->out_space,
|
.space = ptw->out_space,
|
||||||
|
.secure = arm_space_is_secure(ptw->out_space),
|
||||||
};
|
};
|
||||||
AddressSpace *as = arm_addressspace(cs, attrs);
|
AddressSpace *as = arm_addressspace(cs, attrs);
|
||||||
MemTxResult result = MEMTX_OK;
|
MemTxResult result = MEMTX_OK;
|
||||||
|
@ -676,8 +673,8 @@ static uint64_t arm_ldq_ptw(CPUARMState *env, S1Translate *ptw,
|
||||||
} else {
|
} else {
|
||||||
/* Page tables are in MMIO. */
|
/* Page tables are in MMIO. */
|
||||||
MemTxAttrs attrs = {
|
MemTxAttrs attrs = {
|
||||||
.secure = ptw->out_secure,
|
|
||||||
.space = ptw->out_space,
|
.space = ptw->out_space,
|
||||||
|
.secure = arm_space_is_secure(ptw->out_space),
|
||||||
};
|
};
|
||||||
AddressSpace *as = arm_addressspace(cs, attrs);
|
AddressSpace *as = arm_addressspace(cs, attrs);
|
||||||
MemTxResult result = MEMTX_OK;
|
MemTxResult result = MEMTX_OK;
|
||||||
|
|
Loading…
Reference in New Issue