Commit d7637891 authored by Anton Blanchard's avatar Anton Blanchard

ppc64: update for signal changes

parent 4da38fc7
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
static struct fs_struct init_fs = INIT_FS; static struct fs_struct init_fs = INIT_FS;
static struct files_struct init_files = INIT_FILES; static struct files_struct init_files = INIT_FILES;
static struct signal_struct init_signals = INIT_SIGNALS(init_signals); static struct signal_struct init_signals = INIT_SIGNALS(init_signals);
static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand);
struct mm_struct init_mm = INIT_MM(init_mm); struct mm_struct init_mm = INIT_MM(init_mm);
/* /*
......
...@@ -108,11 +108,11 @@ long sys_sigsuspend(old_sigset_t mask, int p2, int p3, int p4, int p6, int p7, ...@@ -108,11 +108,11 @@ long sys_sigsuspend(old_sigset_t mask, int p2, int p3, int p4, int p6, int p7,
sigset_t saveset; sigset_t saveset;
mask &= _BLOCKABLE; mask &= _BLOCKABLE;
spin_lock_irq(&current->sig->siglock); spin_lock_irq(&current->sighand->siglock);
saveset = current->blocked; saveset = current->blocked;
siginitset(&current->blocked, mask); siginitset(&current->blocked, mask);
recalc_sigpending(); recalc_sigpending();
spin_unlock_irq(&current->sig->siglock); spin_unlock_irq(&current->sighand->siglock);
regs->result = -EINTR; regs->result = -EINTR;
regs->gpr[3] = EINTR; regs->gpr[3] = EINTR;
...@@ -349,10 +349,10 @@ long sys_sigreturn(unsigned long r3, unsigned long r4, unsigned long r5, ...@@ -349,10 +349,10 @@ long sys_sigreturn(unsigned long r3, unsigned long r4, unsigned long r5,
set.sig[1] = sigctx._unused[3]; set.sig[1] = sigctx._unused[3];
#endif #endif
sigdelsetmask(&set, ~_BLOCKABLE); sigdelsetmask(&set, ~_BLOCKABLE);
spin_lock_irq(&current->sig->siglock); spin_lock_irq(&current->sighand->siglock);
current->blocked = set; current->blocked = set;
recalc_sigpending(); recalc_sigpending();
spin_unlock_irq(&current->sig->siglock); spin_unlock_irq(&current->sighand->siglock);
if (regs->msr & MSR_FP) if (regs->msr & MSR_FP)
giveup_fpu(current); giveup_fpu(current);
...@@ -446,7 +446,7 @@ static void handle_signal(unsigned long sig, siginfo_t *info, sigset_t *oldset, ...@@ -446,7 +446,7 @@ static void handle_signal(unsigned long sig, siginfo_t *info, sigset_t *oldset,
{ {
struct sigcontext *sc; struct sigcontext *sc;
struct rt_sigframe *rt_sf; struct rt_sigframe *rt_sf;
struct k_sigaction *ka = &current->sig->action[sig-1]; struct k_sigaction *ka = &current->sighand->action[sig-1];
if (regs->trap == 0x0C00 /* System Call! */ if (regs->trap == 0x0C00 /* System Call! */
&& ((int)regs->result == -ERESTARTNOHAND || && ((int)regs->result == -ERESTARTNOHAND ||
...@@ -553,7 +553,7 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs) ...@@ -553,7 +553,7 @@ int do_signal(sigset_t *oldset, struct pt_regs *regs)
signr = get_signal_to_deliver(&info, regs); signr = get_signal_to_deliver(&info, regs);
if (signr > 0) { if (signr > 0) {
ka = &current->sig->action[signr-1]; ka = &current->sighand->action[signr-1];
if ((ka->sa.sa_flags & SA_ONSTACK) if ((ka->sa.sa_flags & SA_ONSTACK)
&& (!on_sig_stack(regs->gpr[1]))) && (!on_sig_stack(regs->gpr[1])))
newsp = (current->sas_ss_sp + current->sas_ss_size); newsp = (current->sas_ss_sp + current->sas_ss_size);
......
...@@ -904,7 +904,7 @@ static void handle_signal32(unsigned long sig, siginfo_t *info, ...@@ -904,7 +904,7 @@ static void handle_signal32(unsigned long sig, siginfo_t *info,
{ {
struct sigcontext32 *sc; struct sigcontext32 *sc;
struct rt_sigframe_32 *rt_sf; struct rt_sigframe_32 *rt_sf;
struct k_sigaction *ka = &current->sig->action[sig-1]; struct k_sigaction *ka = &current->sighand->action[sig-1];
if (regs->trap == 0x0C00 /* System Call! */ if (regs->trap == 0x0C00 /* System Call! */
&& ((int)regs->result == -ERESTARTNOHAND || && ((int)regs->result == -ERESTARTNOHAND ||
...@@ -1065,7 +1065,7 @@ int do_signal32(sigset_t *oldset, struct pt_regs *regs) ...@@ -1065,7 +1065,7 @@ int do_signal32(sigset_t *oldset, struct pt_regs *regs)
signr = get_signal_to_deliver(&info, regs); signr = get_signal_to_deliver(&info, regs);
if (signr > 0) { if (signr > 0) {
ka = &current->sig->action[signr-1]; ka = &current->sighand->action[signr-1];
if ((ka->sa.sa_flags & SA_ONSTACK) if ((ka->sa.sa_flags & SA_ONSTACK)
&& (!on_sig_stack(regs->gpr[1]))) && (!on_sig_stack(regs->gpr[1])))
newsp = (current->sas_ss_sp + current->sas_ss_size); newsp = (current->sas_ss_sp + current->sas_ss_size);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment