• M
    KVM: arm64: Don't write junk to sysregs on reset · 11d04d0f
    Marc Zyngier 提交于
    [ Upstream commit 03fdfb26 ]
    
    At the moment, the way we reset system registers is mildly insane:
    We write junk to them, call the reset functions, and then check that
    we have something else in them.
    
    The "fun" thing is that this can happen while the guest is running
    (PSCI, for example). If anything in KVM has to evaluate the state
    of a system register while junk is in there, bad thing may happen.
    
    Let's stop doing that. Instead, we track that we have called a
    reset function for that register, and assume that the reset
    function has done something. This requires fixing a couple of
    sysreg refinition in the trap table.
    
    In the end, the very need of this reset check is pretty dubious,
    as it doesn't check everything (a lot of the sysregs leave outside of
    the sys_regs[] array). It may well be axed in the near future.
    Tested-by: NZenghui Yu <yuzenghui@huawei.com>
    Signed-off-by: NMarc Zyngier <maz@kernel.org>
    Signed-off-by: NSasha Levin <sashal@kernel.org>
    Signed-off-by: NYang Yingliang <yangyingliang@huawei.com>
    11d04d0f
sys_regs.c 70.2 KB