All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.