patch-2.2.8 linux/arch/m68k/kernel/entry.S
Next file: linux/arch/m68k/kernel/head.S
Previous file: linux/arch/m68k/config.in
Back to the patch index
Back to the overall index
- Lines: 43
- Date:
Tue May 11 09:57:14 1999
- Orig file:
v2.2.7/linux/arch/m68k/kernel/entry.S
- Orig date:
Wed Jan 20 23:14:04 1999
diff -u --recursive --new-file v2.2.7/linux/arch/m68k/kernel/entry.S linux/arch/m68k/kernel/entry.S
@@ -164,8 +164,17 @@
movel %sp,%sp@-
movel %d0,%sp@- | put vector # on stack
+#if defined(MACH_Q40_ONLY) && defined(CONFIG_BLK_DEV_FD)
+ btstb #4,0xff000000 | Q40 floppy needs very special treatment ...
+ jbeq 1f
+ btstb #3,0xff000004
+ jbeq 1f
+ jbsr SYMBOL_NAME(floppy_hardint)
+ jbra 3f
+1:
+#endif
jbsr SYMBOL_NAME(process_int)| process the IRQ
- addql #8,%sp | pop parameters off stack
+3: addql #8,%sp | pop parameters off stack
SYMBOL_NAME_LABEL(ret_from_interrupt)
subql #1,SYMBOL_NAME(local_irq_count)
@@ -295,6 +304,8 @@
2: fmovemx %fp0-%fp7,%a0@(TASK_TSS+TSS_FPREG)
fmoveml %fpcr/%fpsr/%fpiar,%a0@(TASK_TSS+TSS_FPCNTL)
3:
+ /* Return previous task in %d1 */
+ movel %curptr,%d1
/* switch to new task (a1 contains new task) */
movel %a1,%curptr
@@ -320,7 +331,14 @@
movec %d0,%cacr
/* switch the root pointer */
+#ifdef CPU_M68030_ONLY
+ .chip 68030
+ pmovefd %a1@(TASK_TSS+TSS_CRP),%crp
+ .chip 68k
+ pflush #0,#4
+#else
pmove %a1@(TASK_TSS+TSS_CRP),%crp
+#endif
#endif
#if defined(CPU_M68020_OR_M68030) && defined(CPU_M68040_OR_M68060)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)