diff options
Diffstat (limited to 'arch/arm/kernel/perf_event.c')
-rw-r--r-- | arch/arm/kernel/perf_event.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index c54ceb3d1f97..9e70f2053f9a 100644 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c | |||
@@ -332,7 +332,8 @@ armpmu_reserve_hardware(void) | |||
332 | 332 | ||
333 | for (i = 0; i < pmu_irqs->num_irqs; ++i) { | 333 | for (i = 0; i < pmu_irqs->num_irqs; ++i) { |
334 | err = request_irq(pmu_irqs->irqs[i], armpmu->handle_irq, | 334 | err = request_irq(pmu_irqs->irqs[i], armpmu->handle_irq, |
335 | IRQF_DISABLED, "armpmu", NULL); | 335 | IRQF_DISABLED | IRQF_NOBALANCING, |
336 | "armpmu", NULL); | ||
336 | if (err) { | 337 | if (err) { |
337 | pr_warning("unable to request IRQ%d for ARM " | 338 | pr_warning("unable to request IRQ%d for ARM " |
338 | "perf counters\n", pmu_irqs->irqs[i]); | 339 | "perf counters\n", pmu_irqs->irqs[i]); |
@@ -965,7 +966,7 @@ armv6pmu_handle_irq(int irq_num, | |||
965 | */ | 966 | */ |
966 | armv6_pmcr_write(pmcr); | 967 | armv6_pmcr_write(pmcr); |
967 | 968 | ||
968 | data.addr = 0; | 969 | perf_sample_data_init(&data, 0); |
969 | 970 | ||
970 | cpuc = &__get_cpu_var(cpu_hw_events); | 971 | cpuc = &__get_cpu_var(cpu_hw_events); |
971 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 972 | for (idx = 0; idx <= armpmu->num_events; ++idx) { |
@@ -1624,7 +1625,7 @@ enum armv7_counters { | |||
1624 | /* | 1625 | /* |
1625 | * EVTSEL: Event selection reg | 1626 | * EVTSEL: Event selection reg |
1626 | */ | 1627 | */ |
1627 | #define ARMV7_EVTSEL_MASK 0x7f /* Mask for writable bits */ | 1628 | #define ARMV7_EVTSEL_MASK 0xff /* Mask for writable bits */ |
1628 | 1629 | ||
1629 | /* | 1630 | /* |
1630 | * SELECT: Counter selection reg | 1631 | * SELECT: Counter selection reg |
@@ -1945,7 +1946,7 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev) | |||
1945 | */ | 1946 | */ |
1946 | regs = get_irq_regs(); | 1947 | regs = get_irq_regs(); |
1947 | 1948 | ||
1948 | data.addr = 0; | 1949 | perf_sample_data_init(&data, 0); |
1949 | 1950 | ||
1950 | cpuc = &__get_cpu_var(cpu_hw_events); | 1951 | cpuc = &__get_cpu_var(cpu_hw_events); |
1951 | for (idx = 0; idx <= armpmu->num_events; ++idx) { | 1952 | for (idx = 0; idx <= armpmu->num_events; ++idx) { |