summaryrefslogtreecommitdiffstats
path: root/include/exec
diff options
context:
space:
mode:
authorSergey Sorokin2016-05-12 14:22:26 +0200
committerPeter Maydell2016-05-12 14:22:26 +0200
commitdddb5223413c5425ae6eaeb3b967627efc9675f7 (patch)
tree8bbd559f3fa8718ce15e0f8182fb80c42bcedea8 /include/exec
parenttarget-arm: Stage 2 permission fault was fixed in AArch32 state (diff)
downloadqemu-dddb5223413c5425ae6eaeb3b967627efc9675f7.tar.gz
qemu-dddb5223413c5425ae6eaeb3b967627efc9675f7.tar.xz
qemu-dddb5223413c5425ae6eaeb3b967627efc9675f7.zip
target-arm: Fix descriptor address masking in ARM address translation
There is a bug in ARM address translation regime with a long-descriptor format. On the descriptor reading its address is formed from an index which is a part of the input address. And on the first iteration this index is incorrectly masked with 'grainsize' mask. But it can be wider according to pseudo-code. On the other hand on the iterations other than first the descriptor address is formed from the previous level descriptor by masking with 'descaddrmask' value. It always clears just 12 lower bits, but it must clear 'grainsize' lower bits instead according to pseudo-code. The patch fixes both cases. Signed-off-by: Sergey Sorokin <afarallax@yandex.ru> Message-id: 1460996853-22117-1-git-send-email-afarallax@yandex.ru Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'include/exec')
0 files changed, 0 insertions, 0 deletions