* [akpm-mm:mm-new] BUILD REGRESSION 0bffe67ab8a72b3725cc31c4b525709bd3a3e223
@ 2026-09-09 21:56 kernel test robot
2026-09-09 22:36 ` Andrew Morton
0 siblings, 1 reply; 3+ messages in thread
From: kernel test robot @ 2026-09-09 21:56 UTC (permalink / raw)
To: David Hildenbrand; +Cc: Andrew Morton, Linux Memory Management List, mm-commits
tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-new
branch HEAD: 0bffe67ab8a72b3725cc31c4b525709bd3a3e223 mm/swap, PM: hibernate: atomically replace hibernation pin
Error/Warning (recently discovered and may have been fixed):
https://lore.kernel.org/oe-kbuild-all/202609100351.ALNh2KwC-lkp@intel.com
include/linux/mmzone.h:1692:10: error: call to undeclared function 'NODE_DATA'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
include/linux/mmzone.h:1692:26: error: member reference type 'int' is not a pointer
include/linux/mmzone.h:1780:35: error: conflicting types for 'NODE_DATA'
Error/Warning ids grouped by kconfigs:
recent_errors
`-- x86_64-randconfig-123-20260910
|-- include-linux-mmzone.h:error:call-to-undeclared-function-NODE_DATA-ISO-C99-and-later-do-not-support-implicit-function-declarations
|-- include-linux-mmzone.h:error:conflicting-types-for-NODE_DATA
`-- include-linux-mmzone.h:error:member-reference-type-int-is-not-a-pointer
elapsed time: 730m
configs tested: 69
configs skipped: 0
tested configs:
alpha allnoconfig gcc-16.1.0
alpha allyesconfig gcc-16.1.0
arc allmodconfig gcc-16.1.0
arc allnoconfig gcc-16.1.0
arc allyesconfig gcc-16.1.0
arm allnoconfig clang-17
arm allnoconfig gcc-16.1.0
arm allyesconfig gcc-16.1.0
arm64 allmodconfig clang-24
arm64 allnoconfig gcc-16.1.0
csky allmodconfig gcc-16.1.0
csky allnoconfig gcc-16.1.0
hexagon allmodconfig clang-24
hexagon allnoconfig clang-24
hexagon allnoconfig gcc-16.1.0
i386 allmodconfig gcc-14
i386 allnoconfig gcc-14
i386 allnoconfig gcc-16.1.0
i386 allyesconfig gcc-14
loongarch allmodconfig clang-19
loongarch allnoconfig clang-20
loongarch allnoconfig gcc-16.1.0
m68k allmodconfig gcc-16.1.0
m68k allnoconfig gcc-16.1.0
m68k allyesconfig gcc-16.1.0
microblaze allnoconfig gcc-16.1.0
microblaze allyesconfig gcc-16.1.0
mips allmodconfig gcc-16.1.0
mips allnoconfig gcc-16.1.0
mips allyesconfig gcc-16.1.0
nios2 allmodconfig gcc-11.5.0
nios2 allnoconfig clang-24
nios2 allnoconfig gcc-11.5.0
openrisc allmodconfig gcc-16.1.0
openrisc allnoconfig clang-24
openrisc allnoconfig gcc-16.1.0
parisc allmodconfig gcc-16.1.0
parisc allnoconfig clang-24
parisc allnoconfig gcc-16.1.0
parisc allyesconfig gcc-16.1.0
powerpc allmodconfig gcc-16.1.0
powerpc allnoconfig clang-24
powerpc allnoconfig gcc-16.1.0
riscv allmodconfig clang-24
riscv allnoconfig clang-24
riscv allnoconfig gcc-16.1.0
riscv allyesconfig clang-24
s390 allmodconfig clang-24
s390 allnoconfig clang-24
s390 allyesconfig gcc-16.1.0
sh allmodconfig gcc-16.1.0
sh allnoconfig clang-24
sh allnoconfig gcc-16.1.0
sh allyesconfig gcc-16.1.0
sparc allnoconfig clang-24
sparc allnoconfig gcc-16.1.0
sparc64 allmodconfig clang-20
um allmodconfig clang-17
um allnoconfig clang-17
um allnoconfig clang-24
um allyesconfig gcc-14
x86_64 allmodconfig clang-22
x86_64 allnoconfig clang-22
x86_64 allnoconfig clang-24
x86_64 allyesconfig clang-22
x86_64 rhel-9.4-rust clang-22
xtensa allnoconfig clang-24
xtensa allnoconfig gcc-16.1.0
xtensa allyesconfig gcc-16.1.0
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [akpm-mm:mm-new] BUILD REGRESSION 0bffe67ab8a72b3725cc31c4b525709bd3a3e223
2026-09-09 21:56 [akpm-mm:mm-new] BUILD REGRESSION 0bffe67ab8a72b3725cc31c4b525709bd3a3e223 kernel test robot
@ 2026-09-09 22:36 ` Andrew Morton
2026-09-10 2:43 ` Muchun Song
0 siblings, 1 reply; 3+ messages in thread
From: Andrew Morton @ 2026-09-09 22:36 UTC (permalink / raw)
To: kernel test robot
Cc: David Hildenbrand, Linux Memory Management List, mm-commits,
Muchun Song, Muchun Song
On Thu, 10 Sep 2026 05:56:22 +0800 kernel test robot <lkp@intel.com> wrote:
> tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-new
> branch HEAD: 0bffe67ab8a72b3725cc31c4b525709bd3a3e223 mm/swap, PM: hibernate: atomically replace hibernation pin
>
> Error/Warning (recently discovered and may have been fixed):
>
> https://lore.kernel.org/oe-kbuild-all/202609100351.ALNh2KwC-lkp@intel.com
>
> include/linux/mmzone.h:1692:10: error: call to undeclared function 'NODE_DATA'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
> include/linux/mmzone.h:1692:26: error: member reference type 'int' is not a pointer
> include/linux/mmzone.h:1780:35: error: conflicting types for 'NODE_DATA'
>
> Error/Warning ids grouped by kconfigs:
Thanks. That's Muchun's "mm/sparse-vmemmap: switch device DAX to
shared tail vmemmap pages" not liking CONFIG_NUMA=n.
I'll try this nasty thing for now. Muchun, please make it less nasty!
--- a/include/linux/mmzone.h~mm-sparse-vmemmap-switch-device-dax-to-shared-tail-vmemmap-pages-fix
+++ a/include/linux/mmzone.h
@@ -1687,16 +1687,20 @@ static inline bool zone_is_zone_device(c
return zone_idx(zone) == ZONE_DEVICE;
}
+#ifdef CONFIG_NUMA
static inline struct zone *device_zone(int nid)
{
return &NODE_DATA(nid)->node_zones[ZONE_DEVICE];
}
+#endif
#else
static inline bool zone_is_zone_device(const struct zone *zone)
{
return false;
}
+#endif
+#if !defined(CONFIG_ZONE_DEVICE) && !defined(CONFIG_NUMA)
static inline struct zone *device_zone(int nid)
{
return NULL;
_
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [akpm-mm:mm-new] BUILD REGRESSION 0bffe67ab8a72b3725cc31c4b525709bd3a3e223
2026-09-09 22:36 ` Andrew Morton
@ 2026-09-10 2:43 ` Muchun Song
0 siblings, 0 replies; 3+ messages in thread
From: Muchun Song @ 2026-09-10 2:43 UTC (permalink / raw)
To: Andrew Morton
Cc: kernel test robot, David Hildenbrand,
Linux Memory Management List, mm-commits, Muchun Song
> On Sep 10, 2026, at 06:36, Andrew Morton <akpm@linux-foundation.org> wrote:
>
> On Thu, 10 Sep 2026 05:56:22 +0800 kernel test robot <lkp@intel.com> wrote:
>
>> tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-new
>> branch HEAD: 0bffe67ab8a72b3725cc31c4b525709bd3a3e223 mm/swap, PM: hibernate: atomically replace hibernation pin
>>
>> Error/Warning (recently discovered and may have been fixed):
>>
>> https://lore.kernel.org/oe-kbuild-all/202609100351.ALNh2KwC-lkp@intel.com
>>
>> include/linux/mmzone.h:1692:10: error: call to undeclared function 'NODE_DATA'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
>> include/linux/mmzone.h:1692:26: error: member reference type 'int' is not a pointer
>> include/linux/mmzone.h:1780:35: error: conflicting types for 'NODE_DATA'
>>
>> Error/Warning ids grouped by kconfigs:
>
> Thanks. That's Muchun's "mm/sparse-vmemmap: switch device DAX to
> shared tail vmemmap pages" not liking CONFIG_NUMA=n.
>
> I'll try this nasty thing for now. Muchun, please make it less nasty!
My bad.
device_zone() uses NODE_DATA() before it is defined when CONFIG_NUMA
is disabled. This causes non-NUMA builds with CONFIG_ZONE_DEVICE=y to
fail.
Move device_zone() after the definition of NODE_DATA() so it is available
in non-NUMA builds.
diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 03ed9232f186..df42fbf3962a 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -1686,21 +1686,11 @@ static inline bool zone_is_zone_device(const struct zone *zone)
{
return zone_idx(zone) == ZONE_DEVICE;
}
-
-static inline struct zone *device_zone(int nid)
-{
- return &NODE_DATA(nid)->node_zones[ZONE_DEVICE];
-}
#else
static inline bool zone_is_zone_device(const struct zone *zone)
{
return false;
}
-
-static inline struct zone *device_zone(int nid)
-{
- return NULL;
-}
#endif
/*
@@ -2159,11 +2149,21 @@ static inline int online_device_section(const struct mem_section *section)
return section && ((section->section_mem_map & flags) == flags);
}
+
+static inline struct zone *device_zone(int nid)
+{
+ return &NODE_DATA(nid)->node_zones[ZONE_DEVICE];
+}
#else
static inline int online_device_section(const struct mem_section *section)
{
return 0;
}
+
+static inline struct zone *device_zone(int nid)
+{
+ return NULL;
+}
#endif
static inline int online_section_nr(unsigned long nr)
>
> --- a/include/linux/mmzone.h~mm-sparse-vmemmap-switch-device-dax-to-shared-tail-vmemmap-pages-fix
> +++ a/include/linux/mmzone.h
> @@ -1687,16 +1687,20 @@ static inline bool zone_is_zone_device(c
> return zone_idx(zone) == ZONE_DEVICE;
> }
>
> +#ifdef CONFIG_NUMA
> static inline struct zone *device_zone(int nid)
> {
> return &NODE_DATA(nid)->node_zones[ZONE_DEVICE];
> }
> +#endif
> #else
> static inline bool zone_is_zone_device(const struct zone *zone)
> {
> return false;
> }
> +#endif
>
> +#if !defined(CONFIG_ZONE_DEVICE) && !defined(CONFIG_NUMA)
> static inline struct zone *device_zone(int nid)
> {
> return NULL;
> _
>
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-09-10 2:44 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-09 21:56 [akpm-mm:mm-new] BUILD REGRESSION 0bffe67ab8a72b3725cc31c4b525709bd3a3e223 kernel test robot
2026-09-09 22:36 ` Andrew Morton
2026-09-10 2:43 ` Muchun Song
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.