diff options
author | Peter Zijlstra <a.p.zijlstra@chello.nl> | 2010-03-03 09:55:04 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2010-03-10 07:22:23 -0500 |
commit | dc1d628a67a8f042e711ea5accc0beedc3ef0092 (patch) | |
tree | 728f72a5f9a8368b225890a95ea947c1c8cda301 /arch/arm/kernel/perf_event.c | |
parent | 548b84166917d6f5e2296123b85ad24aecd3801d (diff) |
perf: Provide generic perf_sample_data initialization
This makes it easier to extend perf_sample_data and fixes a bug on arm
and sparc, which failed to set ->raw to NULL, which can cause crashes
when combined with PERF_SAMPLE_RAW.
It also optimizes PowerPC and tracepoint, because the struct
initialization is forced to zero out the whole structure.
Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Jean Pihet <jpihet@mvista.com>
Reviewed-by: Frederic Weisbecker <fweisbec@gmail.com>
Acked-by: David S. Miller <davem@davemloft.net>
Cc: Jamie Iles <jamie.iles@picochip.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: stable@kernel.org
LKML-Reference: <20100304140100.315416040@chello.nl>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/arm/kernel/perf_event.c')
-rw-r--r-- | arch/arm/kernel/perf_event.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index c54ceb3d1f97..3875d99cc40f 100644 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c | |||
@@ -965,7 +965,7 @@ armv6pmu_handle_irq(int irq_num, | |||
965 | */ | 965 | */ |
966 | armv6_pmcr_write(pmcr); | 966 | armv6_pmcr_write(pmcr); |
967 | 967 | ||
968 | data.addr = 0; | 968 | perf_sample_data_init(&data, 0); |
969 | 969 | ||
970 | cpuc = &__get_cpu_var(cpu_hw_events); | 970 | cpuc = &__get_cpu_var(cpu_hw_events); |
971 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 971 | for (idx = 0; idx <= armpmu->num_events; ++idx) { |
@@ -1945,7 +1945,7 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | |||
1945 | */ | 1945 | */ |
1946 | regs = get_irq_regs(); | 1946 | regs = get_irq_regs(); |
1947 | 1947 | ||
1948 | data.addr = 0; | 1948 | perf_sample_data_init(&data, 0); |
1949 | 1949 | ||
1950 | cpuc = &__get_cpu_var(cpu_hw_events); | 1950 | cpuc = &__get_cpu_var(cpu_hw_events); |
1951 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 1951 | for (idx = 0; idx <= armpmu->num_events; ++idx) { |