m68k: Allow no CPU/platform type for allnoconfig
authorGeert Uytterhoeven <geert@linux-m68k.org>
Thu, 17 Jul 2008 19:16:12 +0000 (21:16 +0200)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 21 Jul 2008 00:24:38 +0000 (17:24 -0700)
Allow no CPU/platform type for allnoconfig
  - Provide a dummy value for FPSTATESIZE if no CPU type was selected
  - Provide a dummy value for NR_IRQS if no platform type was selected
  - Warn the user if no CPU or platform type was selected

Note: you still cannot build an allnoconfig kernel, as CONFIG_SWAP=n doesn't
build and we cannot easily fix that
(http://groups.google.com/group/linux.kernel/browse_thread/thread/d430c78b07e1827b)

Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/m68k/kernel/setup.c
include/asm-m68k/fpu.h
include/asm-m68k/irq.h
include/asm-m68k/tlbflush.h

index a9fb83a8c1801fbbc018bb1fb6ed034da3bcea09..b1f39e4cedbca3e35fd443fffa4463b46e2b195c 100644 (file)
@@ -26,6 +26,7 @@
 
 #include <asm/bootinfo.h>
 #include <asm/setup.h>
+#include <asm/fpu.h>
 #include <asm/irq.h>
 #include <asm/io.h>
 #include <asm/machdep.h>
 #include <asm/dvma.h>
 #endif
 
+#if !FPSTATESIZE || !NR_IRQS
+#warning No CPU/platform type selected, your kernel will not work!
+#warning Are you building an allnoconfig kernel?
+#endif
+
 unsigned long m68k_machtype;
 EXPORT_SYMBOL(m68k_machtype);
 unsigned long m68k_cputype;
index 59701d7b4e78a646bda5390c901133557f893be4..ffb6b8cfc6d59c73851c82060ff5bcbedeb8c615 100644 (file)
@@ -7,15 +7,15 @@
  */
 
 #if defined(CONFIG_M68020) || defined(CONFIG_M68030)
-#define FPSTATESIZE (216/sizeof(unsigned char))
+#define FPSTATESIZE (216)
 #elif defined(CONFIG_M68040)
-#define FPSTATESIZE (96/sizeof(unsigned char))
+#define FPSTATESIZE (96)
 #elif defined(CONFIG_M68KFPU_EMU)
-#define FPSTATESIZE (28/sizeof(unsigned char))
+#define FPSTATESIZE (28)
 #elif defined(CONFIG_M68060)
-#define FPSTATESIZE (12/sizeof(unsigned char))
+#define FPSTATESIZE (12)
 #else
-#define FPSTATESIZE error no_cpu_type_configured
+#define FPSTATESIZE (0)
 #endif
 
 #endif /* __M68K_FPU_H */
index eb29a526059169271d29e573182867957a8508a5..226bfc0f21b1e73b5c89cdf5c1f0ada3d8046a56 100644 (file)
@@ -24,7 +24,7 @@
 #elif defined(CONFIG_HP300)
 #define NR_IRQS        8
 #else
-#error unknown nr of irqs
+#define NR_IRQS        0
 #endif
 
 /*
index 17707ec315e2b0a93466aec670259e22befd23f4..acb6bf21a321368024034a7678ad24f824e32bd6 100644 (file)
@@ -16,7 +16,7 @@ static inline void flush_tlb_kernel_page(void *addr)
                                     ".chip 68k"
                                     : : "a" (addr));
                set_fs(old_fs);
-       } else
+       } else if (CPU_IS_020_OR_030)
                __asm__ __volatile__("pflush #4,#4,(%0)" : : "a" (addr));
 }
 
@@ -29,7 +29,7 @@ static inline void __flush_tlb(void)
                __asm__ __volatile__(".chip 68040\n\t"
                                     "pflushan\n\t"
                                     ".chip 68k");
-       else
+       else if (CPU_IS_020_OR_030)
                __asm__ __volatile__("pflush #0,#4");
 }
 
@@ -45,7 +45,7 @@ static inline void __flush_tlb_one(unsigned long addr)
 {
        if (CPU_IS_040_OR_060)
                __flush_tlb040_one(addr);
-       else
+       else if (CPU_IS_020_OR_030)
                __asm__ __volatile__("pflush #0,#4,(%0)" : : "a" (addr));
 }
 
@@ -60,7 +60,7 @@ static inline void flush_tlb_all(void)
                __asm__ __volatile__(".chip 68040\n\t"
                                     "pflusha\n\t"
                                     ".chip 68k");
-       else
+       else if (CPU_IS_020_OR_030)
                __asm__ __volatile__("pflusha");
 }