patch-2.4.5 linux/include/asm-cris/irq.h

Next file: linux/include/asm-cris/pgalloc.h
Previous file: linux/include/asm-cris/io.h
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.4.4/linux/include/asm-cris/irq.h linux/include/asm-cris/irq.h
@@ -45,7 +45,7 @@
 /* SAVE_ALL saves registers so they match pt_regs */
 
 #define SAVE_ALL \
-  "push irp\n\t"       /* push instruction pointer */ \
+  "move irp,[sp=sp-16]\n\t" /* push instruction pointer and fake SBFS struct */ \
   "push srp\n\t"       /* push subroutine return pointer */ \
   "push dccr\n\t"      /* push condition codes */ \
   "push mof\n\t"       /* push multiply overflow reg */ \
@@ -94,7 +94,9 @@
           "_bad_IRQ" #nr "_interrupt:\n\t" \
 	  "push r0\n\t" \
 	  BLOCK_IRQ(mask,nr) \
-	  "pop r0\n\t");
+	  "pop r0\n\t" \
+          "reti\n\t" \
+          "nop\n");
 
 
 #endif  /* _ASM_IRQ_H */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)