diff options
| author | Richard Weinberger <richard@nod.at> | 2014-07-13 07:36:04 -0400 |
|---|---|---|
| committer | Richard Weinberger <richard@sigma-star.at> | 2014-08-06 07:03:43 -0400 |
| commit | 10b1c7ac8bfed429cf3dcb0225482c8dc1485d8e (patch) | |
| tree | 8434f7e9646d0e42eb4ceb4c9d9dd51ef7b8f096 /kernel | |
| parent | df5601f9c3d831b4c478b004a1ed90a18643adbe (diff) | |
Clean up signal_delivered()
- Pass a ksignal struct to it
- Remove unused regs parameter
- Make it private as it's nowhere outside of kernel/signal.c is used
Signed-off-by: Richard Weinberger <richard@nod.at>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/signal.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index c4d47661cc86..0d75cf875d44 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
| @@ -2353,19 +2353,15 @@ relock: | |||
| 2353 | 2353 | ||
| 2354 | /** | 2354 | /** |
| 2355 | * signal_delivered - | 2355 | * signal_delivered - |
| 2356 | * @sig: number of signal being delivered | 2356 | * @ksig: kernel signal struct |
| 2357 | * @info: siginfo_t of signal being delivered | ||
| 2358 | * @ka: sigaction setting that chose the handler | ||
| 2359 | * @regs: user register state | ||
| 2360 | * @stepping: nonzero if debugger single-step or block-step in use | 2357 | * @stepping: nonzero if debugger single-step or block-step in use |
| 2361 | * | 2358 | * |
| 2362 | * This function should be called when a signal has successfully been | 2359 | * This function should be called when a signal has successfully been |
| 2363 | * delivered. It updates the blocked signals accordingly (@ka->sa.sa_mask | 2360 | * delivered. It updates the blocked signals accordingly (@ksig->ka.sa.sa_mask |
| 2364 | * is always blocked, and the signal itself is blocked unless %SA_NODEFER | 2361 | * is always blocked, and the signal itself is blocked unless %SA_NODEFER |
| 2365 | * is set in @ka->sa.sa_flags. Tracing is notified. | 2362 | * is set in @ksig->ka.sa.sa_flags. Tracing is notified. |
| 2366 | */ | 2363 | */ |
| 2367 | void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, | 2364 | static void signal_delivered(struct ksignal *ksig, int stepping) |
| 2368 | struct pt_regs *regs, int stepping) | ||
| 2369 | { | 2365 | { |
| 2370 | sigset_t blocked; | 2366 | sigset_t blocked; |
| 2371 | 2367 | ||
| @@ -2375,9 +2371,9 @@ void signal_delivered(int sig, siginfo_t *info, struct k_sigaction *ka, | |||
| 2375 | simply clear the restore sigmask flag. */ | 2371 | simply clear the restore sigmask flag. */ |
| 2376 | clear_restore_sigmask(); | 2372 | clear_restore_sigmask(); |
| 2377 | 2373 | ||
| 2378 | sigorsets(&blocked, ¤t->blocked, &ka->sa.sa_mask); | 2374 | sigorsets(&blocked, ¤t->blocked, &ksig->ka.sa.sa_mask); |
| 2379 | if (!(ka->sa.sa_flags & SA_NODEFER)) | 2375 | if (!(ksig->ka.sa.sa_flags & SA_NODEFER)) |
| 2380 | sigaddset(&blocked, sig); | 2376 | sigaddset(&blocked, ksig->sig); |
| 2381 | set_current_blocked(&blocked); | 2377 | set_current_blocked(&blocked); |
| 2382 | tracehook_signal_handler(stepping); | 2378 | tracehook_signal_handler(stepping); |
| 2383 | } | 2379 | } |
| @@ -2387,8 +2383,7 @@ void signal_setup_done(int failed, struct ksignal *ksig, int stepping) | |||
| 2387 | if (failed) | 2383 | if (failed) |
| 2388 | force_sigsegv(ksig->sig, current); | 2384 | force_sigsegv(ksig->sig, current); |
| 2389 | else | 2385 | else |
| 2390 | signal_delivered(ksig->sig, &ksig->info, &ksig->ka, | 2386 | signal_delivered(ksig, stepping); |
| 2391 | signal_pt_regs(), stepping); | ||
| 2392 | } | 2387 | } |
| 2393 | 2388 | ||
| 2394 | /* | 2389 | /* |
