From: Ming Lei <ming.lei@xxxxxxxxxxxxx> omap4 may create device via hwmod, which can create resources automatically, so may include some non-irq resources. This patch supports device with other non-irq resources. Signed-off-by: Ming Lei <ming.lei@xxxxxxxxxxxxx> --- arch/arm/kernel/perf_event.c | 5 +++-- arch/arm/kernel/pmu.c | 12 ++++++++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c index f367780..d91dba2 100644 --- a/arch/arm/kernel/perf_event.c +++ b/arch/arm/kernel/perf_event.c @@ -19,6 +19,7 @@ #include <linux/platform_device.h> #include <linux/spinlock.h> #include <linux/uaccess.h> +#include <linux/cpumask.h> #include <asm/cputype.h> #include <asm/irq.h> @@ -414,7 +415,7 @@ armpmu_reserve_hardware(void) return -ENODEV; } - for (i = 0; i < pmu_device->num_resources; ++i) { + for (i = 0; i < nr_cpu_ids; ++i) { irq = platform_get_irq(pmu_device, i); if (irq < 0) continue; @@ -453,7 +454,7 @@ armpmu_release_hardware(void) struct arm_pmu_platdata *plat = dev_get_platdata(&pmu_device->dev); - for (i = pmu_device->num_resources - 1; i >= 0; --i) { + for (i = nr_cpu_ids - 1; i >= 0; --i) { irq = platform_get_irq(pmu_device, i); if (irq >= 0) { if (plat && plat->disable_irq) diff --git a/arch/arm/kernel/pmu.c b/arch/arm/kernel/pmu.c index c53474f..0e9c908 100644 --- a/arch/arm/kernel/pmu.c +++ b/arch/arm/kernel/pmu.c @@ -19,6 +19,7 @@ #include <linux/module.h> #include <linux/of_device.h> #include <linux/platform_device.h> +#include <linux/cpumask.h> #include <asm/pmu.h> @@ -172,8 +173,15 @@ init_cpu_pmu(void) if (irqs == 1 && !irq_can_set_affinity(platform_get_irq(pdev, 0))) return 0; - for (i = 0; i < irqs; ++i) { - err = set_irq_affinity(platform_get_irq(pdev, i), i); + for (i = 0; i < nr_cpu_ids; ++i) { + int irq; + + irq = platform_get_irq(pdev, i); + + if (irq < 0) + continue; + + err = set_irq_affinity(irq, i); if (err) break; } -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-omap" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html