(Note: Patch also attached because the inline version is certain to get line wrapped.) Move some code unrelated to any dealing with hardware bugs from i386's bugs.h to a more logical place. Signed-off-by: Jan Beulich <[email protected]> diff -Npru 2.6.13/arch/i386/kernel/traps.c 2.6.13-i386-fxsr/arch/i386/kernel/traps.c --- 2.6.13/arch/i386/kernel/traps.c 2005-08-29 01:41:01.000000000 +0200 +++ 2.6.13-i386-fxsr/arch/i386/kernel/traps.c 2005-09-07 11:46:35.000000000 +0200 @@ -1098,6 +1098,24 @@ void __init trap_init(void) #endif set_trap_gate(19,&simd_coprocessor_error); + if (cpu_has_fxsr) { + /* + * Verify that the FXSAVE/FXRSTOR data will be 16-byte aligned. + */ + struct fxsrAlignAssert { + int _:!(offsetof(struct task_struct, thread.i387.fxsave) & 15); + }; + + printk(KERN_INFO "Enabling fast FPU save and restore... "); + set_in_cr4(X86_CR4_OSFXSR); + printk("done.\n"); + } + if (cpu_has_xmm) { + printk(KERN_INFO "Enabling unmasked SIMD FPU exception support... "); + set_in_cr4(X86_CR4_OSXMMEXCPT); + printk("done.\n"); + } + set_system_gate(SYSCALL_VECTOR,&system_call); /* diff -Npru 2.6.13/include/asm-i386/bugs.h 2.6.13-i386-fxsr/include/asm-i386/bugs.h --- 2.6.13/include/asm-i386/bugs.h 2005-08-29 01:41:01.000000000 +0200 +++ 2.6.13-i386-fxsr/include/asm-i386/bugs.h 2005-09-01 11:32:11.000000000 +0200 @@ -8,9 +8,6 @@ * <[email protected]> * - Channing Corn (tests & fixes), * - Andrew D. Balsa (code cleanup). - * - * Pentium III FXSR, SSE support - * Gareth Hughes <[email protected]>, May 2000 */ /* @@ -76,25 +73,7 @@ static void __init check_fpu(void) return; } -/* Enable FXSR and company _before_ testing for FP problems. */ - /* - * Verify that the FXSAVE/FXRSTOR data will be 16-byte aligned. - */ - if (offsetof(struct task_struct, thread.i387.fxsave) & 15) { - extern void __buggy_fxsr_alignment(void); - __buggy_fxsr_alignment(); - } - if (cpu_has_fxsr) { - printk(KERN_INFO "Enabling fast FPU save and restore... "); - set_in_cr4(X86_CR4_OSFXSR); - printk("done.\n"); - } - if (cpu_has_xmm) { - printk(KERN_INFO "Enabling unmasked SIMD FPU exception support... "); - set_in_cr4(X86_CR4_OSXMMEXCPT); - printk("done.\n"); - } - +/* trap_init() enabled FXSR and company _before_ testing for FP problems here. */ /* Test for the divl bug.. */ __asm__("fninit\n\t" "fldl %1\n\t"
Attachment:
linux-2.6.13-i386-fxsr.patch
Description: Binary data
- Follow-Ups:
- Re: [PATCH] move i386's enabling of fxsr and xmmxcpt
- From: Zwane Mwaikambo <[email protected]>
- Re: [PATCH] move i386's enabling of fxsr and xmmxcpt
- Prev by Date: Re: [PATCH] rmmod notifier chain
- Next by Date: Re: [PATCH] add stricmp
- Previous by thread: [PATCH 2.6.13] ide: ide-dma.c should always check hwif->cds before hwif->cds->foo
- Next by thread: Re: [PATCH] move i386's enabling of fxsr and xmmxcpt
- Index(es):