• David Woodhouse's avatar
    KVM: x86: Fix wall clock writes in Xen shared_info not to mark page dirty · 55749769
    David Woodhouse authored
    When dirty ring logging is enabled, any dirty logging without an active
    vCPU context will cause a kernel oops. But we've already declared that
    the shared_info page doesn't get dirty tracking anyway, since it would
    be kind of insane to mark it dirty every time we deliver an event channel
    interrupt. Userspace is supposed to just assume it's always dirty any
    time a vCPU can run or event channels are routed.
    
    So stop using the generic kvm_write_wall_clock() and just write directly
    through the gfn_to_pfn_cache that we already have set up.
    
    We can make kvm_write_wall_clock() static in x86.c again now, but let's
    not remove the 'sec_hi_ofs' argument even though it's not used yet. At
    some point we *will* want to use that for KVM guests too.
    
    Fixes: 629b5348 ("KVM: x86/xen: update wallclock region")
    Reported-by: default avatarbutt3rflyh4ck <butterflyhuangxx@gmail.com>
    Signed-off-by: default avatarDavid Woodhouse <dwmw@amazon.co.uk>
    Message-Id: <20211210163625.2886-6-dwmw2@infradead.org>
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    55749769
x86.c 333 KB