[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Possible regression caused by "target/arm: Add ptw_idx to S1Translat
From: |
Jerome Forissier |
Subject: |
Re: Possible regression caused by "target/arm: Add ptw_idx to S1Translate" |
Date: |
Thu, 3 Nov 2022 14:15:53 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.2.2 |
On 11/3/22 14:04, Jerome Forissier wrote:
> Hi,
>
> I am troubleshooting a regression that seems related to commit
> 48da29e485af ("target/arm: Add ptw_idx to S1Translate"), at least that's
> what git bisect says.
>
> The following hunk looks weird to me:
>
> @@ -1263,7 +1260,18 @@ static bool get_phys_addr_lpae(CPUARMState *env,
> S1Translate *ptw,
> descaddr |= (address >> (stride * (4 - level))) & indexmask;
> descaddr &= ~7ULL;
> nstable = extract32(tableattrs, 4, 1);
> - ptw->in_secure = !nstable;
> + if (!nstable) {
> + /*
> + * Stage2_S -> Stage2 or Phys_S -> Phys_NS
> + * Assert that the non-secure idx are even, and relative order.
> + */
> + QEMU_BUILD_BUG_ON((ARMMMUIdx_Phys_NS & 1) != 0);
> + QEMU_BUILD_BUG_ON((ARMMMUIdx_Stage2 & 1) != 0);
> + QEMU_BUILD_BUG_ON(ARMMMUIdx_Phys_NS + 1 != ARMMMUIdx_Phys_S);
> + QEMU_BUILD_BUG_ON(ARMMMUIdx_Stage2 + 1 != ARMMMUIdx_Stage2_S);
> + ptw->in_ptw_idx &= ~1;
> + ptw->in_secure = false;
> + }
> descriptor = arm_ldq_ptw(env, ptw, descaddr, fi);
> if (fi->type != ARMFault_None) {
> goto do_fault;
>
Nevermind, I just noticed that a fix for this was sent yesterday...
https://lists.nongnu.org/archive/html/qemu-arm/2022-11/msg00047.html
master still doesn't work for me though.
Thanks,
--
Jerome