diff options
Diffstat (limited to 'arch/x86/entry/vdso/vma.c')
| -rw-r--r-- | arch/x86/entry/vdso/vma.c | 38 | 
1 files changed, 1 insertions, 37 deletions
| diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c index 5b8b556dbb12..3f9d43f26f63 100644 --- a/arch/x86/entry/vdso/vma.c +++ b/arch/x86/entry/vdso/vma.c @@ -332,40 +332,6 @@ static __init int vdso_setup(char *s)  	return 0;  }  __setup("vdso=", vdso_setup); -#endif - -#ifdef CONFIG_X86_64 -static void vgetcpu_cpu_init(void *arg) -{ -	int cpu = smp_processor_id(); -	struct desc_struct d = { }; -	unsigned long node = 0; -#ifdef CONFIG_NUMA -	node = cpu_to_node(cpu); -#endif -	if (static_cpu_has(X86_FEATURE_RDTSCP)) -		write_rdtscp_aux((node << 12) | cpu); - -	/* -	 * Store cpu number in limit so that it can be loaded -	 * quickly in user space in vgetcpu. (12 bits for the CPU -	 * and 8 bits for the node) -	 */ -	d.limit0 = cpu | ((node & 0xf) << 12); -	d.limit1 = node >> 4; -	d.type = 5;		/* RO data, expand down, accessed */ -	d.dpl = 3;		/* Visible to user code */ -	d.s = 1;		/* Not a system segment */ -	d.p = 1;		/* Present */ -	d.d = 1;		/* 32-bit */ - -	write_gdt_entry(get_cpu_gdt_rw(cpu), GDT_ENTRY_PER_CPU, &d, DESCTYPE_S); -} - -static int vgetcpu_online(unsigned int cpu) -{ -	return smp_call_function_single(cpu, vgetcpu_cpu_init, NULL, 1); -}  static int __init init_vdso(void)  { @@ -375,9 +341,7 @@ static int __init init_vdso(void)  	init_vdso_image(&vdso_image_x32);  #endif -	/* notifier priority > KVM */ -	return cpuhp_setup_state(CPUHP_AP_X86_VDSO_VMA_ONLINE, -				 "x86/vdso/vma:online", vgetcpu_online, NULL); +	return 0;  }  subsys_initcall(init_vdso);  #endif /* CONFIG_X86_64 */ |