--- linux-2.0.29/arch/m68k/kernel/setup.c.161297	Sat Dec 20 06:09:26 1997
+++ linux-2.0.29/arch/m68k/kernel/setup.c	Sat Dec 20 06:09:26 1997
@@ -35,6 +35,8 @@
 
 int m68k_is040or060 = 0;
 
+int m68k_has_fpu = 0;
+
 unsigned short int mach_max_noint_ipl = 0;
 unsigned short int mach_allowint = 0xf8ff;
 
@@ -129,6 +131,7 @@
 	/* clear the fpu if we have one */
 	if (boot_info.cputype & (FPU_68881|FPU_68882|FPU_68040|FPU_68060)) {
 		volatile int zero = 0;
+		m68k_has_fpu = 1;
 		asm __volatile__ ("frestore %0" : : "m" (zero));
 	}
 
--- linux-2.0.29/fs/Makefile.161297	Sat Dec 20 22:16:18 1997
+++ linux-2.0.29/fs/Makefile	Sat Dec 20 22:16:18 1997
@@ -152,7 +152,7 @@
 ifeq ($(CONFIG_HFS_FS),y)
 SUB_DIRS += hfs
 else
-  ifeq ($(CONFIG_UFS_FS),m)
+  ifeq ($(CONFIG_HFS_FS),m)
   MOD_SUB_DIRS += hfs
   endif
 endif
--- linux-2.0.29/include/asm-m68k/processor.h.161297	Sat Dec 20 03:38:58 1997
+++ linux-2.0.29/include/asm-m68k/processor.h	Sat Dec 20 06:07:25 1997
@@ -60,6 +60,8 @@
 #define alloc_kernel_stack()    __get_free_page(GFP_KERNEL)
 #define free_kernel_stack(page) free_page((page))
 
+extern int m68k_has_fpu;
+
 /*
  * Do necessary setup to start up a newly executed thread.
  */
@@ -68,8 +70,9 @@
 {
 	unsigned long nilstate = 0;
 
-	/* clear floating point state */
-	__asm__ __volatile__ ("frestore %0@" : : "a" (&nilstate));
+	if (m68k_has_fpu)
+		/* clear floating point state */
+		__asm__ __volatile__ ("frestore %0@" : : "a" (&nilstate));
 
 	/* reads from user space */
 	set_fs(USER_DS);
