Linux MIPS Architecture development
 help / color / mirror / Atom feed
* [PATCH] AU1xxxx mips_timer_interrupt() fixes
@ 2006-04-10  8:38 Herbert Valerio Riedel
  2006-04-27 16:13 ` Ralf Baechle
  0 siblings, 1 reply; 2+ messages in thread
From: Herbert Valerio Riedel @ 2006-04-10  8:38 UTC (permalink / raw)
  To: linux-mips; +Cc: ppopov

common/au1000/irq.c was missing a mips_timer_interrupt() prototype, whereas
in common/au1000/time.c the actual mips_timer_interrupt() implementation
was missing an irq_exit() invocation, causing a preempt_count() leak

Signed-off-by: Herbert Valerio Riedel <hvr@hvrlab.org>


---

 arch/mips/au1000/common/irq.c  |    1 +
 arch/mips/au1000/common/time.c |    1 +
 2 files changed, 2 insertions(+), 0 deletions(-)

d0a263ef156cf498d97cf6b2f37ba4d8d4a92559
diff --git a/arch/mips/au1000/common/irq.c b/arch/mips/au1000/common/irq.c
index da61de7..afe05ec 100644
--- a/arch/mips/au1000/common/irq.c
+++ b/arch/mips/au1000/common/irq.c
@@ -68,6 +68,7 @@
 
 extern void set_debug_traps(void);
 extern irq_cpustat_t irq_stat [NR_CPUS];
+extern void mips_timer_interrupt(struct pt_regs *regs);
 
 static void setup_local_irq(unsigned int irq, int type, int int_req);
 static unsigned int startup_irq(unsigned int irq);
diff --git a/arch/mips/au1000/common/time.c b/arch/mips/au1000/common/time.c
index f85f152..f74d66a 100644
--- a/arch/mips/au1000/common/time.c
+++ b/arch/mips/au1000/common/time.c
@@ -116,6 +116,7 @@ void mips_timer_interrupt(struct pt_regs
 
 null:
 	ack_r4ktimer(0);
+	irq_exit();
 }
 
 #ifdef CONFIG_PM
-- 
1.2.4

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] AU1xxxx mips_timer_interrupt() fixes
  2006-04-10  8:38 [PATCH] AU1xxxx mips_timer_interrupt() fixes Herbert Valerio Riedel
@ 2006-04-27 16:13 ` Ralf Baechle
  0 siblings, 0 replies; 2+ messages in thread
From: Ralf Baechle @ 2006-04-27 16:13 UTC (permalink / raw)
  To: Herbert Valerio Riedel; +Cc: linux-mips, ppopov

On Wed, Apr 12, 2006 at 09:03:08AM +0200, Herbert Valerio Riedel wrote:

> common/au1000/irq.c was missing a mips_timer_interrupt() prototype, whereas
> in common/au1000/time.c the actual mips_timer_interrupt() implementation
> was missing an irq_exit() invocation, causing a preempt_count() leak

mips_timer_interrupt is essentially duplicated code, so this kind of
breakage is entirely avoidable but fixing and all the other time code
braindamage it will be a large project, so I applied this patch to
2.6.16-stable and master.

Thanks,

  Ralf

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2006-04-27 16:13 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-10  8:38 [PATCH] AU1xxxx mips_timer_interrupt() fixes Herbert Valerio Riedel
2006-04-27 16:13 ` Ralf Baechle

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox