[PATCH] genirq: allow an alternative setup for the mask cache

Thomas Gleixner tglx at linutronix.de
Fri Mar 15 15:55:56 EDT 2013


On Fri, 15 Mar 2013, Gerlando Falauto wrote:

> Hi Simon,
> 
> On 03/14/2013 06:45 PM, Simon Guinot wrote:
> > On Thu, Mar 14, 2013 at 05:10:30PM +0100, Holger Brunck wrote:
> > > @@ -243,9 +243,12 @@ void irq_setup_generic_chip(struct irq_chip_generic
> > > *gc, u32 msk,
> > >   	list_add_tail(&gc->list, &gc_list);
> > >   	raw_spin_unlock(&gc_lock);
> > > 
> > > +	/* Setup pointer to mask_cache */
> > > +	gc->pmask_cache = &gc->mask_cache;
> > 
> > You need a flag here to choose between gc->mask_cache and
> > ct->mask_cache.
> 
> I'm sorry, I don't understand...
> Shouldn't pmask_cache be a pointer within ct, so that the pointers for all
> instances could either be the same (in case of a single register) or all
> different (in case of multiple registers)?

You are right. gc->pmask_cache wont solve the issue.

We need a ct->pmask_cache, so the various instances of gc->ct[] can
have their own selector, which default to gc-mask_cache if not
requested to be separate by a flag. In that case we need to initialize
the ct->mask_cache at setup time for each ct. No modifications to
setup_alt_chip() required then.

> I already have a patch which seems to work, but I'm afraid I've come to YAM
> (Yet Another Misunderstanding (R) ) in regards to Thomas' suggestion.

No, that was my brain going backwards :)

Care to send your patch ?

Thanks,

	tglx



More information about the linux-arm-kernel mailing list