Skip to content

Commit

Permalink
Merge branches 'perf-urgent-for-linus' and 'timers-urgent-for-linus' …
Browse files Browse the repository at this point in the history
…of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf and timer fixes from Ingo Molnar:
 "Two small perf fixes:
   - kernel side context leak fix
   - tooling crash fix

  And two clocksource driver fixes"

* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  perf: Fix context leak in put_event()
  perf annotate: Fix fallback to unparsed disassembler line

* 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  clockevents: sun5i: Fix setup_irq init sequence
  clocksource: efm32: Fix a NULL pointer dereference
  • Loading branch information
Linus Torvalds committed Mar 17, 2015
3 parents 8e6e44f + d415a7f + 9ab2b7f commit 13326e5
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 7 deletions.
4 changes: 2 additions & 2 deletions drivers/clocksource/time-efm32.c
Original file line number Diff line number Diff line change
Expand Up @@ -225,12 +225,12 @@ static int __init efm32_clockevent_init(struct device_node *np)
clock_event_ddata.base = base;
clock_event_ddata.periodic_top = DIV_ROUND_CLOSEST(rate, 1024 * HZ);

setup_irq(irq, &efm32_clock_event_irq);

clockevents_config_and_register(&clock_event_ddata.evtdev,
DIV_ROUND_CLOSEST(rate, 1024),
0xf, 0xffff);

setup_irq(irq, &efm32_clock_event_irq);

return 0;

err_get_irq:
Expand Down
8 changes: 4 additions & 4 deletions drivers/clocksource/timer-sun5i.c
Original file line number Diff line number Diff line change
Expand Up @@ -178,10 +178,6 @@ static void __init sun5i_timer_init(struct device_node *node)

ticks_per_jiffy = DIV_ROUND_UP(rate, HZ);

ret = setup_irq(irq, &sun5i_timer_irq);
if (ret)
pr_warn("failed to setup irq %d\n", irq);

/* Enable timer0 interrupt */
val = readl(timer_base + TIMER_IRQ_EN_REG);
writel(val | TIMER_IRQ_EN(0), timer_base + TIMER_IRQ_EN_REG);
Expand All @@ -191,6 +187,10 @@ static void __init sun5i_timer_init(struct device_node *node)

clockevents_config_and_register(&sun5i_clockevent, rate,
TIMER_SYNC_TICKS, 0xffffffff);

ret = setup_irq(irq, &sun5i_timer_irq);
if (ret)
pr_warn("failed to setup irq %d\n", irq);
}
CLOCKSOURCE_OF_DECLARE(sun5i_a13, "allwinner,sun5i-a13-hstimer",
sun5i_timer_init);
Expand Down
2 changes: 1 addition & 1 deletion kernel/events/core.c
Original file line number Diff line number Diff line change
Expand Up @@ -3591,7 +3591,7 @@ static void put_event(struct perf_event *event)
ctx = perf_event_ctx_lock_nested(event, SINGLE_DEPTH_NESTING);
WARN_ON_ONCE(ctx->parent_ctx);
perf_remove_from_context(event, true);
mutex_unlock(&ctx->mutex);
perf_event_ctx_unlock(event, ctx);

_free_event(event);
}
Expand Down
2 changes: 2 additions & 0 deletions tools/perf/util/annotate.c
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ static int disasm_line__parse(char *line, char **namep, char **rawp);

static void ins__delete(struct ins_operands *ops)
{
if (ops == NULL)
return;
zfree(&ops->source.raw);
zfree(&ops->source.name);
zfree(&ops->target.raw);
Expand Down

0 comments on commit 13326e5

Please sign in to comment.