x86/headers: Convert uses of _fpstate_ia32 to _fpstate_32
Remove uses of _fpstate_ia32 from the kernel, and move the legacy _fpstate_ia32 definition to the user-space only portion of the header. Acked-by: Mikko Rapeli <mikko.rapeli@iki.fi> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Oleg Nesterov <oleg@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: linux-kernel@vger.kernel.org Link: http://lkml.kernel.org/r/1441438363-9999-9-git-send-email-mingo@kernel.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
7bb0dc2222
commit
86e9fc3a0e
@ -234,7 +234,7 @@ static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
|
|||||||
unsigned long fx_aligned, math_size;
|
unsigned long fx_aligned, math_size;
|
||||||
|
|
||||||
sp = fpu__alloc_mathframe(sp, 1, &fx_aligned, &math_size);
|
sp = fpu__alloc_mathframe(sp, 1, &fx_aligned, &math_size);
|
||||||
*fpstate = (struct _fpstate_ia32 __user *) sp;
|
*fpstate = (struct _fpstate_32 __user *) sp;
|
||||||
if (copy_fpstate_to_sigframe(*fpstate, (void __user *)fx_aligned,
|
if (copy_fpstate_to_sigframe(*fpstate, (void __user *)fx_aligned,
|
||||||
math_size) < 0)
|
math_size) < 0)
|
||||||
return (void __user *) -1L;
|
return (void __user *) -1L;
|
||||||
|
@ -32,7 +32,7 @@ struct sigframe_ia32 {
|
|||||||
* the offset of extramask[] in the sigframe and thus prevent any
|
* the offset of extramask[] in the sigframe and thus prevent any
|
||||||
* legacy application accessing/modifying it.
|
* legacy application accessing/modifying it.
|
||||||
*/
|
*/
|
||||||
struct _fpstate_ia32 fpstate_unused;
|
struct _fpstate_32 fpstate_unused;
|
||||||
#ifdef CONFIG_IA32_EMULATION
|
#ifdef CONFIG_IA32_EMULATION
|
||||||
unsigned int extramask[_COMPAT_NSIG_WORDS-1];
|
unsigned int extramask[_COMPAT_NSIG_WORDS-1];
|
||||||
#else /* !CONFIG_IA32_EMULATION */
|
#else /* !CONFIG_IA32_EMULATION */
|
||||||
|
@ -165,8 +165,6 @@ struct _fpstate_64 {
|
|||||||
# define _fpstate _fpstate_64
|
# define _fpstate _fpstate_64
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define _fpstate_ia32 _fpstate_32
|
|
||||||
|
|
||||||
struct _header {
|
struct _header {
|
||||||
__u64 xfeatures;
|
__u64 xfeatures;
|
||||||
__u64 reserved1[2];
|
__u64 reserved1[2];
|
||||||
@ -198,6 +196,9 @@ struct _xstate {
|
|||||||
* field names but otherwise the same layout.
|
* field names but otherwise the same layout.
|
||||||
*/
|
*/
|
||||||
#ifndef __KERNEL__
|
#ifndef __KERNEL__
|
||||||
|
|
||||||
|
#define _fpstate_ia32 _fpstate_32
|
||||||
|
|
||||||
# ifdef __i386__
|
# ifdef __i386__
|
||||||
struct sigcontext {
|
struct sigcontext {
|
||||||
__u16 gs, __gsh;
|
__u16 gs, __gsh;
|
||||||
|
@ -26,7 +26,7 @@ struct sigcontext_ia32 {
|
|||||||
__u32 flags;
|
__u32 flags;
|
||||||
__u32 sp_at_signal;
|
__u32 sp_at_signal;
|
||||||
__u16 ss, __ssh;
|
__u16 ss, __ssh;
|
||||||
__u32 fpstate; /* Pointer to 'struct _fpstate_ia32' */
|
__u32 fpstate; /* Pointer to 'struct _fpstate_32' */
|
||||||
__u32 oldmask;
|
__u32 oldmask;
|
||||||
__u32 cr2;
|
__u32 cr2;
|
||||||
};
|
};
|
||||||
|
@ -56,7 +56,7 @@ static inline int save_fsave_header(struct task_struct *tsk, void __user *buf)
|
|||||||
if (use_fxsr()) {
|
if (use_fxsr()) {
|
||||||
struct xregs_state *xsave = &tsk->thread.fpu.state.xsave;
|
struct xregs_state *xsave = &tsk->thread.fpu.state.xsave;
|
||||||
struct user_i387_ia32_struct env;
|
struct user_i387_ia32_struct env;
|
||||||
struct _fpstate_ia32 __user *fp = buf;
|
struct _fpstate_32 __user *fp = buf;
|
||||||
|
|
||||||
convert_from_fxsr(&env, tsk);
|
convert_from_fxsr(&env, tsk);
|
||||||
|
|
||||||
@ -165,7 +165,7 @@ int copy_fpstate_to_sigframe(void __user *buf, void __user *buf_fx, int size)
|
|||||||
if (!static_cpu_has(X86_FEATURE_FPU))
|
if (!static_cpu_has(X86_FEATURE_FPU))
|
||||||
return fpregs_soft_get(current, NULL, 0,
|
return fpregs_soft_get(current, NULL, 0,
|
||||||
sizeof(struct user_i387_ia32_struct), NULL,
|
sizeof(struct user_i387_ia32_struct), NULL,
|
||||||
(struct _fpstate_ia32 __user *) buf) ? -1 : 1;
|
(struct _fpstate_32 __user *) buf) ? -1 : 1;
|
||||||
|
|
||||||
if (fpregs_active()) {
|
if (fpregs_active()) {
|
||||||
/* Save the live register state to the user directly. */
|
/* Save the live register state to the user directly. */
|
||||||
|
Loading…
Reference in New Issue
Block a user