lkml.org 
[lkml]   [2015]   [Sep]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 13/15] x86/headers: Convert sigcontext_ia32 uses to sigcontext_32
    Date
    Use the new name in kernel code, and move the old name to the
    user-space-only legacy section of the UAPI header.

    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: Mikko Rapeli <mikko.rapeli@iki.fi>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Ingo Molnar <mingo@kernel.org>
    ---
    arch/x86/ia32/ia32_signal.c | 4 ++--
    arch/x86/include/asm/ia32.h | 2 +-
    arch/x86/include/asm/sigframe.h | 2 +-
    arch/x86/include/uapi/asm/sigcontext.h | 12 +++++++++---
    arch/x86/kernel/asm-offsets.c | 18 +++++++++---------
    5 files changed, 22 insertions(+), 16 deletions(-)

    diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
    index 805d76b21d95..26d33633e2b1 100644
    --- a/arch/x86/ia32/ia32_signal.c
    +++ b/arch/x86/ia32/ia32_signal.c
    @@ -161,7 +161,7 @@ int copy_siginfo_from_user32(siginfo_t *to, compat_siginfo_t __user *from)
    }

    static int ia32_restore_sigcontext(struct pt_regs *regs,
    - struct sigcontext_ia32 __user *sc)
    + struct sigcontext_32 __user *sc)
    {
    unsigned int tmpflags, err = 0;
    void __user *buf;
    @@ -263,7 +263,7 @@ asmlinkage long sys32_rt_sigreturn(void)
    * Set up a signal frame.
    */

    -static int ia32_setup_sigcontext(struct sigcontext_ia32 __user *sc,
    +static int ia32_setup_sigcontext(struct sigcontext_32 __user *sc,
    void __user *fpstate,
    struct pt_regs *regs, unsigned int mask)
    {
    diff --git a/arch/x86/include/asm/ia32.h b/arch/x86/include/asm/ia32.h
    index d0e8e0141041..ace08ed8fee3 100644
    --- a/arch/x86/include/asm/ia32.h
    +++ b/arch/x86/include/asm/ia32.h
    @@ -18,7 +18,7 @@ struct ucontext_ia32 {
    unsigned int uc_flags;
    unsigned int uc_link;
    compat_stack_t uc_stack;
    - struct sigcontext_ia32 uc_mcontext;
    + struct sigcontext_32 uc_mcontext;
    compat_sigset_t uc_sigmask; /* mask last for extensibility */
    };

    diff --git a/arch/x86/include/asm/sigframe.h b/arch/x86/include/asm/sigframe.h
    index cfb22e3105f1..cb8f917248cb 100644
    --- a/arch/x86/include/asm/sigframe.h
    +++ b/arch/x86/include/asm/sigframe.h
    @@ -21,7 +21,7 @@
    struct sigframe_ia32 {
    u32 pretcode;
    int sig;
    - struct sigcontext_ia32 sc;
    + struct sigcontext_32 sc;
    /*
    * fpstate is unused. fpstate is moved/allocated after
    * retcode[] below. This movement allows to have the FP state and the
    diff --git a/arch/x86/include/uapi/asm/sigcontext.h b/arch/x86/include/uapi/asm/sigcontext.h
    index 592bfafd5cb2..4411e6a8f8e7 100644
    --- a/arch/x86/include/uapi/asm/sigcontext.h
    +++ b/arch/x86/include/uapi/asm/sigcontext.h
    @@ -190,6 +190,9 @@ struct _xstate {
    /* New processor state extensions go here: */
    };

    +/*
    + * The 32-bit signal frame:
    + */
    struct sigcontext_32 {
    __u16 gs, __gsh;
    __u16 fs, __fsh;
    @@ -223,8 +226,9 @@ struct sigcontext_32 {
    __u32 cr2;
    };

    -#define sigcontext_ia32 sigcontext_32
    -
    +/*
    + * The 64-bit signal frame:
    + */
    struct sigcontext_64 {
    __u64 r8;
    __u64 r9;
    @@ -282,7 +286,9 @@ struct sigcontext_64 {
    */
    #ifndef __KERNEL__

    -#define _fpstate_ia32 _fpstate_32
    +#define _fpstate_ia32 _fpstate_32
    +#define sigcontext_ia32 sigcontext_32
    +

    # ifdef __i386__
    struct sigcontext {
    diff --git a/arch/x86/kernel/asm-offsets.c b/arch/x86/kernel/asm-offsets.c
    index 8e3d22a1af94..bc9f4afa889a 100644
    --- a/arch/x86/kernel/asm-offsets.c
    +++ b/arch/x86/kernel/asm-offsets.c
    @@ -43,15 +43,15 @@ void common(void) {

    #if defined(CONFIG_X86_32) || defined(CONFIG_IA32_EMULATION)
    BLANK();
    - OFFSET(IA32_SIGCONTEXT_ax, sigcontext_ia32, ax);
    - OFFSET(IA32_SIGCONTEXT_bx, sigcontext_ia32, bx);
    - OFFSET(IA32_SIGCONTEXT_cx, sigcontext_ia32, cx);
    - OFFSET(IA32_SIGCONTEXT_dx, sigcontext_ia32, dx);
    - OFFSET(IA32_SIGCONTEXT_si, sigcontext_ia32, si);
    - OFFSET(IA32_SIGCONTEXT_di, sigcontext_ia32, di);
    - OFFSET(IA32_SIGCONTEXT_bp, sigcontext_ia32, bp);
    - OFFSET(IA32_SIGCONTEXT_sp, sigcontext_ia32, sp);
    - OFFSET(IA32_SIGCONTEXT_ip, sigcontext_ia32, ip);
    + OFFSET(IA32_SIGCONTEXT_ax, sigcontext_32, ax);
    + OFFSET(IA32_SIGCONTEXT_bx, sigcontext_32, bx);
    + OFFSET(IA32_SIGCONTEXT_cx, sigcontext_32, cx);
    + OFFSET(IA32_SIGCONTEXT_dx, sigcontext_32, dx);
    + OFFSET(IA32_SIGCONTEXT_si, sigcontext_32, si);
    + OFFSET(IA32_SIGCONTEXT_di, sigcontext_32, di);
    + OFFSET(IA32_SIGCONTEXT_bp, sigcontext_32, bp);
    + OFFSET(IA32_SIGCONTEXT_sp, sigcontext_32, sp);
    + OFFSET(IA32_SIGCONTEXT_ip, sigcontext_32, ip);

    BLANK();
    OFFSET(TI_sysenter_return, thread_info, sysenter_return);
    --
    2.1.4


    \
     
     \ /
      Last update: 2015-09-05 09:41    [W:4.235 / U:0.384 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site