[parisc-linux-cvs] call do_softirq()
Paul Bame
bame@fc.hp.com
Fri, 06 Jul 2001 15:01:21 -0600
I noticed powerpc was calling do_softirq() from both the timer
and the general interrupt handler. When we do the same thing, a
64-bit 2.4.6 kernel boots to init 2 and works pretty well though
obvious problems remain.
? arch/parisc/kernel/gg
Index: Makefile
===================================================================
RCS file: /home/cvs/parisc/linux/Makefile,v
retrieving revision 1.84
diff -u -r1.84 Makefile
--- Makefile 2001/07/05 21:55:24 1.84
+++ Makefile 2001/07/06 20:58:26
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 4
SUBLEVEL = 6
-EXTRAVERSION = -pa1
+EXTRAVERSION = -pa2
KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
Index: arch/parisc/kernel/head64.S
===================================================================
RCS file: /home/cvs/parisc/linux/arch/parisc/kernel/head64.S,v
retrieving revision 1.4
diff -u -r1.4 head64.S
--- head64.S 2001/07/05 21:33:26 1.4
+++ head64.S 2001/07/06 20:58:26
@@ -24,7 +24,7 @@
#include <asm/pdc.h> /* for PDC_PSW defines */
- /* .level 2.0 */
+ .level 2.0
.section .initcall.init
.align 4
Index: arch/parisc/kernel/irq.c
===================================================================
RCS file: /home/cvs/parisc/linux/arch/parisc/kernel/irq.c,v
retrieving revision 1.39
diff -u -r1.39 irq.c
--- irq.c 2001/06/12 16:09:52 1.39
+++ irq.c 2001/07/06 20:58:26
@@ -383,6 +383,9 @@
}
irq_exit(cpu, irq);
+
+ if (softirq_pending(cpu))
+ do_softirq();
}
Index: arch/parisc/kernel/time.c
===================================================================
RCS file: /home/cvs/parisc/linux/arch/parisc/kernel/time.c,v
retrieving revision 1.11
diff -u -r1.11 time.c
--- time.c 2001/04/06 05:10:54 1.11
+++ time.c 2001/07/06 20:58:26
@@ -75,6 +75,9 @@
#ifdef CONFIG_CHASSIS_LCD_LED
led_interrupt_func();
#endif
+
+ if (softirq_pending(smp_processor_id()))
+ do_softirq();
}
/*** converted from ia64 ***/