Skip to content

Commit b87df65

Browse files
author
Al Viro
committed
x86: unsafe_put-style macro for sigmask
regularizes things a bit Signed-off-by: Al Viro <[email protected]>
1 parent 791612e commit b87df65

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

arch/x86/kernel/signal.c

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,11 @@ do { \
203203
goto label; \
204204
} while(0);
205205

206+
#define unsafe_put_sigmask(set, frame, label) \
207+
unsafe_put_user(*(__u64 *)(set), \
208+
(__u64 __user *)&(frame)->uc.uc_sigmask, \
209+
label)
210+
206211
/*
207212
* Set up a signal frame.
208213
*/
@@ -392,8 +397,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
392397
*/
393398
unsafe_put_user(*((u64 *)&rt_retcode), (u64 *)frame->retcode, Efault);
394399
unsafe_put_sigcontext(&frame->uc.uc_mcontext, fp, regs, set, Efault);
395-
unsafe_put_user(*(__u64 *)set,
396-
(__u64 __user *)&frame->uc.uc_sigmask, Efault);
400+
unsafe_put_sigmask(set, frame, Efault);
397401
user_access_end();
398402

399403
if (copy_siginfo_to_user(&frame->info, &ksig->info))
@@ -458,7 +462,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
458462
already in userspace. */
459463
unsafe_put_user(ksig->ka.sa.sa_restorer, &frame->pretcode, Efault);
460464
unsafe_put_sigcontext(&frame->uc.uc_mcontext, fp, regs, set, Efault);
461-
unsafe_put_user(set->sig[0], &frame->uc.uc_sigmask.sig[0], Efault);
465+
unsafe_put_sigmask(set, frame, Efault);
462466
user_access_end();
463467

464468
if (ksig->ka.sa.sa_flags & SA_SIGINFO) {
@@ -537,7 +541,7 @@ static int x32_setup_rt_frame(struct ksignal *ksig,
537541
restorer = ksig->ka.sa.sa_restorer;
538542
unsafe_put_user(restorer, (unsigned long __user *)&frame->pretcode, Efault);
539543
unsafe_put_sigcontext(&frame->uc.uc_mcontext, fp, regs, set, Efault);
540-
unsafe_put_user(*(__u64 *)set, (__u64 __user *)&frame->uc.uc_sigmask, Efault);
544+
unsafe_put_sigmask(set, frame, Efault);
541545
user_access_end();
542546

543547
if (ksig->ka.sa.sa_flags & SA_SIGINFO) {

0 commit comments

Comments
 (0)