Re: [patch 2.6.18] genirq: remove oops with fasteoi irq_chipdescriptors

From: Thomas Gleixner
Date: Wed Sep 27 2006 - 19:53:31 EST


Dave,

On Wed, 2006-09-27 at 16:21 -0700, David Brownell wrote:
> As you should know, irq_chip_set_defaults() ensures that every
> irqchip has startup() and shutdown() methods. Their default
> implementations use enable() and disable() ... which in turn
> have default implementations using mask()/unmask(), for use
> with non-EIO handlers.

True. Still you change the semantics.

chip->mask();
chip->ack();

is not equal to :

if (!(desc->status & IRQ_DELAYED_DISABLE))
irq_desc[irq].chip->mask(irq);


> So what's the correct fix then ... use enable() and disable()?
> Oopsing isn't OK...

True, but we can not unconditionally change the semantics.

Does it break existing or new code ?

> It was certainly _tested_ on a 2.6.18 ARM board, so you're clearly wrong
> about at least that part of your feedback as well as the bits about the
> shartup and shutdown calls being "optional" (in any practical sense, since
> they are in fact _always_ present).

Sorry, I did not think about the defaults in the first place. The
conditionals in manage,c are probably superflous leftovers from one of
the evolvement.

tglx


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/