]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
x86/signal: Add ABI prefixes to frame setup functions
authorBrian Gerst <brgerst@gmail.com>
Mon, 6 Jun 2022 20:38:00 +0000 (16:38 -0400)
committerBorislav Petkov <bp@suse.de>
Wed, 19 Oct 2022 07:58:49 +0000 (09:58 +0200)
Add ABI prefixes to the frame setup functions that didn't already have
them.  To avoid compiler warnings and prepare for moving these functions
to separate files, make them non-static.

Signed-off-by: Brian Gerst <brgerst@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>
Link: https://lore.kernel.org/r/20220606203802.158958-7-brgerst@gmail.com
Signed-off-by: Borislav Petkov <bp@suse.de>
arch/x86/include/asm/fpu/signal.h
arch/x86/include/asm/sighandling.h
arch/x86/kernel/signal.c

index 2f255aca5622ff596913d7fb48ca34a43eb19315..611fa41711affd2f5b2c476b3985e1dd3d0156ba 100644 (file)
 #ifdef CONFIG_X86_64
 # include <uapi/asm/sigcontext.h>
 # include <asm/user32.h>
-struct ksignal;
-int ia32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
-int ia32_setup_frame(struct ksignal *ksig, struct pt_regs *regs);
 #else
 # define user_i387_ia32_struct user_i387_struct
 # define user32_fxsr_struct    user_fxsr_struct
-# define ia32_setup_frame      __setup_frame
-# define ia32_setup_rt_frame   __setup_rt_frame
 #endif
 
 extern void convert_from_fxsr(struct user_i387_ia32_struct *env,
index c9e9784efe38a189f6b29cb20695cdb3dda7c6f8..e770c4fc47f4c5d9af4cb5ce9971c1a16d2e4946 100644 (file)
@@ -19,4 +19,9 @@ void __user *
 get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size,
             void __user **fpstate);
 
+int ia32_setup_frame(struct ksignal *ksig, struct pt_regs *regs);
+int ia32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
+int x64_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
+int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
+
 #endif /* _ASM_X86_SIGHANDLING_H */
index 890ca0523570cd6d268eb391821b15ee7ce72445..0511e050d24a032766aba6d71ca7855dd6f54096 100644 (file)
@@ -336,8 +336,7 @@ static const struct {
        0
 };
 
-static int
-__setup_frame(struct ksignal *ksig, struct pt_regs *regs)
+int ia32_setup_frame(struct ksignal *ksig, struct pt_regs *regs)
 {
        sigset_t *set = sigmask_to_save();
        struct sigframe __user *frame;
@@ -392,7 +391,7 @@ Efault:
        return -EFAULT;
 }
 
-static int __setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
+int ia32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
 {
        sigset_t *set = sigmask_to_save();
        struct rt_sigframe __user *frame;
@@ -471,7 +470,7 @@ static unsigned long frame_uc_flags(struct pt_regs *regs)
        return flags;
 }
 
-static int __setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
+int x64_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
 {
        sigset_t *set = sigmask_to_save();
        struct rt_sigframe __user *frame;
@@ -571,11 +570,9 @@ int copy_siginfo_to_user32(struct compat_siginfo __user *to,
                return x32_copy_siginfo_to_user(to, from);
        return __copy_siginfo_to_user32(to, from);
 }
-#endif /* CONFIG_X86_X32_ABI */
 
-static int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
+int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
 {
-#ifdef CONFIG_X86_X32_ABI
        compat_sigset_t *set = (compat_sigset_t *) sigmask_to_save();
        struct rt_sigframe_x32 __user *frame;
        unsigned long uc_flags;
@@ -622,15 +619,14 @@ static int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
 
        regs->cs = __USER_CS;
        regs->ss = __USER_DS;
-#endif /* CONFIG_X86_X32_ABI */
 
        return 0;
-#ifdef CONFIG_X86_X32_ABI
+
 Efault:
        user_access_end();
        return -EFAULT;
-#endif
 }
+#endif /* CONFIG_X86_X32_ABI */
 
 /*
  * Do a signal return; undo the signal stack.
@@ -770,7 +766,7 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
        } else if (is_x32_frame(ksig)) {
                return x32_setup_rt_frame(ksig, regs);
        } else {
-               return __setup_rt_frame(ksig, regs);
+               return x64_setup_rt_frame(ksig, regs);
        }
 }