diff options
author | Dan Malek <dan@embeddededge.com> | 2005-05-01 17:58:42 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-05-01 17:58:42 +0200 |
commit | 1bdacf88ebd7969fecbbf4c5b388cc094871222e (patch) | |
tree | 6c0f03d688d65361aaf4d9d6f8ecdac172cf1aeb /arch | |
parent | [PATCH] ppc32: Fix address checking on lmw/stmw align exception (diff) | |
download | linux-1bdacf88ebd7969fecbbf4c5b388cc094871222e.tar.xz linux-1bdacf88ebd7969fecbbf4c5b388cc094871222e.zip |
[PATCH] ppc32: workaround for spurious IRQs on PQ2
There is a problem with large amounts of spurious IRQs on PowerPC 82xx
systems.
The problem is corrected by adding sync at the end of cpm2_mask_and_ack.
This may be needed on 8xx as well but has not yet been confirmed.
Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
Signed-off-by: Dan Malek <dan@embeddedalley.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/ppc/syslib/cpm2_pic.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/ppc/syslib/cpm2_pic.c b/arch/ppc/syslib/cpm2_pic.c index 954b07fc1df3..c867be6981cb 100644 --- a/arch/ppc/syslib/cpm2_pic.c +++ b/arch/ppc/syslib/cpm2_pic.c @@ -107,6 +107,11 @@ static void cpm2_end_irq(unsigned int irq_nr) simr = &(cpm2_immr->im_intctl.ic_simrh); ppc_cached_irq_mask[word] |= 1 << bit; simr[word] = ppc_cached_irq_mask[word]; + /* + * Work around large numbers of spurious IRQs on PowerPC 82xx + * systems. + */ + mb(); } } |