From: Dmitry Vyukov <dvyukov@xxxxxxxxxx> Somehow all existing inclusions of sparsemem.h are preceded by inclusion of <linux/types.h>, but KMSAN contains code that transitively includes sparsemem.h without that header, resulting in a compilation error: sparsemem.h:34:32: error: unknown type name 'phys_addr_t' extern int phys_to_target_node(phys_addr_t start); ^ sparsemem.h:36:39: error: unknown type name 'u64' extern int memory_add_physaddr_to_nid(u64 start); ^ Because sparsemem.h does actually use phys_addr_t and u64, include types.h explicitly. Signed-off-by: Dmitry Vyukov <dvyukov@xxxxxxxxxx> --- Link: https://linux-review.googlesource.com/id/Ifae221ce85d870d8f8d17173bd44d5cf9be2950f --- arch/x86/include/asm/sparsemem.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/arch/x86/include/asm/sparsemem.h b/arch/x86/include/asm/sparsemem.h index 6a9ccc1b2be5d..64df897c0ee30 100644 --- a/arch/x86/include/asm/sparsemem.h +++ b/arch/x86/include/asm/sparsemem.h @@ -2,6 +2,8 @@ #ifndef _ASM_X86_SPARSEMEM_H #define _ASM_X86_SPARSEMEM_H +#include <linux/types.h> + #ifdef CONFIG_SPARSEMEM /* * generic non-linear memory support: -- 2.34.1.173.g76aa8bc2d0-goog