Commit-ID: 7ef363a39514ed8a6f2333fbae1875ac0953715a Gitweb: https://git.kernel.org/tip/7ef363a39514ed8a6f2333fbae1875ac0953715a Author: Thomas Gleixner <t...@linutronix.de> AuthorDate: Thu, 19 Jul 2018 16:55:21 -0400 Committer: Thomas Gleixner <t...@linutronix.de> CommitDate: Fri, 20 Jul 2018 00:02:36 +0200
x86/kvmclock: Remove page size requirement from wall_clock There is no requirement for wall_clock data to be page aligned or page sized. Signed-off-by: Thomas Gleixner <t...@linutronix.de> Signed-off-by: Pavel Tatashin <pasha.tatas...@oracle.com> Acked-by: Paolo Bonzini <pbonz...@redhat.com> Cc: steven.sist...@oracle.com Cc: daniel.m.jor...@oracle.com Cc: li...@armlinux.org.uk Cc: schwidef...@de.ibm.com Cc: heiko.carst...@de.ibm.com Cc: john.stu...@linaro.org Cc: sb...@codeaurora.org Cc: h...@zytor.com Cc: douly.f...@cn.fujitsu.com Cc: pet...@infradead.org Cc: pra...@redhat.com Cc: feng.t...@intel.com Cc: pmla...@suse.com Cc: gno...@lxorguk.ukuu.org.uk Cc: linux-s...@vger.kernel.org Cc: boris.ostrov...@oracle.com Cc: jgr...@suse.com Link: https://lkml.kernel.org/r/20180719205545.16512-3-pasha.tatas...@oracle.com --- arch/x86/kernel/kvmclock.c | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c index 1f6ac5aaa904..a995d7d7164c 100644 --- a/arch/x86/kernel/kvmclock.c +++ b/arch/x86/kernel/kvmclock.c @@ -46,14 +46,12 @@ early_param("no-kvmclock", parse_no_kvmclock); /* Aligned to page sizes to match whats mapped via vsyscalls to userspace */ #define HV_CLOCK_SIZE (sizeof(struct pvclock_vsyscall_time_info) * NR_CPUS) -#define WALL_CLOCK_SIZE (sizeof(struct pvclock_wall_clock)) static u8 hv_clock_mem[PAGE_ALIGN(HV_CLOCK_SIZE)] __aligned(PAGE_SIZE); -static u8 wall_clock_mem[PAGE_ALIGN(WALL_CLOCK_SIZE)] __aligned(PAGE_SIZE); /* The hypervisor will put information about time periodically here */ static struct pvclock_vsyscall_time_info *hv_clock; -static struct pvclock_wall_clock *wall_clock; +static struct pvclock_wall_clock wall_clock; /* * The wallclock is the time of day when we booted. Since then, some time may @@ -66,15 +64,15 @@ static void kvm_get_wallclock(struct timespec64 *now) int low, high; int cpu; - low = (int)slow_virt_to_phys(wall_clock); - high = ((u64)slow_virt_to_phys(wall_clock) >> 32); + low = (int)slow_virt_to_phys(&wall_clock); + high = ((u64)slow_virt_to_phys(&wall_clock) >> 32); native_write_msr(msr_kvm_wall_clock, low, high); cpu = get_cpu(); vcpu_time = &hv_clock[cpu].pvti; - pvclock_read_wallclock(wall_clock, vcpu_time, now); + pvclock_read_wallclock(&wall_clock, vcpu_time, now); put_cpu(); } @@ -267,12 +265,10 @@ void __init kvmclock_init(void) } else if (!(kvmclock && kvm_para_has_feature(KVM_FEATURE_CLOCKSOURCE))) return; - wall_clock = (struct pvclock_wall_clock *)wall_clock_mem; hv_clock = (struct pvclock_vsyscall_time_info *)hv_clock_mem; if (kvm_register_clock("primary cpu clock")) { hv_clock = NULL; - wall_clock = NULL; return; }