• James Morse's avatar
    KVM: arm64: Drop the target_table[] indirection · 6b33e0d6
    James Morse authored
    KVM for 32bit arm had a get/set target mechanism to allow for
    micro-architecture differences that are visible in system registers
    to be described.
    
    KVM's user-space can query the supported targets for a CPU, and
    create vCPUs for that target. The target can override the handling
    of system registers to provide different reset or RES0 behaviour.
    On 32bit arm this was used to provide different ACTLR reset values
    for A7 and A15.
    
    On 64bit arm, the first few CPUs out of the gate used this mechanism,
    before it was deemed redundant in commit bca556ac ("arm64/kvm:
    Add generic v8 KVM target"). All future CPUs use the
    KVM_ARM_TARGET_GENERIC_V8 target.
    
    The 64bit target_table[] stuff exists to preserve the ABI to
    user-space. As all targets registers genericv8_target_table, there
    is no reason to look the target up.
    
    Until we can merge genericv8_target_table with the main sys_regs
    array, kvm_register_target_sys_reg_table() becomes
    kvm_check_target_sys_reg_table(), which uses BUG_ON() in keeping
    with the other callers in this file.
    Signed-off-by: default avatarJames Morse <james.morse@arm.com>
    Signed-off-by: default avatarMarc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20200622113317.20477-2-james.morse@arm.com
    6b33e0d6
kvm_coproc.h 1.48 KB