From: Ingo Molnar Date: Sat, 6 Sep 2008 12:53:01 +0000 (+0200) Subject: Merge branches 'x86/tracehook', 'x86/xsave' and 'x86/prototypes' into x86/signal X-Git-Tag: v2.6.28-rc1~699^2^2^2~4^2~12 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=046fd53773cd87125f799b00422e487bf1428d38;p=linux.git Merge branches 'x86/tracehook', 'x86/xsave' and 'x86/prototypes' into x86/signal Conflicts: arch/x86/kernel/signal_64.c Signed-off-by: Ingo Molnar --- 046fd53773cd87125f799b00422e487bf1428d38 diff --cc arch/x86/Kconfig index ed92864d1325,ebfd7ff82ade,0a80d6a5e9f1,ac2fb0641a04..6b8fc9003ecc --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@@@@ -586,11 -587,11 -585,17 -585,17 +587,11 @@@@@ config MAXSM Configure maximum number of CPUS and NUMA Nodes for this architecture. If unsure, say N. --if MAXSMP - config NR_CPUS - int - default "4096" - endif - - if !MAXSMP config NR_CPUS - int - default "4096" -endif - -if !MAXSMP -config NR_CPUS -- int "Maximum number of CPUs (2-4096)" -- range 2 4096 ++ int "Maximum number of CPUs (2-512)" if !MAXSMP ++ range 2 512 depends on SMP ++ default "4096" if MAXSMP default "32" if X86_NUMAQ || X86_SUMMIT || X86_BIGSMP || X86_ES7000 default "8" help diff --cc arch/x86/kernel/signal_64.c index ca316b5b742c,1e1933892b4f,6c581698ab56,02b02583f5b5..2f28252d2d26 --- a/arch/x86/kernel/signal_64.c +++ b/arch/x86/kernel/signal_64.c @@@@@ -26,6 -27,7 -26,6 -26,7 +27,8 @@@@@ #include #include #include + ++#include +++ #include #include "sigframe.h" #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) @@@@@ -53,69 -55,69 -53,6 -54,60 +56,6 @@@@@ sys_sigaltstack(const stack_t __user *u return do_sigaltstack(uss, uoss, regs->sp); } -- -/* -- - * Signal frame handlers. -- - */ -- - -- -static inline int save_i387(struct _fpstate __user *buf) -- -{ -- - struct task_struct *tsk = current; -- - int err = 0; -- - -- - BUILD_BUG_ON(sizeof(struct user_i387_struct) != -- - sizeof(tsk->thread.xstate->fxsave)); -- - -- - if ((unsigned long)buf % 16) -- - printk("save_i387: bad fpstate %p\n", buf); -- - -- - if (!used_math()) -- - return 0; -- - clear_used_math(); /* trigger finit */ -- - if (task_thread_info(tsk)->status & TS_USEDFPU) { -- - err = save_i387_checking((struct i387_fxsave_struct __user *) -- - buf); -- - if (err) -- - return err; -- - task_thread_info(tsk)->status &= ~TS_USEDFPU; -- - stts(); -- - } else { -- - if (__copy_to_user(buf, &tsk->thread.xstate->fxsave, -- - sizeof(struct i387_fxsave_struct))) -- - return -1; -- - } -- - return 1; -- -} -- - -- -/* -- - * This restores directly out of user space. Exceptions are handled. -- - */ -- -static inline int restore_i387(struct _fpstate __user *buf) -- -{ -- - struct task_struct *tsk = current; -- - int err; -- - -- - if (!used_math()) { -- - err = init_fpu(tsk); -- - if (err) -- - return err; -- - } -- - -- - if (!(task_thread_info(current)->status & TS_USEDFPU)) { -- - clts(); -- - task_thread_info(current)->status |= TS_USEDFPU; -- } -- err = restore_fpu_checking((__force struct i387_fxsave_struct *)buf); -- if (unlikely(err)) { -- /* -- * Encountered an error while doing the restore from the -- * user buffer, clear the fpu state. -- */ -- clear_fpu(tsk); -- clear_used_math(); -- - } -- return err; - return restore_fpu_checking((__force struct i387_fxsave_struct *)buf); -- -} -- - /* * Do a signal return; undo the signal stack. */ diff --cc include/asm-x86/apic.h index 133c998161ca,133c998161ca,bc2e364bdb10,519ad65708e7..1311c82b165b --- a/include/asm-x86/apic.h +++ b/include/asm-x86/apic.h @@@@@ -54,8 -54,8 -54,8 -54,13 +54,13 @@@@@ extern int disable_apic #endif extern int is_vsmp_box(void); +++ extern void xapic_wait_icr_idle(void); +++ extern u32 safe_xapic_wait_icr_idle(void); +++ extern u64 xapic_icr_read(void); +++ extern void xapic_icr_write(u32, u32); +++ extern int setup_profiling_timer(unsigned int); -- -static inline void native_apic_write(unsigned long reg, u32 v) ++ +static inline void native_apic_mem_write(u32 reg, u32 v) { volatile u32 *addr = (volatile u32 *)(APIC_BASE + reg); diff --cc include/asm-x86/traps.h index a4b65a71bd66,a4b65a71bd66,2a891a704719,b60fab546da7..2ccebc6fb0b0 --- a/include/asm-x86/traps.h +++ b/include/asm-x86/traps.h @@@@@ -62,5 -62,5 -62,5 -64,7 +64,7 @@@@@ asmlinkage void do_coprocessor_error(st asmlinkage void do_simd_coprocessor_error(struct pt_regs *); asmlinkage void do_spurious_interrupt_bug(struct pt_regs *); +++ asmlinkage void do_page_fault(struct pt_regs *regs, unsigned long error_code); +++ #endif /* CONFIG_X86_32 */ -- -#endif /* _ASM_X86_TRAPS_H */ ++ +#endif /* ASM_X86__TRAPS_H */