Skip to content

Commit c461ae3

Browse files
Brian Gerstsuryasaimadhu
authored andcommitted
x86/signal: Add ABI prefixes to frame setup functions
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>
1 parent 9c36e59 commit c461ae3

3 files changed

Lines changed: 12 additions & 16 deletions

File tree

arch/x86/include/asm/fpu/signal.h

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,9 @@
1313
#ifdef CONFIG_X86_64
1414
# include <uapi/asm/sigcontext.h>
1515
# include <asm/user32.h>
16-
struct ksignal;
17-
int ia32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
18-
int ia32_setup_frame(struct ksignal *ksig, struct pt_regs *regs);
1916
#else
2017
# define user_i387_ia32_struct user_i387_struct
2118
# define user32_fxsr_struct user_fxsr_struct
22-
# define ia32_setup_frame __setup_frame
23-
# define ia32_setup_rt_frame __setup_rt_frame
2419
#endif
2520

2621
extern void convert_from_fxsr(struct user_i387_ia32_struct *env,

arch/x86/include/asm/sighandling.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,9 @@ void __user *
1919
get_sigframe(struct ksignal *ksig, struct pt_regs *regs, size_t frame_size,
2020
void __user **fpstate);
2121

22+
int ia32_setup_frame(struct ksignal *ksig, struct pt_regs *regs);
23+
int ia32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
24+
int x64_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
25+
int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs);
26+
2227
#endif /* _ASM_X86_SIGHANDLING_H */

arch/x86/kernel/signal.c

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -336,8 +336,7 @@ static const struct {
336336
0
337337
};
338338

339-
static int
340-
__setup_frame(struct ksignal *ksig, struct pt_regs *regs)
339+
int ia32_setup_frame(struct ksignal *ksig, struct pt_regs *regs)
341340
{
342341
sigset_t *set = sigmask_to_save();
343342
struct sigframe __user *frame;
@@ -392,7 +391,7 @@ __setup_frame(struct ksignal *ksig, struct pt_regs *regs)
392391
return -EFAULT;
393392
}
394393

395-
static int __setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
394+
int ia32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
396395
{
397396
sigset_t *set = sigmask_to_save();
398397
struct rt_sigframe __user *frame;
@@ -471,7 +470,7 @@ static unsigned long frame_uc_flags(struct pt_regs *regs)
471470
return flags;
472471
}
473472

474-
static int __setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
473+
int x64_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
475474
{
476475
sigset_t *set = sigmask_to_save();
477476
struct rt_sigframe __user *frame;
@@ -571,11 +570,9 @@ int copy_siginfo_to_user32(struct compat_siginfo __user *to,
571570
return x32_copy_siginfo_to_user(to, from);
572571
return __copy_siginfo_to_user32(to, from);
573572
}
574-
#endif /* CONFIG_X86_X32_ABI */
575573

576-
static int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
574+
int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
577575
{
578-
#ifdef CONFIG_X86_X32_ABI
579576
compat_sigset_t *set = (compat_sigset_t *) sigmask_to_save();
580577
struct rt_sigframe_x32 __user *frame;
581578
unsigned long uc_flags;
@@ -622,15 +619,14 @@ static int x32_setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
622619

623620
regs->cs = __USER_CS;
624621
regs->ss = __USER_DS;
625-
#endif /* CONFIG_X86_X32_ABI */
626622

627623
return 0;
628-
#ifdef CONFIG_X86_X32_ABI
624+
629625
Efault:
630626
user_access_end();
631627
return -EFAULT;
632-
#endif
633628
}
629+
#endif /* CONFIG_X86_X32_ABI */
634630

635631
/*
636632
* Do a signal return; undo the signal stack.
@@ -770,7 +766,7 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
770766
} else if (is_x32_frame(ksig)) {
771767
return x32_setup_rt_frame(ksig, regs);
772768
} else {
773-
return __setup_rt_frame(ksig, regs);
769+
return x64_setup_rt_frame(ksig, regs);
774770
}
775771
}
776772

0 commit comments

Comments
 (0)