Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

sh: Make all PxSEGADDR() calls fatal for non-legacy configs.

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>

+9 -1
+9 -1
arch/sh/include/asm/addrspace.h
··· 40 40 ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P3SEG)) 41 41 #define P4SEGADDR(a) \ 42 42 ((__typeof__(a))(((unsigned long)(a) & 0x1fffffff) | P4SEG)) 43 - #endif /* 29BIT */ 43 + #else 44 + /* 45 + * These will never work in 32-bit, don't even bother. 46 + */ 47 + #define P1SEGADDR(a) __futile_remapping_attempt 48 + #define P2SEGADDR(a) __futile_remapping_attempt 49 + #define P3SEGADDR(a) __futile_remapping_attempt 50 + #define P4SEGADDR(a) __futile_remapping_attempt 51 + #endif 44 52 #endif /* P1SEG */ 45 53 46 54 /* Check if an address can be reached in 29 bits */