Messages in this thread | | | Date | Wed, 03 Sep 2014 09:39:40 -0700 | From | Florian Fainelli <> | Subject | Re: [PATCH 1/2] irqchip: add Broadcom BCM7120-style Level 2 interrupt controller |
| |
On 09/03/2014 05:18 AM, Thomas Gleixner wrote: > On Thu, 28 Aug 2014, Florian Fainelli wrote: >> +static void bcm7120_l2_intc_irq_handle(unsigned int irq, struct irq_desc *desc) >> +{ >> + struct bcm7120_l2_intc_data *b = irq_desc_get_handler_data(desc); >> + struct irq_chip *chip = irq_desc_get_chip(desc); >> + struct irq_chip_generic *gc = irq_get_domain_generic_chip(b->domain, 0); >> + u32 status; >> + >> + chained_irq_enter(chip, desc); >> + >> + irq_gc_lock(gc); >> + status = __raw_readl(b->base + IRQSTAT); >> + irq_gc_unlock(gc); > > Why do you need locking around the status read out?
I was worried about potential concurrency issues, but I suppose that this is just extra carefulness that brings nothing.
> >> + for (irq = 0; irq < num_parent_irqs; irq++) { >> + ret = bcm7120_l2_intc_init_one(dn, data, irq, map_mask); >> + if (ret) >> + continue; > > What's the exact purpose of this "if (ret)" construct?
It's pretty much useless the way it is now, I will rework that.
Thanks for the review! -- Florian
| |