--- 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);