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
4 changed files with 13 additions and 5 deletions
|
@ -1077,7 +1077,7 @@ static int calculate_lfsr(int n)
|
|||
index = ENTRIES-1;
|
||||
|
||||
/* make sure index is valid */
|
||||
if ((index > ENTRIES) || (index < 0))
|
||||
if ((index >= ENTRIES) || (index < 0))
|
||||
index = ENTRIES-1;
|
||||
|
||||
return initial_lfsr[index];
|
||||
|
|
|
@ -10,7 +10,8 @@
|
|||
|
||||
#define TP_STORE_SIGINFO(__entry, info) \
|
||||
do { \
|
||||
if (info == SEND_SIG_NOINFO) { \
|
||||
if (info == SEND_SIG_NOINFO || \
|
||||
info == SEND_SIG_FORCED) { \
|
||||
__entry->errno = 0; \
|
||||
__entry->code = SI_USER; \
|
||||
} else if (info == SEND_SIG_PRIV) { \
|
||||
|
|
|
@ -1507,6 +1507,9 @@ do { \
|
|||
divisor = nsec * frequency;
|
||||
}
|
||||
|
||||
if (!divisor)
|
||||
return dividend;
|
||||
|
||||
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)
|
||||
{
|
||||
struct hw_perf_event *hwc = &event->hw;
|
||||
u64 period, sample_period;
|
||||
s64 period, sample_period;
|
||||
s64 delta;
|
||||
|
||||
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) {
|
||||
err = dso__load_vmlinux(self, map,
|
||||
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) {
|
||||
|
@ -1806,7 +1811,6 @@ static int dso__load_kernel_sym(struct dso *self, struct map *map,
|
|||
pr_debug("Using %s for symbols\n", kallsyms_filename);
|
||||
free(kallsyms_allocated_filename);
|
||||
|
||||
out_try_fixup:
|
||||
if (err > 0) {
|
||||
out_fixup:
|
||||
if (kallsyms_filename != NULL)
|
||||
|
|
Loading…
Reference in a new issue