powerpc/mm: Always use STRICT_MM_TYPECHECKS
authorMichael Ellerman <mpe@ellerman.id.au>
Fri, 29 Apr 2016 13:25:25 +0000 (23:25 +1000)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 1 May 2016 08:32:14 +0000 (18:32 +1000)
Testing done by Paul Mackerras has shown that with a modern compiler
there is no negative effect on code generation from enabling
STRICT_MM_TYPECHECKS.

So remove the option, and always use the strict type definitions.

Acked-by: Paul Mackerras <paulus@ozlabs.org>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
arch/powerpc/Kconfig.debug
arch/powerpc/include/asm/pgtable-types.h

index 638f9ce740f52b9f3a38247dc0b51dd922efac13..d3fcf7e64e3a4a68980fca0c1067794cddadf977 100644 (file)
@@ -19,14 +19,6 @@ config PPC_WERROR
        depends on !PPC_DISABLE_WERROR
        default y
 
-config STRICT_MM_TYPECHECKS
-       bool "Do extra type checking on mm types"
-       default n
-       help
-         This option turns on extra type checking for some mm related types.
-
-         If you don't know what this means, say N.
-
 config PRINT_STACK_DEPTH
        int "Stack depth to print" if DEBUG_KERNEL
        default 64
index 43140f8b059236946a49b0f15635ddd6e8a3c235..1464e74178d87049f7ef73ff86a4c30ea806bb80 100644 (file)
@@ -1,9 +1,6 @@
 #ifndef _ASM_POWERPC_PGTABLE_TYPES_H
 #define _ASM_POWERPC_PGTABLE_TYPES_H
 
-#ifdef CONFIG_STRICT_MM_TYPECHECKS
-/* These are used to make use of C type-checking. */
-
 /* PTE level */
 typedef struct { pte_basic_t pte; } pte_t;
 #define __pte(x)       ((pte_t) { (x) })
@@ -48,49 +45,6 @@ typedef struct { unsigned long pgprot; } pgprot_t;
 #define pgprot_val(x)  ((x).pgprot)
 #define __pgprot(x)    ((pgprot_t) { (x) })
 
-#else
-
-/*
- * .. while these make it easier on the compiler
- */
-
-typedef pte_basic_t pte_t;
-#define __pte(x)       (x)
-static inline pte_basic_t pte_val(pte_t pte)
-{
-       return pte;
-}
-
-#ifdef CONFIG_PPC64
-typedef unsigned long pmd_t;
-#define __pmd(x)       (x)
-static inline unsigned long pmd_val(pmd_t pmd)
-{
-       return pmd;
-}
-
-#if defined(CONFIG_PPC_BOOK3S_64) || !defined(CONFIG_PPC_64K_PAGES)
-typedef unsigned long pud_t;
-#define __pud(x)       (x)
-static inline unsigned long pud_val(pud_t pud)
-{
-       return pud;
-}
-#endif /* CONFIG_PPC_BOOK3S_64 || !CONFIG_PPC_64K_PAGES */
-#endif /* CONFIG_PPC64 */
-
-typedef unsigned long pgd_t;
-#define __pgd(x)       (x)
-static inline unsigned long pgd_val(pgd_t pgd)
-{
-       return pgd;
-}
-
-typedef unsigned long pgprot_t;
-#define pgprot_val(x)  (x)
-#define __pgprot(x)    (x)
-
-#endif /* CONFIG_STRICT_MM_TYPECHECKS */
 /*
  * With hash config 64k pages additionally define a bigger "real PTE" type that
  * gathers the "second half" part of the PTE for pseudo 64k pages