On Wed, Nov 20, 2013 at 11:30 PM, Will Deacon <will.dea...@arm.com> wrote: > On Wed, Nov 20, 2013 at 05:28:50PM +0000, Vinayak Kale wrote: >> In Will's existing code, I think he was taking care of 'no IRQ' case >> by comparing pmu_device->num_resources. Do you think this is not >> enough and we must enforce the check after each platform_get_irq()? >> Existing driver code snippet as below for quick reference. >> >> [snip] >> static int >> armpmu_reserve_hardware(struct arm_pmu *armpmu) >> { >> int i, err, irq, irqs; >> struct platform_device *pmu_device = armpmu->plat_device; >> >> if (!pmu_device) { >> pr_err("no PMU device registered\n"); >> return -ENODEV; >> } >> >> irqs = min(pmu_device->num_resources, num_possible_cpus()); >> if (irqs < 1) { >> pr_err("no irqs for PMUs defined\n"); >> return -ENODEV; >> } > > This bit is fine. > >> for (i = 0; i < irqs; ++i) { >> err = 0; >> irq = platform_get_irq(pmu_device, i); >> if (irq < 0) >> continue; > > This is a bug, which you can fix in your patch. IRQ0 isn't valid.
Okay, will fix this. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/