Subject: Re: [PATCH] qe_ic: Do a sync when masking interrupts.

From: Scott Wood <[email-masked]>
Date: Mon, 23 Oct 2006 10:19:12 -0500

Paul Mackerras wrote:
> Hmmm.  In general a sync having completed doesn't mean that previous
> MMIO stores have actually got to the device.  Reading from a device
> register generally does ensure that previous writes have actually got
> to the device though - could you do that instead?  I'm concerned that
> adding the sync is not a robust fix and is possibly only working due
> to fortuitous timing.

Possibly -- but the only problem on the rare occasions where the timing 
is not fortuitous is a spurious interrupt; the only reason the sync 
needs to be there at all is to avoid the overhead of the extra interrupt 
(and to avoid user complaints that they're getting "BAD" interrupts).

Note that many/most interrupt controller drivers don't even do that 
much; they just have more fortuitous timing than the QE (and/or the 
spurious interrupt is non-cascaded, and thus gets caught in 
handle_level_irq and doesn't increment the spurious interrupt count).

-Scott