OSDN Git Service

irqchip/irq-sifive-plic: Check and continue in case of an invalid cpuid.
authorAtish Patra <atish.patra@wdc.com>
Tue, 12 Feb 2019 11:10:11 +0000 (03:10 -0800)
committerMarc Zyngier <marc.zyngier@arm.com>
Thu, 14 Feb 2019 12:24:34 +0000 (12:24 +0000)
riscv_hartid_to_cpuid can return invalid cpuid for a hart that is
present in DT but was never brought up.

Print the appropriate warning message and continue.

Signed-off-by: Atish Patra <atish.patra@wdc.com>
Reviewed-by: Anup Patel <anup@brainfault.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
drivers/irqchip/irq-sifive-plic.c

index 357e9da..254ecd7 100644 (file)
@@ -237,6 +237,11 @@ static int __init plic_init(struct device_node *node,
                }
 
                cpu = riscv_hartid_to_cpuid(hartid);
+               if (cpu < 0) {
+                       pr_warn("Invalid cpuid for context %d\n", i);
+                       continue;
+               }
+
                handler = per_cpu_ptr(&plic_handlers, cpu);
                handler->present = true;
                handler->ctxid = i;