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~

Reply via email to