Re: [PATCH] perf_event: fix perf_swevent_hrtimer()

From: Peter Zijlstra
Date: Thu Dec 10 2009 - 00:14:17 EST


On Thu, 2009-12-10 at 12:14 +0800, Xiao Guangrong wrote:
> fix:
> [<c0477471>] ? printk+0x1d/0x24
> [<c01c98f9>] ? perf_prepare_sample+0x269/0x280
> [<c0149231>] warn_slowpath_common+0x71/0xd0
> [<c01c98f9>] ? perf_prepare_sample+0x269/0x280
> [<c01492aa>] warn_slowpath_null+0x1a/0x20
> [<c01c98f9>] perf_prepare_sample+0x269/0x280
> [<c016e9f3>] ? cpu_clock+0x53/0x90
> [<c01cc368>] __perf_event_overflow+0x2a8/0x300
> [<c01ccc3b>] perf_event_overflow+0x1b/0x30
> [<c01ccccf>] perf_swevent_hrtimer+0x7f/0x120
>
> This is because 'data' variable not initialize.

Nope, please just initialize the missing variable. Which from a quick
glance is data.raw.

> Signed-off-by: Xiao Guangrong <xiaoguangrong@xxxxxxxxxxxxxx>
> ---
> kernel/perf_event.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/kernel/perf_event.c b/kernel/perf_event.c
> index 0bd0f67..41c2dde 100644
> --- a/kernel/perf_event.c
> +++ b/kernel/perf_event.c
> @@ -4009,7 +4009,7 @@ static enum hrtimer_restart perf_swevent_hrtimer(struct hrtimer *hrtimer)
> event = container_of(hrtimer, struct perf_event, hw.hrtimer);
> event->pmu->read(event);
>
> - data.addr = 0;
> + memset(&data, 0, sizeof(data));
> data.period = event->hw.last_period;
> regs = get_irq_regs();
> /*

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/