[PATCH] m68k: adjust to changed HARDIRQ_MASK
authorRoman Zippel <zippel@linux-m68k.org>
Fri, 23 Jun 2006 09:04:59 +0000 (02:04 -0700)
committerLinus Torvalds <torvalds@g5.osdl.org>
Fri, 23 Jun 2006 14:43:01 +0000 (07:43 -0700)
Adjust entry.S to the changed HARDIRQ_MASK, add a check to prevent it from
silently breaking again.

Signed-off-by: Roman Zippel <zippel@linux-m68k.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/m68k/kernel/entry.S
arch/m68k/kernel/ints.c

index 320fde0..522079f 100644 (file)
@@ -226,7 +226,7 @@ ENTRY(nmi_handler)
 inthandler:
        SAVE_ALL_INT
        GET_CURRENT(%d0)
-       addqb   #1,%curptr@(TASK_INFO+TINFO_PREEMPT+2)
+       addqb   #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1)
                                        |  put exception # in d0
        bfextu %sp@(PT_VECTOR){#4,#10},%d0
 
@@ -245,7 +245,7 @@ inthandler:
 3:     addql   #8,%sp                  |  pop parameters off stack
 
 ret_from_interrupt:
-       subqb   #1,%curptr@(TASK_INFO+TINFO_PREEMPT+2)
+       subqb   #1,%curptr@(TASK_INFO+TINFO_PREEMPT+1)
        jeq     1f
 2:
        RESTORE_ALL
index 514d323..4b85514 100644 (file)
@@ -95,6 +95,12 @@ void __init init_IRQ(void)
 {
        int i;
 
+       /* assembly irq entry code relies on this... */
+       if (HARDIRQ_MASK != 0x00ff0000) {
+               extern void hardirq_mask_is_broken(void);
+               hardirq_mask_is_broken();
+       }
+
        for (i = 0; i < SYS_IRQS; i++) {
                if (mach_default_handler)
                        irq_list[i].handler = (*mach_default_handler)[i];