Index: sys/powerpc/powerpc/exec_machdep.c =================================================================== --- sys/powerpc/powerpc/exec_machdep.c (revision 367651) +++ sys/powerpc/powerpc/exec_machdep.c (working copy) @@ -334,8 +334,6 @@ if (error != 0) return (error); - kern_sigprocmask(td, SIG_SETMASK, &uc.uc_sigmask, NULL, 0); - /* * Save FPU state if needed. User may have changed it on * signal handler @@ -343,6 +341,9 @@ if (uc.uc_mcontext.mc_srr1 & PSL_FP) save_fpu(td); + /* Restore signal mask. */ + kern_sigprocmask(td, SIG_SETMASK, &uc.uc_sigmask, NULL, 0); + CTR3(KTR_SIG, "sigreturn: return td=%p pc=%#x sp=%#x", td, uc.uc_mcontext.mc_srr0, uc.uc_mcontext.mc_gpr[1]); @@ -836,8 +837,6 @@ if (error != 0) return (error); - kern_sigprocmask(td, SIG_SETMASK, &uc.uc_sigmask, NULL, 0); - /* * Save FPU state if needed. User may have changed it on * signal handler @@ -845,6 +844,8 @@ if (uc.uc_mcontext.mc_srr1 & PSL_FP) save_fpu(td); + /* Restore signal mask. */ + kern_sigprocmask(td, SIG_SETMASK, &uc.uc_sigmask, NULL, 0); CTR3(KTR_SIG, "sigreturn: return td=%p pc=%#x sp=%#x", td, uc.uc_mcontext.mc_srr0, uc.uc_mcontext.mc_gpr[1]);