]> Git Repo - qemu.git/commit
target/arm: Use correct mmu_idx for exception-return unstacking
authorPeter Maydell <[email protected]>
Mon, 9 Jul 2018 12:45:35 +0000 (13:45 +0100)
committerPeter Maydell <[email protected]>
Tue, 10 Jul 2018 09:54:40 +0000 (10:54 +0100)
commit2b83714d4ea659899069a4b94aa2dfadc847a013
tree08c6699e8b22ece28fc957c3fb68eaabc28048c4
parent3a340e84375145fa32ce68e0b7b58d964487336b
target/arm: Use correct mmu_idx for exception-return unstacking

For M-profile exception returns, the mmu index to use for exception
return unstacking is supposed to be that of wherever we are returning to:
 * if returning to handler mode, privileged
 * if returning to thread mode, privileged or unprivileged depending on
   CONTROL.nPRIV for the destination security state

We were passing the wrong thing as the 'priv' argument to
arm_v7m_mmu_idx_for_secstate_and_priv(). The effect was that guests
which programmed the MPU to behave differently for privileged and
unprivileged code could get spurious MemManage Unstack exceptions.

Reported-by: Adithya Baglody <[email protected]>
Signed-off-by: Peter Maydell <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-id: 20180709124535[email protected]
target/arm/helper.c
This page took 0.025964 seconds and 4 git commands to generate.