Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 72e12b76 authored by Zachary Amsden's avatar Zachary Amsden Committed by Linus Torvalds
Browse files

[PATCH] x86: bogus tls from gdt



The per-CPU initialization code is copying in bogus data into
thread->tls_array.  Note that it copies &per_cpu(cpu_gdt_table, cpu), not
&per_cpu(cpu_gdt_table, cpu)[GDT_ENTRY_TLS_MIN).  That is totally broken
and unnecessary.  Make the initialization explicitly NULL.

Signed-off-by: default avatarZachary Amsden <zach@vmware.com>
Acked-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 9f40a72a
Loading
Loading
Loading
Loading
+0 −6
Original line number Diff line number Diff line
@@ -607,12 +607,6 @@ void __devinit cpu_init(void)
	cpu_gdt_descr[cpu].address =
	    (unsigned long)&per_cpu(cpu_gdt_table, cpu);

	/*
	 * Set up the per-thread TLS descriptor cache:
	 */
	memcpy(thread->tls_array, &per_cpu(cpu_gdt_table, cpu),
		GDT_ENTRY_TLS_ENTRIES * 8);

	load_gdt(&cpu_gdt_descr[cpu]);
	load_idt(&idt_descr);