• Marc Zyngier's avatar
    ARM: KVM: Fix idmap stub entry when running Thumb-2 code · 1edb6321
    Marc Zyngier authored
    When entering the hyp stub implemented in the idmap, we try to
    be mindful of the fact that we could be running a Thumb-2 kernel
    by adding 1 to the address we compute. Unfortunately, the assembler
    also knows about this trick, and has already generated an address
    that has bit 0 set in the litteral pool.
    
    Our superfluous correction ends up confusing the CPU entierely,
    as we now branch to the stub in ARM mode instead of Thumb, and on
    a possibly unaligned address for good measure. From that point,
    nothing really good happens.
    
    The obvious fix in to remove this stupid target PC correction.
    
    Fixes: 6bebcecb ("ARM: KVM: Allow the main HYP code to use the init hyp stub implementation")
    Reported-by: default avatarChristoffer Dall <cdall@linaro.org>
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: default avatarChristoffer Dall <cdall@linaro.org>
    1edb6321
hyp-entry.S 4.94 KB