sh: Make all PxSEGADDR() calls fatal for non-legacy configs.
authorPaul Mundt <lethal@linux-sh.org>
Wed, 13 Jan 2010 09:45:12 +0000 (18:45 +0900)
committerPaul Mundt <lethal@linux-sh.org>
Wed, 13 Jan 2010 09:45:12 +0000 (18:45 +0900)
This stubs out all of the PxSEGADDR() wrappers for non-legacy code.
29-bit will continue to work with these, while 32-bit code will now blow
up on compile rather than at runtime.

The vast majority of the in-tree offenders are gone, with the only
remaining culprits being unable to support 32-bit mode.

Hopefully this will prevent anyone from ever using these again.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
arch/sh/include/asm/addrspace.h

index bcd7d4d..268efd6 100644 (file)
        ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P3SEG))
 #define P4SEGADDR(a)   \
        ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P4SEG))
-#endif /* 29BIT */
+#else
+/*
+ * These will never work in 32-bit, don't even bother.
+ */
+#define P1SEGADDR(a)   __futile_remapping_attempt
+#define P2SEGADDR(a)   __futile_remapping_attempt
+#define P3SEGADDR(a)   __futile_remapping_attempt
+#define P4SEGADDR(a)   __futile_remapping_attempt
+#endif
 #endif /* P1SEG */
 
 /* Check if an address can be reached in 29 bits */