Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [akpm-mm:mm-new 356/376] include/linux/mmzone.h:1692:10: error: call to undeclared function 'NODE_DATA'; ISO C99 and later do not support implicit function declarations
@ 2026-09-09 19:28 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-09-09 19:28 UTC (permalink / raw)
  To: Muchun Song
  Cc: oe-kbuild-all, David Hildenbrand, Andrew Morton,
	Linux Memory Management List, mm-commits

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-new
head:   0bffe67ab8a72b3725cc31c4b525709bd3a3e223
commit: 6ebb1b77696e9870a9621c0cedee2508357cb480 [356/376] mm/sparse-vmemmap: switch device DAX to shared tail vmemmap pages
config: x86_64-randconfig-123-20260910 (https://download.01.org/0day-ci/archive/20260910/202609100351.ALNh2KwC-lkp@intel.com/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260910/202609100351.ALNh2KwC-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609100351.ALNh2KwC-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from arch/x86/kernel/asm-offsets.c:9:
   In file included from include/linux/crypto.h:18:
   In file included from include/linux/slab.h:17:
   In file included from include/linux/gfp.h:7:
>> 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]
    1692 |         return &NODE_DATA(nid)->node_zones[ZONE_DEVICE];
         |                 ^
>> include/linux/mmzone.h:1692:26: error: member reference type 'int' is not a pointer
    1692 |         return &NODE_DATA(nid)->node_zones[ZONE_DEVICE];
         |                 ~~~~~~~~~~~~~~  ^
