On 10/6/22 11:55, Peter Maydell wrote:
On Thu, 6 Oct 2022 at 19:20, Richard Henderson
<richard.hender...@linaro.org> wrote:
On 10/6/22 08:22, Peter Maydell wrote:
Yeah, cleared-at-start is fine. But here we're also relying on
the stage 2 call to get_phys_addr_lpae() not setting it to 1,
because we pass that the same 'result' pointer, not a fresh one.
I clear it first: that patch is already merged:
memset(result, 0, sizeof(*result));
ret = get_phys_addr_lpae(env, ipa, access_type, s2_mmu_idx,
is_el0, result, fi);
Yes, but that doesn't help if this ^^^ get_phys_addr_lpae()
call sets result->attrs.secure = true.
Ok, sure, let's make the write to .secure be unconditional.
I've split this out into a new patch 2 for clarity.
r~