Loading arch/m68k/kernel/signal.c +31 −31 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ asmlinkage int do_sigsuspend(struct pt_regs *regs) asmlinkage int do_rt_sigsuspend(struct pt_regs *regs) { sigset_t *unewset = (sigset_t *)regs->d1; sigset_t __user *unewset = (sigset_t __user *)regs->d1; size_t sigsetsize = (size_t)regs->d2; sigset_t saveset, newset; Loading @@ -122,8 +122,8 @@ do_rt_sigsuspend(struct pt_regs *regs) } asmlinkage int sys_sigaction(int sig, const struct old_sigaction *act, struct old_sigaction *oact) sys_sigaction(int sig, const struct old_sigaction __user *act, struct old_sigaction __user *oact) { struct k_sigaction new_ka, old_ka; int ret; Loading Loading @@ -154,7 +154,7 @@ sys_sigaction(int sig, const struct old_sigaction *act, } asmlinkage int sys_sigaltstack(const stack_t *uss, stack_t *uoss) sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) { return do_sigaltstack(uss, uoss, rdusp()); } Loading @@ -169,10 +169,10 @@ sys_sigaltstack(const stack_t *uss, stack_t *uoss) struct sigframe { char *pretcode; char __user *pretcode; int sig; int code; struct sigcontext *psc; struct sigcontext __user *psc; char retcode[8]; unsigned long extramask[_NSIG_WORDS-1]; struct sigcontext sc; Loading @@ -180,10 +180,10 @@ struct sigframe struct rt_sigframe { char *pretcode; char __user *pretcode; int sig; struct siginfo *pinfo; void *puc; struct siginfo __user *pinfo; void __user *puc; char retcode[8]; struct siginfo info; struct ucontext uc; Loading Loading @@ -248,7 +248,7 @@ static inline int restore_fpu_state(struct sigcontext *sc) #define uc_formatvec uc_filler[FPCONTEXT_SIZE/4] #define uc_extra uc_filler[FPCONTEXT_SIZE/4+1] static inline int rt_restore_fpu_state(struct ucontext *uc) static inline int rt_restore_fpu_state(struct ucontext __user *uc) { unsigned char fpstate[FPCONTEXT_SIZE]; int context_size = CPU_IS_060 ? 8 : 0; Loading @@ -267,7 +267,7 @@ static inline int rt_restore_fpu_state(struct ucontext *uc) return 0; } if (__get_user(*(long *)fpstate, (long *)&uc->uc_fpstate)) if (__get_user(*(long *)fpstate, (long __user *)&uc->uc_fpstate)) goto out; if (CPU_IS_060 ? fpstate[2] : fpstate[0]) { if (!CPU_IS_060) Loading Loading @@ -306,7 +306,7 @@ static inline int rt_restore_fpu_state(struct ucontext *uc) "m" (*fpregs.f_fpcntl)); } if (context_size && __copy_from_user(fpstate + 4, (long *)&uc->uc_fpstate + 1, __copy_from_user(fpstate + 4, (long __user *)&uc->uc_fpstate + 1, context_size)) goto out; __asm__ volatile (".chip 68k/68881\n\t" Loading @@ -319,7 +319,7 @@ static inline int rt_restore_fpu_state(struct ucontext *uc) } static inline int restore_sigcontext(struct pt_regs *regs, struct sigcontext *usc, void *fp, restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *usc, void __user *fp, int *pd0) { int fsize, formatvec; Loading Loading @@ -404,10 +404,10 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext *usc, void *fp, static inline int rt_restore_ucontext(struct pt_regs *regs, struct switch_stack *sw, struct ucontext *uc, int *pd0) struct ucontext __user *uc, int *pd0) { int fsize, temp; greg_t *gregs = uc->uc_mcontext.gregs; greg_t __user *gregs = uc->uc_mcontext.gregs; unsigned long usp; int err; Loading Loading @@ -506,7 +506,7 @@ asmlinkage int do_sigreturn(unsigned long __unused) struct switch_stack *sw = (struct switch_stack *) &__unused; struct pt_regs *regs = (struct pt_regs *) (sw + 1); unsigned long usp = rdusp(); struct sigframe *frame = (struct sigframe *)(usp - 4); struct sigframe __user *frame = (struct sigframe __user *)(usp - 4); sigset_t set; int d0; Loading Loading @@ -536,7 +536,7 @@ asmlinkage int do_rt_sigreturn(unsigned long __unused) struct switch_stack *sw = (struct switch_stack *) &__unused; struct pt_regs *regs = (struct pt_regs *) (sw + 1); unsigned long usp = rdusp(); struct rt_sigframe *frame = (struct rt_sigframe *)(usp - 4); struct rt_sigframe __user *frame = (struct rt_sigframe __user *)(usp - 4); sigset_t set; int d0; Loading Loading @@ -596,7 +596,7 @@ static inline void save_fpu_state(struct sigcontext *sc, struct pt_regs *regs) } } static inline int rt_save_fpu_state(struct ucontext *uc, struct pt_regs *regs) static inline int rt_save_fpu_state(struct ucontext __user *uc, struct pt_regs *regs) { unsigned char fpstate[FPCONTEXT_SIZE]; int context_size = CPU_IS_060 ? 8 : 0; Loading @@ -617,7 +617,7 @@ static inline int rt_save_fpu_state(struct ucontext *uc, struct pt_regs *regs) ".chip 68k" : : "m" (*fpstate) : "memory"); err |= __put_user(*(long *)fpstate, (long *)&uc->uc_fpstate); err |= __put_user(*(long *)fpstate, (long __user *)&uc->uc_fpstate); if (CPU_IS_060 ? fpstate[2] : fpstate[0]) { fpregset_t fpregs; if (!CPU_IS_060) Loading @@ -642,7 +642,7 @@ static inline int rt_save_fpu_state(struct ucontext *uc, struct pt_regs *regs) sizeof(fpregs)); } if (context_size) err |= copy_to_user((long *)&uc->uc_fpstate + 1, fpstate + 4, err |= copy_to_user((long __user *)&uc->uc_fpstate + 1, fpstate + 4, context_size); return err; } Loading @@ -662,10 +662,10 @@ static void setup_sigcontext(struct sigcontext *sc, struct pt_regs *regs, save_fpu_state(sc, regs); } static inline int rt_setup_ucontext(struct ucontext *uc, struct pt_regs *regs) static inline int rt_setup_ucontext(struct ucontext __user *uc, struct pt_regs *regs) { struct switch_stack *sw = (struct switch_stack *)regs - 1; greg_t *gregs = uc->uc_mcontext.gregs; greg_t __user *gregs = uc->uc_mcontext.gregs; int err = 0; err |= __put_user(MCONTEXT_VERSION, &uc->uc_mcontext.version); Loading Loading @@ -753,7 +753,7 @@ static inline void push_cache (unsigned long vaddr) } } static inline void * static inline void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size) { unsigned long usp; Loading @@ -766,13 +766,13 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size) if (!on_sig_stack(usp)) usp = current->sas_ss_sp + current->sas_ss_size; } return (void *)((usp - frame_size) & -8UL); return (void __user *)((usp - frame_size) & -8UL); } static void setup_frame (int sig, struct k_sigaction *ka, sigset_t *set, struct pt_regs *regs) { struct sigframe *frame; struct sigframe __user *frame; int fsize = frame_extra_sizes[regs->format]; struct sigcontext context; int err = 0; Loading Loading @@ -813,7 +813,7 @@ static void setup_frame (int sig, struct k_sigaction *ka, err |= __put_user(frame->retcode, &frame->pretcode); /* moveq #,d0; trap #0 */ err |= __put_user(0x70004e40 + (__NR_sigreturn << 16), (long *)(frame->retcode)); (long __user *)(frame->retcode)); if (err) goto give_sigsegv; Loading Loading @@ -849,7 +849,7 @@ static void setup_frame (int sig, struct k_sigaction *ka, static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info, sigset_t *set, struct pt_regs *regs) { struct rt_sigframe *frame; struct rt_sigframe __user *frame; int fsize = frame_extra_sizes[regs->format]; int err = 0; Loading Loading @@ -880,8 +880,8 @@ static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info, /* Create the ucontext. */ err |= __put_user(0, &frame->uc.uc_flags); err |= __put_user(0, &frame->uc.uc_link); err |= __put_user((void *)current->sas_ss_sp, err |= __put_user(NULL, &frame->uc.uc_link); err |= __put_user((void __user *)current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); err |= __put_user(sas_ss_flags(rdusp()), &frame->uc.uc_stack.ss_flags); Loading @@ -893,8 +893,8 @@ static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info, err |= __put_user(frame->retcode, &frame->pretcode); /* moveq #,d0; notb d0; trap #0 */ err |= __put_user(0x70004600 + ((__NR_rt_sigreturn ^ 0xff) << 16), (long *)(frame->retcode + 0)); err |= __put_user(0x4e40, (short *)(frame->retcode + 4)); (long __user *)(frame->retcode + 0)); err |= __put_user(0x4e40, (short __user *)(frame->retcode + 4)); if (err) goto give_sigsegv; Loading include/asm-m68k/signal.h +1 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,7 @@ struct sigaction { #endif /* __KERNEL__ */ typedef struct sigaltstack { void *ss_sp; void __user *ss_sp; int ss_flags; size_t ss_size; } stack_t; Loading Loading
arch/m68k/kernel/signal.c +31 −31 Original line number Diff line number Diff line Loading @@ -96,7 +96,7 @@ asmlinkage int do_sigsuspend(struct pt_regs *regs) asmlinkage int do_rt_sigsuspend(struct pt_regs *regs) { sigset_t *unewset = (sigset_t *)regs->d1; sigset_t __user *unewset = (sigset_t __user *)regs->d1; size_t sigsetsize = (size_t)regs->d2; sigset_t saveset, newset; Loading @@ -122,8 +122,8 @@ do_rt_sigsuspend(struct pt_regs *regs) } asmlinkage int sys_sigaction(int sig, const struct old_sigaction *act, struct old_sigaction *oact) sys_sigaction(int sig, const struct old_sigaction __user *act, struct old_sigaction __user *oact) { struct k_sigaction new_ka, old_ka; int ret; Loading Loading @@ -154,7 +154,7 @@ sys_sigaction(int sig, const struct old_sigaction *act, } asmlinkage int sys_sigaltstack(const stack_t *uss, stack_t *uoss) sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss) { return do_sigaltstack(uss, uoss, rdusp()); } Loading @@ -169,10 +169,10 @@ sys_sigaltstack(const stack_t *uss, stack_t *uoss) struct sigframe { char *pretcode; char __user *pretcode; int sig; int code; struct sigcontext *psc; struct sigcontext __user *psc; char retcode[8]; unsigned long extramask[_NSIG_WORDS-1]; struct sigcontext sc; Loading @@ -180,10 +180,10 @@ struct sigframe struct rt_sigframe { char *pretcode; char __user *pretcode; int sig; struct siginfo *pinfo; void *puc; struct siginfo __user *pinfo; void __user *puc; char retcode[8]; struct siginfo info; struct ucontext uc; Loading Loading @@ -248,7 +248,7 @@ static inline int restore_fpu_state(struct sigcontext *sc) #define uc_formatvec uc_filler[FPCONTEXT_SIZE/4] #define uc_extra uc_filler[FPCONTEXT_SIZE/4+1] static inline int rt_restore_fpu_state(struct ucontext *uc) static inline int rt_restore_fpu_state(struct ucontext __user *uc) { unsigned char fpstate[FPCONTEXT_SIZE]; int context_size = CPU_IS_060 ? 8 : 0; Loading @@ -267,7 +267,7 @@ static inline int rt_restore_fpu_state(struct ucontext *uc) return 0; } if (__get_user(*(long *)fpstate, (long *)&uc->uc_fpstate)) if (__get_user(*(long *)fpstate, (long __user *)&uc->uc_fpstate)) goto out; if (CPU_IS_060 ? fpstate[2] : fpstate[0]) { if (!CPU_IS_060) Loading Loading @@ -306,7 +306,7 @@ static inline int rt_restore_fpu_state(struct ucontext *uc) "m" (*fpregs.f_fpcntl)); } if (context_size && __copy_from_user(fpstate + 4, (long *)&uc->uc_fpstate + 1, __copy_from_user(fpstate + 4, (long __user *)&uc->uc_fpstate + 1, context_size)) goto out; __asm__ volatile (".chip 68k/68881\n\t" Loading @@ -319,7 +319,7 @@ static inline int rt_restore_fpu_state(struct ucontext *uc) } static inline int restore_sigcontext(struct pt_regs *regs, struct sigcontext *usc, void *fp, restore_sigcontext(struct pt_regs *regs, struct sigcontext __user *usc, void __user *fp, int *pd0) { int fsize, formatvec; Loading Loading @@ -404,10 +404,10 @@ restore_sigcontext(struct pt_regs *regs, struct sigcontext *usc, void *fp, static inline int rt_restore_ucontext(struct pt_regs *regs, struct switch_stack *sw, struct ucontext *uc, int *pd0) struct ucontext __user *uc, int *pd0) { int fsize, temp; greg_t *gregs = uc->uc_mcontext.gregs; greg_t __user *gregs = uc->uc_mcontext.gregs; unsigned long usp; int err; Loading Loading @@ -506,7 +506,7 @@ asmlinkage int do_sigreturn(unsigned long __unused) struct switch_stack *sw = (struct switch_stack *) &__unused; struct pt_regs *regs = (struct pt_regs *) (sw + 1); unsigned long usp = rdusp(); struct sigframe *frame = (struct sigframe *)(usp - 4); struct sigframe __user *frame = (struct sigframe __user *)(usp - 4); sigset_t set; int d0; Loading Loading @@ -536,7 +536,7 @@ asmlinkage int do_rt_sigreturn(unsigned long __unused) struct switch_stack *sw = (struct switch_stack *) &__unused; struct pt_regs *regs = (struct pt_regs *) (sw + 1); unsigned long usp = rdusp(); struct rt_sigframe *frame = (struct rt_sigframe *)(usp - 4); struct rt_sigframe __user *frame = (struct rt_sigframe __user *)(usp - 4); sigset_t set; int d0; Loading Loading @@ -596,7 +596,7 @@ static inline void save_fpu_state(struct sigcontext *sc, struct pt_regs *regs) } } static inline int rt_save_fpu_state(struct ucontext *uc, struct pt_regs *regs) static inline int rt_save_fpu_state(struct ucontext __user *uc, struct pt_regs *regs) { unsigned char fpstate[FPCONTEXT_SIZE]; int context_size = CPU_IS_060 ? 8 : 0; Loading @@ -617,7 +617,7 @@ static inline int rt_save_fpu_state(struct ucontext *uc, struct pt_regs *regs) ".chip 68k" : : "m" (*fpstate) : "memory"); err |= __put_user(*(long *)fpstate, (long *)&uc->uc_fpstate); err |= __put_user(*(long *)fpstate, (long __user *)&uc->uc_fpstate); if (CPU_IS_060 ? fpstate[2] : fpstate[0]) { fpregset_t fpregs; if (!CPU_IS_060) Loading @@ -642,7 +642,7 @@ static inline int rt_save_fpu_state(struct ucontext *uc, struct pt_regs *regs) sizeof(fpregs)); } if (context_size) err |= copy_to_user((long *)&uc->uc_fpstate + 1, fpstate + 4, err |= copy_to_user((long __user *)&uc->uc_fpstate + 1, fpstate + 4, context_size); return err; } Loading @@ -662,10 +662,10 @@ static void setup_sigcontext(struct sigcontext *sc, struct pt_regs *regs, save_fpu_state(sc, regs); } static inline int rt_setup_ucontext(struct ucontext *uc, struct pt_regs *regs) static inline int rt_setup_ucontext(struct ucontext __user *uc, struct pt_regs *regs) { struct switch_stack *sw = (struct switch_stack *)regs - 1; greg_t *gregs = uc->uc_mcontext.gregs; greg_t __user *gregs = uc->uc_mcontext.gregs; int err = 0; err |= __put_user(MCONTEXT_VERSION, &uc->uc_mcontext.version); Loading Loading @@ -753,7 +753,7 @@ static inline void push_cache (unsigned long vaddr) } } static inline void * static inline void __user * get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size) { unsigned long usp; Loading @@ -766,13 +766,13 @@ get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, size_t frame_size) if (!on_sig_stack(usp)) usp = current->sas_ss_sp + current->sas_ss_size; } return (void *)((usp - frame_size) & -8UL); return (void __user *)((usp - frame_size) & -8UL); } static void setup_frame (int sig, struct k_sigaction *ka, sigset_t *set, struct pt_regs *regs) { struct sigframe *frame; struct sigframe __user *frame; int fsize = frame_extra_sizes[regs->format]; struct sigcontext context; int err = 0; Loading Loading @@ -813,7 +813,7 @@ static void setup_frame (int sig, struct k_sigaction *ka, err |= __put_user(frame->retcode, &frame->pretcode); /* moveq #,d0; trap #0 */ err |= __put_user(0x70004e40 + (__NR_sigreturn << 16), (long *)(frame->retcode)); (long __user *)(frame->retcode)); if (err) goto give_sigsegv; Loading Loading @@ -849,7 +849,7 @@ static void setup_frame (int sig, struct k_sigaction *ka, static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info, sigset_t *set, struct pt_regs *regs) { struct rt_sigframe *frame; struct rt_sigframe __user *frame; int fsize = frame_extra_sizes[regs->format]; int err = 0; Loading Loading @@ -880,8 +880,8 @@ static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info, /* Create the ucontext. */ err |= __put_user(0, &frame->uc.uc_flags); err |= __put_user(0, &frame->uc.uc_link); err |= __put_user((void *)current->sas_ss_sp, err |= __put_user(NULL, &frame->uc.uc_link); err |= __put_user((void __user *)current->sas_ss_sp, &frame->uc.uc_stack.ss_sp); err |= __put_user(sas_ss_flags(rdusp()), &frame->uc.uc_stack.ss_flags); Loading @@ -893,8 +893,8 @@ static void setup_rt_frame (int sig, struct k_sigaction *ka, siginfo_t *info, err |= __put_user(frame->retcode, &frame->pretcode); /* moveq #,d0; notb d0; trap #0 */ err |= __put_user(0x70004600 + ((__NR_rt_sigreturn ^ 0xff) << 16), (long *)(frame->retcode + 0)); err |= __put_user(0x4e40, (short *)(frame->retcode + 4)); (long __user *)(frame->retcode + 0)); err |= __put_user(0x4e40, (short __user *)(frame->retcode + 4)); if (err) goto give_sigsegv; Loading
include/asm-m68k/signal.h +1 −1 Original line number Diff line number Diff line Loading @@ -144,7 +144,7 @@ struct sigaction { #endif /* __KERNEL__ */ typedef struct sigaltstack { void *ss_sp; void __user *ss_sp; int ss_flags; size_t ss_size; } stack_t; Loading