>> include/linux/mmzone.h:1780:35: error: conflicting types for 'NODE_DATA'
    1780 | static inline struct pglist_data *NODE_DATA(int nid)
         |                                   ^
   include/linux/mmzone.h:1692:10: note: previous implicit declaration is here
    1692 |         return &NODE_DATA(nid)->node_zones[ZONE_DEVICE];
         |                 ^
   In file included from arch/x86/kernel/asm-offsets.c:10:
   In file included from include/crypto/aria.h:22:
   In file included from include/linux/module.h:20:
   In file included from include/linux/elf.h:6:
   In file included from arch/x86/include/asm/elf.h:10:
   In file included from arch/x86/include/asm/ia32.h:7:
   In file included from include/linux/compat.h:17:
   In file included from include/linux/fs.h:5:
   In file included from include/linux/fs/super.h:5:
   In file included from include/linux/fs/super_types.h:13:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:98:11: warning: array index 3 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
      98 |                 return (set->sig[3] | set->sig[2] |
         |                         ^        ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^
   In file included from arch/x86/kernel/asm-offsets.c:10:
   In file included from include/crypto/aria.h:22:
   In file included from include/linux/module.h:20:
   In file included from include/linux/elf.h:6:
   In file included from arch/x86/include/asm/elf.h:10:
   In file included from arch/x86/include/asm/ia32.h:7:
   In file included from include/linux/compat.h:17:
   In file included from include/linux/fs.h:5:
   In file included from include/linux/fs/super.h:5:
   In file included from include/linux/fs/super_types.h:13:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:98:25: warning: array index 2 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
      98 |                 return (set->sig[3] | set->sig[2] |
         |                                       ^        ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^
   In file included from arch/x86/kernel/asm-offsets.c:10:
   In file included from include/crypto/aria.h:22:
   In file included from include/linux/module.h:20:
   In file included from include/linux/elf.h:6:
   In file included from arch/x86/include/asm/elf.h:10:
   In file included from arch/x86/include/asm/ia32.h:7:
   In file included from include/linux/compat.h:17:
   In file included from include/linux/fs.h:5:
   In file included from include/linux/fs/super.h:5:
   In file included from include/linux/fs/super_types.h:13:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:99:4: warning: array index 1 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
      99 |                         set->sig[1] | set->sig[0]) == 0;
         |                         ^        ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^
   In file included from arch/x86/kernel/asm-offsets.c:10:
   In file included from include/crypto/aria.h:22:
   In file included from include/linux/module.h:20:
   In file included from include/linux/elf.h:6:
   In file included from arch/x86/include/asm/elf.h:10:
   In file included from arch/x86/include/asm/ia32.h:7:
   In file included from include/linux/compat.h:17:
   In file included from include/linux/fs.h:5:
   In file included from include/linux/fs/super.h:5:
   In file included from include/linux/fs/super_types.h:13:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:101:11: warning: array index 1 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
     101 |                 return (set->sig[1] | set->sig[0]) == 0;
         |                         ^        ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^
   In file included from arch/x86/kernel/asm-offsets.c:10:
   In file included from include/crypto/aria.h:22:
   In file included from include/linux/module.h:20:
   In file included from include/linux/elf.h:6:
   In file included from arch/x86/include/asm/elf.h:10:
   In file included from arch/x86/include/asm/ia32.h:7:
   In file included from include/linux/compat.h:17:
   In file included from include/linux/fs.h:5:
   In file included from include/linux/fs/super.h:5:
   In file included from include/linux/fs/super_types.h:13:
   In file included from include/linux/percpu-rwsem.h:7:
   In file included from include/linux/rcuwait.h:6:
   In file included from include/linux/sched/signal.h:6:
   include/linux/signal.h:114:11: warning: array index 3 is past the end of the array (that has type 'const unsigned long[1]') [-Warray-bounds]
     114 |                 return  (set1->sig[3] == set2->sig[3]) &&
         |                          ^         ~
   arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
      24 |         unsigned long sig[_NSIG_WORDS];
         |         ^


vim +/NODE_DATA +1692 include/linux/mmzone.h

  1689	
  1690	static inline struct zone *device_zone(int nid)
  1691	{
> 1692		return &NODE_DATA(nid)->node_zones[ZONE_DEVICE];
  1693	}
  1694	#else
  1695	static inline bool zone_is_zone_device(const struct zone *zone)
  1696	{
  1697		return false;
  1698	}
  1699	
  1700	static inline struct zone *device_zone(int nid)
  1701	{
  1702		return NULL;
  1703	}
  1704	#endif
  1705	
  1706	/*
  1707	 * Returns true if a zone has pages managed by the buddy allocator.
  1708	 * All the reclaim decisions have to use this function rather than
  1709	 * populated_zone(). If the whole zone is reserved then we can easily
  1710	 * end up with populated_zone() && !managed_zone().
  1711	 */
  1712	static inline bool managed_zone(const struct zone *zone)
  1713	{
  1714		return zone_managed_pages(zone);
  1715	}
  1716	
  1717	/* Returns true if a zone has memory */
  1718	static inline bool populated_zone(const struct zone *zone)
  1719	{
  1720		return zone->present_pages;
  1721	}
  1722	
  1723	#ifdef CONFIG_NUMA
  1724	static inline int zone_to_nid(const struct zone *zone)
  1725	{
  1726		return zone->node;
  1727	}
  1728	
  1729	static inline void zone_set_nid(struct zone *zone, int nid)
  1730	{
  1731		zone->node = nid;
  1732	}
  1733	#else
  1734	static inline int zone_to_nid(const struct zone *zone)
  1735	{
  1736		return 0;
  1737	}
  1738	
  1739	static inline void zone_set_nid(struct zone *zone, int nid) {}
  1740	#endif
  1741	
  1742	extern int movable_zone;
  1743	
  1744	static inline int is_highmem_idx(enum zone_type idx)
  1745	{
  1746	#ifdef CONFIG_HIGHMEM
  1747		return (idx == ZONE_HIGHMEM ||
  1748			(idx == ZONE_MOVABLE && movable_zone == ZONE_HIGHMEM));
  1749	#else
  1750		return 0;
  1751	#endif
  1752	}
  1753	
  1754	/**
  1755	 * is_highmem - helper function to quickly check if a struct zone is a
  1756	 *              highmem zone or not.  This is an attempt to keep references
  1757	 *              to ZONE_{DMA/NORMAL/HIGHMEM/etc} in general code to a minimum.
  1758	 * @zone: pointer to struct zone variable
  1759	 * Return: 1 for a highmem zone, 0 otherwise
  1760	 */
  1761	static inline int is_highmem(const struct zone *zone)
  1762	{
  1763		return is_highmem_idx(zone_idx(zone));
  1764	}
  1765	
  1766	bool has_managed_zone(enum zone_type zone);
  1767	static inline bool has_managed_dma(void)
  1768	{
  1769	#ifdef CONFIG_ZONE_DMA
  1770		return has_managed_zone(ZONE_DMA);
  1771	#else
  1772		return false;
  1773	#endif
  1774	}
  1775	
  1776	
  1777	#ifndef CONFIG_NUMA
  1778	
  1779	extern struct pglist_data contig_page_data;
> 1780	static inline struct pglist_data *NODE_DATA(int nid)
  1781	{
  1782		return &contig_page_data;
  1783	}
  1784	

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-09-09 19:29 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-09-09 19:28 [akpm-mm:mm-new 356/376] include/linux/mmzone.h:1692:10: error: call to undeclared function 'NODE_DATA'; ISO C99 and later do not support implicit function declarations kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox