Commit 61031952f4c8 ("arch, x86: pmem api for ensuring durability of persistent memory updates") defined __pmem in include/linux/compiler.h only for the case CONFIG_RCU_SPARSE_POINTER=n, probably by accident. With CONFIG_RCU_SPARSE_POINTER=y a sparse compile gives the error: CHECK init/main.c arch/x86/include/asm/io.h:251:27: error: void declaration arch/x86/include/asm/io.h:251:27: error: Expected ; at end of declaration arch/x86/include/asm/io.h:251:27: error: got * arch/x86/include/asm/io.h:255:1: error: Expected ; at the end of type declaration arch/x86/include/asm/io.h:255:1: error: got } This happens because the __pmem in arch/x86/include/asm/io.h:251: static inline void __pmem *arch_memremap_pmem([...]) is undefined. Define __pmem unconditionally in include/linux/compiler.h. Signed-off-by: Nicolai Stange <nicstange@xxxxxxxxx> --- include/linux/compiler.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/linux/compiler.h b/include/linux/compiler.h index 7f8ad95..4f85b58 100644 --- a/include/linux/compiler.h +++ b/include/linux/compiler.h @@ -21,8 +21,8 @@ # define __rcu __attribute__((noderef, address_space(4))) #else # define __rcu -# define __pmem __attribute__((noderef, address_space(5))) #endif +# define __pmem __attribute__((noderef, address_space(5))) extern void __chk_user_ptr(const volatile void __user *); extern void __chk_io_ptr(const volatile void __iomem *); #else -- 2.4.5 -- To unsubscribe from this list: send the line "unsubscribe linux-sparse" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html