• S
    target-arm: Fix descriptor address masking in ARM address translation · dddb5223
    Sergey Sorokin 提交于
    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: NSergey Sorokin <afarallax@yandex.ru>
    Message-id: 1460996853-22117-1-git-send-email-afarallax@yandex.ru
    Reviewed-by: NPeter Maydell <peter.maydell@linaro.org>
    Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
    dddb5223
helper.c 331.9 KB