diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-11 14:47:30 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-10-11 14:51:16 -0400 |
| commit | ead9d23d803ea3a73766c3cb27bf7563ac8d7266 (patch) | |
| tree | 42225fadd0d5388bf21d1658e56879e14f23e013 /arch/x86/kernel/sigframe.h | |
| parent | bf6f51e3a46f6a602853d3cbacd05864bc6e2a37 (diff) | |
| parent | 0afe2db21394820d32646a695eccf3fbfe6ab5c7 (diff) | |
Merge phase #4 (X2APIC, APIC unification, CPU identification unification) of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-v28-for-linus-phase4-D' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (186 commits)
x86, debug: print more information about unknown CPUs
x86 setup: handle more than 8 CPU flag words
x86: cpuid, fix typo
x86: move transmeta cap read to early_init_transmeta()
x86: identify_cpu_without_cpuid v2
x86: extended "flags" to show virtualization HW feature in /proc/cpuinfo
x86: move VMX MSRs to msr-index.h
x86: centaur_64.c remove duplicated setting of CONSTANT_TSC
x86: intel.c put workaround for old cpus together
x86: let intel 64-bit use intel.c
x86: make intel_64.c the same as intel.c
x86: make intel.c have 64-bit support code
x86: little clean up of intel.c/intel_64.c
x86: make 64 bit to use amd.c
x86: make amd_64 have 32 bit code
x86: make amd.c have 64bit support code
x86: merge header in amd_64.c
x86: add srat_detect_node for amd64
x86: remove duplicated force_mwait
x86: cpu make amd.c more like amd_64.c v2
...
Diffstat (limited to 'arch/x86/kernel/sigframe.h')
| -rw-r--r-- | arch/x86/kernel/sigframe.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/arch/x86/kernel/sigframe.h b/arch/x86/kernel/sigframe.h index 8b4956e800ac..cc673aa55ce4 100644 --- a/arch/x86/kernel/sigframe.h +++ b/arch/x86/kernel/sigframe.h | |||
| @@ -3,9 +3,18 @@ struct sigframe { | |||
| 3 | char __user *pretcode; | 3 | char __user *pretcode; |
| 4 | int sig; | 4 | int sig; |
| 5 | struct sigcontext sc; | 5 | struct sigcontext sc; |
| 6 | struct _fpstate fpstate; | 6 | /* |
| 7 | * fpstate is unused. fpstate is moved/allocated after | ||
| 8 | * retcode[] below. This movement allows to have the FP state and the | ||
| 9 | * future state extensions (xsave) stay together. | ||
| 10 | * And at the same time retaining the unused fpstate, prevents changing | ||
| 11 | * the offset of extramask[] in the sigframe and thus prevent any | ||
| 12 | * legacy application accessing/modifying it. | ||
| 13 | */ | ||
| 14 | struct _fpstate fpstate_unused; | ||
| 7 | unsigned long extramask[_NSIG_WORDS-1]; | 15 | unsigned long extramask[_NSIG_WORDS-1]; |
| 8 | char retcode[8]; | 16 | char retcode[8]; |
| 17 | /* fp state follows here */ | ||
| 9 | }; | 18 | }; |
| 10 | 19 | ||
| 11 | struct rt_sigframe { | 20 | struct rt_sigframe { |
| @@ -15,14 +24,15 @@ struct rt_sigframe { | |||
| 15 | void __user *puc; | 24 | void __user *puc; |
| 16 | struct siginfo info; | 25 | struct siginfo info; |
| 17 | struct ucontext uc; | 26 | struct ucontext uc; |
| 18 | struct _fpstate fpstate; | ||
| 19 | char retcode[8]; | 27 | char retcode[8]; |
| 28 | /* fp state follows here */ | ||
| 20 | }; | 29 | }; |
| 21 | #else | 30 | #else |
| 22 | struct rt_sigframe { | 31 | struct rt_sigframe { |
| 23 | char __user *pretcode; | 32 | char __user *pretcode; |
| 24 | struct ucontext uc; | 33 | struct ucontext uc; |
| 25 | struct siginfo info; | 34 | struct siginfo info; |
| 35 | /* fp state follows here */ | ||
| 26 | }; | 36 | }; |
| 27 | 37 | ||
| 28 | int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, | 38 | int ia32_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info, |
