![]() | |||||||||||||||
Messages in this thread Patch in this message |
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> Index: linux-2.6.14-rc1/arch/i386/kernel/cpu/common.c =================================================================== --- linux-2.6.14-rc1.orig/arch/i386/kernel/cpu/common.c 2005-09-20 14:49:10.000000000 -0700 +++ linux-2.6.14-rc1/arch/i386/kernel/cpu/common.c 2005-09-20 14:49:41.000000000 -0700 @@ -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); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ | ||||||||||||||
| Last update: 2005-09-22 07:40 [from the cache] ©2003-2008 | |||||||||||||||