]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: x86: Fix wall clock writes in Xen shared_info not to mark page dirty
authorDavid Woodhouse <dwmw@amazon.co.uk>
Fri, 10 Dec 2021 16:36:24 +0000 (16:36 +0000)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 7 Jan 2022 15:44:45 +0000 (10:44 -0500)
commit4e56a7e6e45b4e69c461812af91ce8fe56d18b22
treec99579f4f18b42a971d486fe53aabf02756dd538
parent4b3072707dd603e2de75fe7a3c0769fa2b8a686a
KVM: x86: Fix wall clock writes in Xen shared_info not to mark page dirty

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: bfdbee922858 ("KVM: x86/xen: update wallclock region")
Reported-by: butt3rflyh4ck <butterflyhuangxx@gmail.com>
Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Message-Id: <20211210163625.2886-6-dwmw2@infradead.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/x86.c
arch/x86/kvm/x86.h
arch/x86/kvm/xen.c