On Fri, Nov 30, 2018 at 7:27 AM Atish Patra <atish.pa...@wdc.com> wrote: > > On 11/27/18 2:04 AM, Anup Patel wrote: > > We explicitly differentiate between PLIC handler and context because > > PLIC context is for given mode of HART whereas PLIC handler is per-CPU > > software construct meant for handling interrupts from a particular > > PLIC context. > > > > Signed-off-by: Anup Patel <a...@brainfault.org> > > --- > > drivers/irqchip/irq-sifive-plic.c | 21 +++++++++++++-------- > > 1 file changed, 13 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/irqchip/irq-sifive-plic.c > > b/drivers/irqchip/irq-sifive-plic.c > > index 95b4b92ca9b8..ffd4deaca057 100644 > > --- a/drivers/irqchip/irq-sifive-plic.c > > +++ b/drivers/irqchip/irq-sifive-plic.c > > @@ -66,8 +66,8 @@ static DEFINE_PER_CPU(struct plic_handler, plic_handlers); > > > > struct plic_hw { > > u32 nr_irqs; > > + u32 nr_contexts; > > u32 nr_handlers; > > - u32 nr_mapped; > > void __iomem *regs; > > struct irq_domain *irqdomain; > > }; > > @@ -191,10 +191,10 @@ static int __init plic_init(struct device_node *node, > > if (WARN_ON(!plic.nr_irqs)) > > goto out_iounmap; > > > > - plic.nr_handlers = of_irq_count(node); > > - if (WARN_ON(!plic.nr_handlers)) > > + plic.nr_contexts = of_irq_count(node); > > + if (WARN_ON(!plic.nr_contexts)) > > goto out_iounmap; > > - if (WARN_ON(plic.nr_handlers < num_possible_cpus())) > > + if (WARN_ON(plic.nr_contexts < num_possible_cpus())) > > goto out_iounmap; > > > > plic.irqdomain = irq_domain_add_linear(node, plic.nr_irqs + 1, > > @@ -202,7 +202,7 @@ static int __init plic_init(struct device_node *node, > > if (WARN_ON(!plic.irqdomain)) > > goto out_iounmap; > > > > - for (i = 0; i < plic.nr_handlers; i++) { > > + for (i = 0; i < plic.nr_contexts; i++) { > > struct of_phandle_args parent; > > struct plic_handler *handler; > > irq_hw_number_t hwirq; > > @@ -225,6 +225,11 @@ static int __init plic_init(struct device_node *node, > > > > cpu = riscv_hartid_to_cpuid(hartid); > > handler = per_cpu_ptr(&plic_handlers, cpu); > > + if (handler->present) { > > + pr_warn("handler not available for context %d.\n", i); > > + continue; > > + } > > + > > Ahh you have the handler->present check here in this patch. This should > be in the 2nd patch. This change doesn't match the commit text anyways.
Sure, will do. > > Everything else just variable renaming which can be separated. > nr_handlers->nr_contexts > nr_mapped->nr_handlers > Sure, will update commit text. Thanks, Anup