Merge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: tracing: Fix null pointer deref with SEND_SIG_FORCED perf: Fix signed comparison in perf_adjust_period() powerpc/oprofile: fix potential buffer overrun in op_model_cell.c perf symbols: Set the DSO long name when using symbol_conf.vmlinux_name
This commit is contained in:
commit
85ca7886f5
|
@ -1077,7 +1077,7 @@ static int calculate_lfsr(int n)
|
||||||
index = ENTRIES-1;
|
index = ENTRIES-1;
|
||||||
|
|
||||||
/* make sure index is valid */
|
/* make sure index is valid */
|
||||||
if ((index > ENTRIES) || (index < 0))
|
if ((index >= ENTRIES) || (index < 0))
|
||||||
index = ENTRIES-1;
|
index = ENTRIES-1;
|
||||||
|
|
||||||
return initial_lfsr[index];
|
return initial_lfsr[index];
|
||||||
|
|
|
@ -10,7 +10,8 @@
|
||||||
|
|
||||||
#define TP_STORE_SIGINFO(__entry, info) \
|
#define TP_STORE_SIGINFO(__entry, info) \
|
||||||
do { \
|
do { \
|
||||||
if (info == SEND_SIG_NOINFO) { \
|
if (info == SEND_SIG_NOINFO || \
|
||||||
|
info == SEND_SIG_FORCED) { \
|
||||||
__entry->errno = 0; \
|
__entry->errno = 0; \
|
||||||
__entry->code = SI_USER; \
|
__entry->code = SI_USER; \
|
||||||
} else if (info == SEND_SIG_PRIV) { \
|
} else if (info == SEND_SIG_PRIV) { \
|
||||||
|
|
|
@ -1507,6 +1507,9 @@ do { \
|
||||||
divisor = nsec * frequency;
|
divisor = nsec * frequency;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!divisor)
|
||||||
|
return dividend;
|
||||||
|
|
||||||
return div64_u64(dividend, divisor);
|
return div64_u64(dividend, divisor);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1529,7 +1532,7 @@ static int perf_event_start(struct perf_event *event)
|
||||||
static void perf_adjust_period(struct perf_event *event, u64 nsec, u64 count)
|
static void perf_adjust_period(struct perf_event *event, u64 nsec, u64 count)
|
||||||
{
|
{
|
||||||
struct hw_perf_event *hwc = &event->hw;
|
struct hw_perf_event *hwc = &event->hw;
|
||||||
u64 period, sample_period;
|
s64 period, sample_period;
|
||||||
s64 delta;
|
s64 delta;
|
||||||
|
|
||||||
period = perf_calculate_period(event, nsec, count);
|
period = perf_calculate_period(event, nsec, count);
|
||||||
|
|
|
@ -1745,7 +1745,12 @@ static int dso__load_kernel_sym(struct dso *self, struct map *map,
|
||||||
if (symbol_conf.vmlinux_name != NULL) {
|
if (symbol_conf.vmlinux_name != NULL) {
|
||||||
err = dso__load_vmlinux(self, map,
|
err = dso__load_vmlinux(self, map,
|
||||||
symbol_conf.vmlinux_name, filter);
|
symbol_conf.vmlinux_name, filter);
|
||||||
goto out_try_fixup;
|
if (err > 0) {
|
||||||
|
dso__set_long_name(self,
|
||||||
|
strdup(symbol_conf.vmlinux_name));
|
||||||
|
goto out_fixup;
|
||||||
|
}
|
||||||
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (vmlinux_path != NULL) {
|
if (vmlinux_path != NULL) {
|
||||||
|
@ -1806,7 +1811,6 @@ do_kallsyms:
|
||||||
pr_debug("Using %s for symbols\n", kallsyms_filename);
|
pr_debug("Using %s for symbols\n", kallsyms_filename);
|
||||||
free(kallsyms_allocated_filename);
|
free(kallsyms_allocated_filename);
|
||||||
|
|
||||||
out_try_fixup:
|
|
||||||
if (err > 0) {
|
if (err > 0) {
|
||||||
out_fixup:
|
out_fixup:
|
||||||
if (kallsyms_filename != NULL)
|
if (kallsyms_filename != NULL)
|
||||||
|
|
Loading…
Reference in New Issue