powerpc: Use sigsp()
authorRichard Weinberger <richard@nod.at>
Wed, 5 Mar 2014 15:25:55 +0000 (16:25 +0100)
committerRichard Weinberger <richard@sigma-star.at>
Wed, 6 Aug 2014 11:04:32 +0000 (13:04 +0200)
Use sigsp() instead of the open coded variant.

Signed-off-by: Richard Weinberger <richard@nod.at>
arch/powerpc/kernel/signal.c
arch/powerpc/kernel/signal_32.c
arch/powerpc/kernel/signal_64.c

index aa9b048c476632853ecdeba6908d3e5817afb9fc..cf8c7e4e0b21bb519f0098bd5a72622233dcd358 100644 (file)
@@ -31,20 +31,14 @@ int show_unhandled_signals = 1;
 /*
  * Allocate space for the signal frame
  */
-void __user * get_sigframe(struct k_sigaction *ka, unsigned long sp,
+void __user *get_sigframe(struct ksignal *ksig, unsigned long sp,
                           size_t frame_size, int is_32)
 {
         unsigned long oldsp, newsp;
 
         /* Default to using normal stack */
         oldsp = get_clean_sp(sp, is_32);
-
-       /* Check for alt stack */
-       if ((ka->sa.sa_flags & SA_ONSTACK) &&
-           current->sas_ss_size && !on_sig_stack(oldsp))
-               oldsp = (current->sas_ss_sp + current->sas_ss_size);
-
-       /* Get aligned frame */
+       oldsp = sigsp(oldsp, ksig);
        newsp = (oldsp - frame_size) & ~0xFUL;
 
        /* Check access */
index aa0af8853d594ba75aca19abdafde6768e444868..b171001698ff32f256e4298c9f7fdfda2ddeef39 100644 (file)
@@ -994,7 +994,7 @@ int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset,
 
        /* Set up Signal Frame */
        /* Put a Real Time Context onto stack */
-       rt_sf = get_sigframe(&ksig->ka, get_tm_stackpointer(regs), sizeof(*rt_sf), 1);
+       rt_sf = get_sigframe(ksig, get_tm_stackpointer(regs), sizeof(*rt_sf), 1);
        addr = rt_sf;
        if (unlikely(rt_sf == NULL))
                goto badframe;
@@ -1417,7 +1417,7 @@ int handle_signal32(struct ksignal *ksig, sigset_t *oldset, struct pt_regs *regs
        unsigned long tramp;
 
        /* Set up Signal Frame */
-       frame = get_sigframe(&ksig->ka, get_tm_stackpointer(regs), sizeof(*frame), 1);
+       frame = get_sigframe(ksig, get_tm_stackpointer(regs), sizeof(*frame), 1);
        if (unlikely(frame == NULL))
                goto badframe;
        sc = (struct sigcontext __user *) &frame->sctx;
index 115d11041cf70768d0ee7ea8470426260513f280..2cb0c94cafa5ef9e883b33136db22dcad1a7728b 100644 (file)
@@ -714,7 +714,7 @@ int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs
        unsigned long newsp = 0;
        long err = 0;
 
-       frame = get_sigframe(&ksig->ka, get_tm_stackpointer(regs), sizeof(*frame), 0);
+       frame = get_sigframe(ksig, get_tm_stackpointer(regs), sizeof(*frame), 0);
        if (unlikely(frame == NULL))
                goto badframe;