summaryrefslogtreecommitdiffstats
path: root/hw/cpu/core.c
diff options
context:
space:
mode:
authorPeter Maydell2018-07-09 14:45:35 +0200
committerPeter Maydell2018-07-10 11:54:40 +0200
commit2b83714d4ea659899069a4b94aa2dfadc847a013 (patch)
tree08c6699e8b22ece28fc957c3fb68eaabc28048c4 /hw/cpu/core.c
parentMerge remote-tracking branch 'remotes/vivier2/tags/linux-user-for-3.0-pull-re... (diff)
downloadqemu-2b83714d4ea659899069a4b94aa2dfadc847a013.tar.gz
qemu-2b83714d4ea659899069a4b94aa2dfadc847a013.tar.xz
qemu-2b83714d4ea659899069a4b94aa2dfadc847a013.zip
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 <adithya.nagaraj.baglody@intel.com> Signed-off-by: Peter Maydell <peter.maydell@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-id: 20180709124535.1116-1-peter.maydell@linaro.org
Diffstat (limited to 'hw/cpu/core.c')
0 files changed, 0 insertions, 0 deletions