瀏覽代碼

[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: Zachary Amsden <zach@vmware.com>
Acked-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Zachary Amsden 19 年之前
父節點
當前提交
72e12b76fe
共有 1 個文件被更改,包括 0 次插入6 次删除
  1. 0 6
      arch/i386/kernel/cpu/common.c

+ 0 - 6
arch/i386/kernel/cpu/common.c

@@ -607,12 +607,6 @@ void __devinit cpu_init(void)
 	cpu_gdt_descr[cpu].address =
 	cpu_gdt_descr[cpu].address =
 	    (unsigned long)&per_cpu(cpu_gdt_table, cpu);
 	    (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_gdt(&cpu_gdt_descr[cpu]);
 	load_idt(&idt_descr);
 	load_idt(&idt_descr);