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 | /* |