mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-22 00:57:58 +07:00
x86/vdso: Remove pvclock fixmap machinery
Signed-off-by: Andy Lutomirski <luto@kernel.org> Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-mm@kvack.org Link: http://lkml.kernel.org/r/4933029991103ae44672c82b97a20035f5c1fe4f.1449702533.git.luto@kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
dac16fba6f
commit
cc1e24fdb0
@ -45,7 +45,6 @@ extern u8 pvclock_page
|
|||||||
|
|
||||||
#include <linux/kernel.h>
|
#include <linux/kernel.h>
|
||||||
#include <asm/vsyscall.h>
|
#include <asm/vsyscall.h>
|
||||||
#include <asm/fixmap.h>
|
|
||||||
#include <asm/pvclock.h>
|
#include <asm/pvclock.h>
|
||||||
|
|
||||||
notrace static long vdso_fallback_gettime(long clock, struct timespec *ts)
|
notrace static long vdso_fallback_gettime(long clock, struct timespec *ts)
|
||||||
|
@ -12,6 +12,7 @@
|
|||||||
#include <linux/random.h>
|
#include <linux/random.h>
|
||||||
#include <linux/elf.h>
|
#include <linux/elf.h>
|
||||||
#include <linux/cpu.h>
|
#include <linux/cpu.h>
|
||||||
|
#include <asm/pvclock.h>
|
||||||
#include <asm/vgtod.h>
|
#include <asm/vgtod.h>
|
||||||
#include <asm/proto.h>
|
#include <asm/proto.h>
|
||||||
#include <asm/vdso.h>
|
#include <asm/vdso.h>
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
#include <asm/acpi.h>
|
#include <asm/acpi.h>
|
||||||
#include <asm/apicdef.h>
|
#include <asm/apicdef.h>
|
||||||
#include <asm/page.h>
|
#include <asm/page.h>
|
||||||
#include <asm/pvclock.h>
|
|
||||||
#ifdef CONFIG_X86_32
|
#ifdef CONFIG_X86_32
|
||||||
#include <linux/threads.h>
|
#include <linux/threads.h>
|
||||||
#include <asm/kmap_types.h>
|
#include <asm/kmap_types.h>
|
||||||
@ -72,10 +71,6 @@ enum fixed_addresses {
|
|||||||
#ifdef CONFIG_X86_VSYSCALL_EMULATION
|
#ifdef CONFIG_X86_VSYSCALL_EMULATION
|
||||||
VSYSCALL_PAGE = (FIXADDR_TOP - VSYSCALL_ADDR) >> PAGE_SHIFT,
|
VSYSCALL_PAGE = (FIXADDR_TOP - VSYSCALL_ADDR) >> PAGE_SHIFT,
|
||||||
#endif
|
#endif
|
||||||
#ifdef CONFIG_PARAVIRT_CLOCK
|
|
||||||
PVCLOCK_FIXMAP_BEGIN,
|
|
||||||
PVCLOCK_FIXMAP_END = PVCLOCK_FIXMAP_BEGIN+PVCLOCK_VSYSCALL_NR_PAGES-1,
|
|
||||||
#endif
|
|
||||||
#endif
|
#endif
|
||||||
FIX_DBGP_BASE,
|
FIX_DBGP_BASE,
|
||||||
FIX_EARLYCON_MEM_BASE,
|
FIX_EARLYCON_MEM_BASE,
|
||||||
|
@ -100,10 +100,5 @@ struct pvclock_vsyscall_time_info {
|
|||||||
} __attribute__((__aligned__(SMP_CACHE_BYTES)));
|
} __attribute__((__aligned__(SMP_CACHE_BYTES)));
|
||||||
|
|
||||||
#define PVTI_SIZE sizeof(struct pvclock_vsyscall_time_info)
|
#define PVTI_SIZE sizeof(struct pvclock_vsyscall_time_info)
|
||||||
#define PVCLOCK_VSYSCALL_NR_PAGES (((NR_CPUS-1)/(PAGE_SIZE/PVTI_SIZE))+1)
|
|
||||||
|
|
||||||
int __init pvclock_init_vsyscall(struct pvclock_vsyscall_time_info *i,
|
|
||||||
int size);
|
|
||||||
struct pvclock_vcpu_time_info *pvclock_get_vsyscall_time_info(int cpu);
|
|
||||||
|
|
||||||
#endif /* _ASM_X86_PVCLOCK_H */
|
#endif /* _ASM_X86_PVCLOCK_H */
|
||||||
|
@ -310,7 +310,6 @@ int __init kvm_setup_vsyscall_timeinfo(void)
|
|||||||
{
|
{
|
||||||
#ifdef CONFIG_X86_64
|
#ifdef CONFIG_X86_64
|
||||||
int cpu;
|
int cpu;
|
||||||
int ret;
|
|
||||||
u8 flags;
|
u8 flags;
|
||||||
struct pvclock_vcpu_time_info *vcpu_time;
|
struct pvclock_vcpu_time_info *vcpu_time;
|
||||||
unsigned int size;
|
unsigned int size;
|
||||||
@ -330,11 +329,6 @@ int __init kvm_setup_vsyscall_timeinfo(void)
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((ret = pvclock_init_vsyscall(hv_clock, size))) {
|
|
||||||
put_cpu();
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
put_cpu();
|
put_cpu();
|
||||||
|
|
||||||
kvm_clock.archdata.vclock_mode = VCLOCK_PVCLOCK;
|
kvm_clock.archdata.vclock_mode = VCLOCK_PVCLOCK;
|
||||||
|
@ -140,27 +140,3 @@ void pvclock_read_wallclock(struct pvclock_wall_clock *wall_clock,
|
|||||||
|
|
||||||
set_normalized_timespec(ts, now.tv_sec, now.tv_nsec);
|
set_normalized_timespec(ts, now.tv_sec, now.tv_nsec);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_X86_64
|
|
||||||
/*
|
|
||||||
* Initialize the generic pvclock vsyscall state. This will allocate
|
|
||||||
* a/some page(s) for the per-vcpu pvclock information, set up a
|
|
||||||
* fixmap mapping for the page(s)
|
|
||||||
*/
|
|
||||||
|
|
||||||
int __init pvclock_init_vsyscall(struct pvclock_vsyscall_time_info *i,
|
|
||||||
int size)
|
|
||||||
{
|
|
||||||
int idx;
|
|
||||||
|
|
||||||
WARN_ON (size != PVCLOCK_VSYSCALL_NR_PAGES*PAGE_SIZE);
|
|
||||||
|
|
||||||
for (idx = 0; idx <= (PVCLOCK_FIXMAP_END-PVCLOCK_FIXMAP_BEGIN); idx++) {
|
|
||||||
__set_fixmap(PVCLOCK_FIXMAP_BEGIN + idx,
|
|
||||||
__pa(i) + (idx*PAGE_SIZE),
|
|
||||||
PAGE_KERNEL_VVAR);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
Loading…
Reference in New Issue
Block a user