• Dave Martin's avatar
    arm64: KVM: Fix architecturally invalid reset value for FPEXC32_EL2 · 3cbae9fa
    Dave Martin authored
    commit c88b0936 upstream.
    
    Due to what looks like a typo dating back to the original addition
    of FPEXC32_EL2 handling, KVM currently initialises this register to
    an architecturally invalid value.
    
    As a result, the VECITR field (RES1) in bits [10:8] is initialised
    with 0, and the two reserved (RES0) bits [6:5] are initialised with
    1.  (In the Common VFP Subarchitecture as specified by ARMv7-A,
    these two bits were IMP DEF.  ARMv8-A removes them.)
    
    This patch changes the reset value from 0x70 to 0x700, which
    reflects the architectural constraints and is presumably what was
    originally intended.
    
    Cc: <stable@vger.kernel.org> # 4.12.x-
    Cc: Christoffer Dall <christoffer.dall@arm.com>
    Fixes: 62a89c44 ("arm64: KVM: 32bit handling of coprocessor traps")
    Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
    Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
    3cbae9fa
sys_regs.c 70.2 KB