You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (470 commits) x86: Fix comments of register/stack access functions perf tools: Replace %m with %a in sscanf hw-breakpoints: Keep track of user disabled breakpoints tracing/syscalls: Make syscall events print callbacks static tracing: Add DEFINE_EVENT(), DEFINE_SINGLE_EVENT() support to docbook perf: Don't free perf_mmap_data until work has been done perf_event: Fix compile error perf tools: Fix _GNU_SOURCE macro related strndup() build error trace_syscalls: Remove unused syscall_name_to_nr() trace_syscalls: Simplify syscall profile trace_syscalls: Remove duplicate init_enter_##sname() trace_syscalls: Add syscall_nr field to struct syscall_metadata trace_syscalls: Remove enter_id exit_id trace_syscalls: Set event_enter_##sname->data to its metadata trace_syscalls: Remove unused event_syscall_enter and event_syscall_exit perf_event: Initialize data.period in perf_swevent_hrtimer() perf probe: Simplify event naming perf probe: Add --list option for listing current probe events perf probe: Add argv_split() from lib/argv_split.c perf probe: Move probe event utility functions to probe-event.c ...
This commit is contained in:
+20
-7
@@ -28,7 +28,8 @@
|
||||
#include <linux/freezer.h>
|
||||
#include <linux/pid_namespace.h>
|
||||
#include <linux/nsproxy.h>
|
||||
#include <trace/events/sched.h>
|
||||
#define CREATE_TRACE_POINTS
|
||||
#include <trace/events/signal.h>
|
||||
|
||||
#include <asm/param.h>
|
||||
#include <asm/uaccess.h>
|
||||
@@ -856,7 +857,7 @@ static int __send_signal(int sig, struct siginfo *info, struct task_struct *t,
|
||||
struct sigqueue *q;
|
||||
int override_rlimit;
|
||||
|
||||
trace_sched_signal_send(sig, t);
|
||||
trace_signal_generate(sig, info, t);
|
||||
|
||||
assert_spin_locked(&t->sighand->siglock);
|
||||
|
||||
@@ -918,12 +919,21 @@ static int __send_signal(int sig, struct siginfo *info, struct task_struct *t,
|
||||
break;
|
||||
}
|
||||
} else if (!is_si_special(info)) {
|
||||
if (sig >= SIGRTMIN && info->si_code != SI_USER)
|
||||
/*
|
||||
* Queue overflow, abort. We may abort if the signal was rt
|
||||
* and sent by user using something other than kill().
|
||||
*/
|
||||
if (sig >= SIGRTMIN && info->si_code != SI_USER) {
|
||||
/*
|
||||
* Queue overflow, abort. We may abort if the
|
||||
* signal was rt and sent by user using something
|
||||
* other than kill().
|
||||
*/
|
||||
trace_signal_overflow_fail(sig, group, info);
|
||||
return -EAGAIN;
|
||||
} else {
|
||||
/*
|
||||
* This is a silent loss of information. We still
|
||||
* send the signal, but the *info bits are lost.
|
||||
*/
|
||||
trace_signal_lose_info(sig, group, info);
|
||||
}
|
||||
}
|
||||
|
||||
out_set:
|
||||
@@ -1859,6 +1869,9 @@ relock:
|
||||
ka = &sighand->action[signr-1];
|
||||
}
|
||||
|
||||
/* Trace actually delivered signals. */
|
||||
trace_signal_deliver(signr, info, ka);
|
||||
|
||||
if (ka->sa.sa_handler == SIG_IGN) /* Do nothing. */
|
||||
continue;
|
||||
if (ka->sa.sa_handler != SIG_DFL) {
|
||||
|
||||
Reference in New Issue
Block a user