Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mn10300: Use sigsp()

Use sigsp() instead of the open coded variant.

Signed-off-by: Richard Weinberger <richard@nod.at>

authored by

Richard Weinberger and committed by
Richard Weinberger
a8040ff8 7c4f5635

+4 -13
+4 -13
arch/mn10300/kernel/signal.c
··· 186 186 /* 187 187 * determine which stack to use.. 188 188 */ 189 - static inline void __user *get_sigframe(struct k_sigaction *ka, 189 + static inline void __user *get_sigframe(struct ksignal *ksig, 190 190 struct pt_regs *regs, 191 191 size_t frame_size) 192 192 { 193 - unsigned long sp; 194 - 195 - /* default to using normal stack */ 196 - sp = regs->sp; 197 - 198 - /* this is the X/Open sanctioned signal stack switching. */ 199 - if (ka->sa.sa_flags & SA_ONSTACK) { 200 - if (sas_ss_flags(sp) == 0) 201 - sp = current->sas_ss_sp + current->sas_ss_size; 202 - } 193 + unsigned long sp = sigsp(regs->sp, ksig); 203 194 204 195 return (void __user *) ((sp - frame_size) & ~7UL); 205 196 } ··· 204 213 struct sigframe __user *frame; 205 214 int rsig, sig = ksig->sig; 206 215 207 - frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); 216 + frame = get_sigframe(ksig, regs, sizeof(*frame)); 208 217 209 218 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 210 219 return -EFAULT; ··· 272 281 struct rt_sigframe __user *frame; 273 282 int rsig, sig = ksig->sig; 274 283 275 - frame = get_sigframe(&ksig->ka, regs, sizeof(*frame)); 284 + frame = get_sigframe(ksig, regs, sizeof(*frame)); 276 285 277 286 if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame))) 278 287 return -EFAULT;