Commit b31ba15f authored by Geert Uytterhoeven's avatar Geert Uytterhoeven Committed by Linus Torvalds

[PATCH] M68k: Signal updates

M68k: Update for signal changes in 2.5.60 (from Roman Zippel).
parent c3347432
...@@ -42,6 +42,7 @@ ...@@ -42,6 +42,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);
union thread_union init_thread_union union thread_union init_thread_union
......
...@@ -1019,7 +1019,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs) ...@@ -1019,7 +1019,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs)
/* Restart the system call the same way as /* Restart the system call the same way as
if the process were not traced. */ if the process were not traced. */
struct k_sigaction *ka = struct k_sigaction *ka =
&current->sig->action[signr-1]; &current->sighand->action[signr-1];
int has_handler = int has_handler =
(ka->sa.sa_handler != SIG_IGN && (ka->sa.sa_handler != SIG_IGN &&
ka->sa.sa_handler != SIG_DFL); ka->sa.sa_handler != SIG_DFL);
...@@ -1060,7 +1060,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs) ...@@ -1060,7 +1060,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs)
} }
} }
ka = &current->sig->action[signr-1]; ka = &current->sighand->action[signr-1];
if (ka->sa.sa_handler == SIG_IGN) { if (ka->sa.sa_handler == SIG_IGN) {
if (signr != SIGCHLD) if (signr != SIGCHLD)
continue; continue;
...@@ -1087,11 +1087,11 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs) ...@@ -1087,11 +1087,11 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs)
/* FALLTHRU */ /* FALLTHRU */
case SIGSTOP: { case SIGSTOP: {
struct signal_struct *sig; struct sighand_struct *sighand;
current->state = TASK_STOPPED; current->state = TASK_STOPPED;
current->exit_code = signr; current->exit_code = signr;
sig = current->parent->sig; sighand = current->parent->sighand;
if (sig && !(sig->action[SIGCHLD-1].sa.sa_flags if (sighand && !(sighand->action[SIGCHLD-1].sa.sa_flags
& SA_NOCLDSTOP)) & SA_NOCLDSTOP))
notify_parent(current, SIGCHLD); notify_parent(current, SIGCHLD);
schedule(); schedule();
...@@ -1106,7 +1106,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs) ...@@ -1106,7 +1106,7 @@ asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs)
/* FALLTHRU */ /* FALLTHRU */
default: default:
sig_exit(signr, exit_code, &info); do_group_exit(signr);
/* NOTREACHED */ /* NOTREACHED */
} }
} }
......
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