* [PATCH] fix build errors by IRQ hander change
@ 2006-10-06 15:35 Yoichi Yuasa
2006-10-07 4:41 ` [PATCH] fix DECserial build error " Yoichi Yuasa
2006-10-08 1:17 ` [PATCH] fix build errors " Ralf Baechle
0 siblings, 2 replies; 3+ messages in thread
From: Yoichi Yuasa @ 2006-10-06 15:35 UTC (permalink / raw)
To: Ralf Baechle; +Cc: yoichi_yuasa, linux-mips
Hi Ralf,
This patch has fixed build errors by the IRQ handler change.
Yoichi
Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
diff -pruN -X mips/Documentation/dontdiff mips-orig/arch/mips/kernel/smtc.c mips/arch/mips/kernel/smtc.c
--- mips-orig/arch/mips/kernel/smtc.c 2006-10-06 23:19:07.909029750 +0900
+++ mips/arch/mips/kernel/smtc.c 2006-10-06 23:25:16.796083750 +0900
@@ -846,7 +846,7 @@ void ipi_decode(struct pt_regs *regs, st
#ifdef SMTC_IDLE_HOOK_DEBUG
clock_hang_reported[dest_copy] = 0;
#endif /* SMTC_IDLE_HOOK_DEBUG */
- local_timer_interrupt(0, NULL, regs);
+ local_timer_interrupt(0, NULL);
break;
case LINUX_SMP_IPI:
switch ((int)arg_copy) {
diff -pruN -X mips/Documentation/dontdiff mips-orig/arch/mips/mips-boards/generic/time.c mips/arch/mips/mips-boards/generic/time.c
--- mips-orig/arch/mips/mips-boards/generic/time.c 2006-10-06 23:19:07.981034250 +0900
+++ mips/arch/mips/mips-boards/generic/time.c 2006-10-06 23:25:16.816085000 +0900
@@ -94,7 +94,7 @@ extern int null_perf_irq(struct pt_regs
extern int (*perf_irq)(struct pt_regs *regs);
-irqreturn_t mips_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+irqreturn_t mips_timer_interrupt(int irq, void *dev_id)
{
int cpu = smp_processor_id();
@@ -119,7 +119,7 @@ irqreturn_t mips_timer_interrupt(int irq
* perf counter overflow, or both.
*/
if (read_c0_cause() & (1 << 26))
- perf_irq(regs);
+ perf_irq(get_irq_regs());
if (read_c0_cause() & (1 << 30)) {
/* If timer interrupt, make it de-assert */
@@ -139,13 +139,13 @@ irqreturn_t mips_timer_interrupt(int irq
* the tick on VPE 0 to run the full timer_interrupt().
*/
if (cpu_data[cpu].vpe_id == 0) {
- timer_interrupt(irq, NULL, regs);
+ timer_interrupt(irq, NULL);
smtc_timer_broadcast(cpu_data[cpu].vpe_id);
scroll_display_message();
} else {
write_c0_compare(read_c0_count() +
(mips_hpt_frequency/HZ));
- local_timer_interrupt(irq, dev_id, regs);
+ local_timer_interrupt(irq, dev_id);
smtc_timer_broadcast(cpu_data[cpu].vpe_id);
}
}
@@ -159,12 +159,12 @@ irqreturn_t mips_timer_interrupt(int irq
* timer int.
*/
if (!r2 || (read_c0_cause() & (1 << 26)))
- if (perf_irq(regs))
+ if (perf_irq(get_irq_regs()))
goto out;
/* we keep interrupt disabled all the time */
if (!r2 || (read_c0_cause() & (1 << 30)))
- timer_interrupt(irq, NULL, regs);
+ timer_interrupt(irq, NULL);
scroll_display_message();
} else {
@@ -180,7 +180,7 @@ irqreturn_t mips_timer_interrupt(int irq
/*
* Other CPUs should do profiling and process accounting
*/
- local_timer_interrupt(irq, dev_id, regs);
+ local_timer_interrupt(irq, dev_id);
}
out:
#endif /* CONFIG_MIPS_MT_SMTC */
diff -pruN -X mips/Documentation/dontdiff mips-orig/arch/mips/mips-boards/sim/sim_time.c mips/arch/mips/mips-boards/sim/sim_time.c
--- mips-orig/arch/mips/mips-boards/sim/sim_time.c 2006-10-06 23:19:07.985034500 +0900
+++ mips/arch/mips/mips-boards/sim/sim_time.c 2006-10-06 23:25:16.848087000 +0900
@@ -33,7 +33,7 @@
unsigned long cpu_khz;
-irqreturn_t sim_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
+irqreturn_t sim_timer_interrupt(int irq, void *dev_id)
{
#ifdef CONFIG_SMP
int cpu = smp_processor_id();
@@ -44,7 +44,7 @@ irqreturn_t sim_timer_interrupt(int irq,
*/
#ifndef CONFIG_MIPS_MT_SMTC
if (cpu == 0) {
- timer_interrupt(irq, dev_id, regs);
+ timer_interrupt(irq, dev_id);
}
else {
/* Everyone else needs to reset the timer int here as
@@ -84,7 +84,7 @@ irqreturn_t sim_timer_interrupt(int irq,
irq_enable_hazard();
evpe(vpflags);
- if(cpu_data[cpu].vpe_id == 0) timer_interrupt(irq, dev_id, regs);
+ if(cpu_data[cpu].vpe_id == 0) timer_interrupt(irq, dev_id);
else write_c0_compare (read_c0_count() + ( mips_hpt_frequency/HZ));
smtc_timer_broadcast(cpu_data[cpu].vpe_id);
@@ -93,10 +93,10 @@ irqreturn_t sim_timer_interrupt(int irq,
/*
* every CPU should do profiling and process accounting
*/
- local_timer_interrupt (irq, dev_id, regs);
+ local_timer_interrupt (irq, dev_id);
return IRQ_HANDLED;
#else
- return timer_interrupt (irq, dev_id, regs);
+ return timer_interrupt (irq, dev_id);
#endif
}
diff -pruN -X mips/Documentation/dontdiff mips-orig/arch/mips/sgi-ip27/ip27-timer.c mips/arch/mips/sgi-ip27/ip27-timer.c
--- mips-orig/arch/mips/sgi-ip27/ip27-timer.c 2006-10-06 23:19:08.065039500 +0900
+++ mips/arch/mips/sgi-ip27/ip27-timer.c 2006-10-06 23:25:16.856087500 +0900
@@ -87,15 +87,11 @@ static int set_rtc_mmss(unsigned long no
}
#endif
-static unsigned int rt_timer_irq;
-
-void ip27_rt_timer_interrupt(struct pt_regs *regs)
+irqreturn_t ip27_rt_timer_interrupt(int irq, void *dev_id)
{
int cpu = smp_processor_id();
int cpuA = cputoslice(cpu) == 0;
- unsigned int irq = rt_timer_irq;
- irq_enter();
write_seqlock(&xtime_lock);
again:
@@ -111,7 +107,7 @@ again:
if (cpu == 0)
do_timer(1);
- update_process_times(user_mode(regs));
+ update_process_times(user_mode(get_irq_regs()));
/*
* If we have an externally synchronized Linux clock, then update
@@ -131,7 +127,8 @@ again:
}
write_sequnlock(&xtime_lock);
- irq_exit();
+
+ return IRQ_HANDLED;
}
unsigned long ip27_do_gettimeoffset(void)
@@ -241,7 +238,6 @@ void __init plat_timer_setup(struct irqa
/* setup irqaction */
irq_desc[irqno].status |= IRQ_PER_CPU;
- rt_timer_irq = irqno;
/*
* Only needed to get /proc/interrupt to display timer irq stats
*/
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] fix DECserial build error by IRQ hander change
2006-10-06 15:35 [PATCH] fix build errors by IRQ hander change Yoichi Yuasa
@ 2006-10-07 4:41 ` Yoichi Yuasa
2006-10-08 1:17 ` [PATCH] fix build errors " Ralf Baechle
1 sibling, 0 replies; 3+ messages in thread
From: Yoichi Yuasa @ 2006-10-07 4:41 UTC (permalink / raw)
To: ralf; +Cc: yoichi_yuasa, linux-mips
Hi Ralf,
One more fix for zs.c .
Yoichi
Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>
diff -pruN -X mips/Documentation/dontdiff mips-orig/drivers/tc/zs.c mips/drivers/tc/zs.c
--- mips-orig/drivers/tc/zs.c 2006-10-07 23:51:44.882996750 +0900
+++ mips/drivers/tc/zs.c 2006-10-07 23:55:33.909310000 +0900
@@ -389,7 +389,7 @@ static void receive_chars(struct dec_ser
if (ch == 0)
continue;
if (time_before(jiffies, break_pressed + HZ * 5)) {
- handle_sysrq(ch, regs, NULL);
+ handle_sysrq(ch, NULL);
break_pressed = 0;
continue;
}
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] fix build errors by IRQ hander change
2006-10-06 15:35 [PATCH] fix build errors by IRQ hander change Yoichi Yuasa
2006-10-07 4:41 ` [PATCH] fix DECserial build error " Yoichi Yuasa
@ 2006-10-08 1:17 ` Ralf Baechle
1 sibling, 0 replies; 3+ messages in thread
From: Ralf Baechle @ 2006-10-08 1:17 UTC (permalink / raw)
To: Yoichi Yuasa; +Cc: linux-mips
On Sat, Oct 07, 2006 at 12:35:16AM +0900, Yoichi Yuasa wrote:
> Hi Ralf,
>
> This patch has fixed build errors by the IRQ handler change.
I didn't like David Howell's MIPS patch which left alot of the pt_regs
passing in the MIPS code still alive. So I went for a much larger and
intrusive solution which I've pushed just so at least some configurations
are usable again. I've tested Malta without multithreading (OK), Malta
VSMP (hangs), Malta SMTC (hangs), Qemu (OK) so it seems there is
something still broken with SMP, I guess IPIs.
Ralf
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2006-10-08 1:17 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-10-06 15:35 [PATCH] fix build errors by IRQ hander change Yoichi Yuasa
2006-10-07 4:41 ` [PATCH] fix DECserial build error " Yoichi Yuasa
2006-10-08 1:17 ` [PATCH] fix build errors " Ralf Baechle
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox