[bcain:bcain/hexagon-kcfi 26/93] arch/hexagon/kernel/devtree.c:104:36: error: redefinition of 'setup_machine_fdt'

kernel test robot <[email protected]>
Newsgroups dev.linux.lists.llvm,dev.linux.lists.oe-kbuild-all
Message-ID <[email protected]>
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/bcain/linux.git bcain/hexagon-kcfi
head:   ce0e62c277ea2fc51b37b0625eeacdc5631a488f
commit: c01c2aee2f3a158faf365c893a4578a5a0dee73f [26/93] hexagon: add memory management enhancements
config: hexagon-randconfig-001-20260808 (https://download.01.org/0day-ci/archive/20260808/[email protected]/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 12df34b8469b8095359de8c249cb1b2753fadeea)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260808/[email protected]/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 <[email protected]>
| Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/

All errors (new ones prefixed by >>):

   arch/hexagon/kernel/devtree.c:17:13: warning: no previous prototype for function 'early_init_dt_add_memory_arch' [-Wmissing-prototypes]
      17 | void __init early_init_dt_add_memory_arch(u64 base, u64 size)
         |             ^
   arch/hexagon/kernel/devtree.c:17:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
      17 | void __init early_init_dt_add_memory_arch(u64 base, u64 size)
         | ^
         | static 
   arch/hexagon/kernel/devtree.c:50:6: error: call to undeclared function 'of_get_flat_dt_prop'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
      50 |         p = of_get_flat_dt_prop(node, "bootargs", &l);
         |             ^
   arch/hexagon/kernel/devtree.c:50:4: error: incompatible integer to pointer conversion assigning to 'char *' from 'int' [-Wint-conversion]
      50 |         p = of_get_flat_dt_prop(node, "bootargs", &l);
         |           ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/hexagon/kernel/devtree.c:104:29: warning: attribute declaration must precede definition [-Wignored-attributes]
     104 | const struct machine_desc * __init setup_machine_fdt(void *dt_phys)
         |                             ^
   include/linux/init.h:45:17: note: expanded from macro '__init'
      45 | #define __init          __section(".init.text") __cold __latent_entropy \
         |                         ^
   include/linux/compiler_attributes.h:330:56: note: expanded from macro '__section'
     330 | #define __section(section)              __attribute__((__section__(section)))
         |                                                        ^
   arch/hexagon/include/asm/prom.h:14:42: note: previous definition is here
      14 | static inline const struct machine_desc *setup_machine_fdt(void *dt_phys)
         |                                          ^
   arch/hexagon/kernel/devtree.c:104:29: warning: attribute declaration must precede definition [-Wignored-attributes]
     104 | const struct machine_desc * __init setup_machine_fdt(void *dt_phys)
         |                             ^
   include/linux/init.h:45:41: note: expanded from macro '__init'
      45 | #define __init          __section(".init.text") __cold __latent_entropy \
         |                                                 ^
   include/linux/compiler_types.h:112:34: note: expanded from macro '__cold'
     112 | #define __cold                          __attribute__((__cold__))
         |                                                        ^
   arch/hexagon/include/asm/prom.h:14:42: note: previous definition is here
      14 | static inline const struct machine_desc *setup_machine_fdt(void *dt_phys)
         |                                          ^
>> arch/hexagon/kernel/devtree.c:104:36: error: redefinition of 'setup_machine_fdt'
     104 | const struct machine_desc * __init setup_machine_fdt(void *dt_phys)
         |                                    ^
   arch/hexagon/include/asm/prom.h:14:42: note: previous definition is here
      14 | static inline const struct machine_desc *setup_machine_fdt(void *dt_phys)
         |                                          ^
>> arch/hexagon/kernel/devtree.c:120:2: error: use of undeclared identifier 'initial_boot_params'
     120 |         initial_boot_params = dt_phys;
         |         ^~~~~~~~~~~~~~~~~~~
   arch/hexagon/kernel/devtree.c:126:23: error: use of undeclared identifier 'initial_boot_params'
     126 |         if (fdt_magic(initial_boot_params) != OF_DT_HEADER) {
         |                       ^~~~~~~~~~~~~~~~~~~
   arch/hexagon/kernel/devtree.c:130:12: error: call to undeclared function 'of_get_flat_dt_root'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     130 |         dt_root = of_get_flat_dt_root();
         |                   ^
   arch/hexagon/kernel/devtree.c:132:15: error: call to undeclared function 'of_flat_dt_match_machine'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     132 |         mdesc_best = of_flat_dt_match_machine(NULL, arch_get_next_mach);
         |                      ^
   arch/hexagon/kernel/devtree.c:132:13: error: incompatible integer to pointer conversion assigning to 'const struct machine_desc *' from 'int' [-Wint-conversion]
     132 |         mdesc_best = of_flat_dt_match_machine(NULL, arch_get_next_mach);
         |                    ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/hexagon/kernel/devtree.c:142:9: error: call to undeclared function 'early_init_dt_scan_root'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     142 |         early_init_dt_scan_root();
         |         ^
   arch/hexagon/kernel/devtree.c:147:2: error: call to undeclared function 'early_init_dt_scan_chosen'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     147 |         early_init_dt_scan_chosen(boot_command_line);
         |         ^
   3 warnings and 10 errors generated.


vim +/setup_machine_fdt +104 arch/hexagon/kernel/devtree.c

5d4b53d10af44d Brian Cain  2026-01-24   89  
288801685d7137 Richard Kuo 2025-08-18   90  /*
288801685d7137 Richard Kuo 2025-08-18   91   * setup_machine_fdt - set up machine based on dtb passed to kernel
288801685d7137 Richard Kuo 2025-08-18   92   * @dt_phys: physical address of dtb
288801685d7137 Richard Kuo 2025-08-18   93   *
288801685d7137 Richard Kuo 2025-08-18   94   * Sets up some of the earliest stuff -- setting the machine type,
288801685d7137 Richard Kuo 2025-08-18   95   * pulling the command line options, and finding the memory.
288801685d7137 Richard Kuo 2025-08-18   96   *
288801685d7137 Richard Kuo 2025-08-18   97   * Since we're calling this from setup_arch, this is going to happen
288801685d7137 Richard Kuo 2025-08-18   98   * very, very early.  Prior to even the bootmem being set up in the
288801685d7137 Richard Kuo 2025-08-18   99   * old scheme I think.
288801685d7137 Richard Kuo 2025-08-18  100   *
288801685d7137 Richard Kuo 2025-08-18  101   * Also since we're always being fired up by the hypervisor, then
288801685d7137 Richard Kuo 2025-08-18  102   * we are already running with the MMU on with an init segtable.
288801685d7137 Richard Kuo 2025-08-18  103   */
5d4b53d10af44d Brian Cain  2026-01-24 @104  const struct machine_desc * __init setup_machine_fdt(void *dt_phys)
288801685d7137 Richard Kuo 2025-08-18  105  {
5d4b53d10af44d Brian Cain  2026-01-24  106  	const struct machine_desc *mdesc_best = NULL;
288801685d7137 Richard Kuo 2025-08-18  107  	unsigned long dt_root;
288801685d7137 Richard Kuo 2025-08-18  108  
288801685d7137 Richard Kuo 2025-08-18  109  #ifdef CONFIG_HEXAGON_MSM8974_FLUID
288801685d7137 Richard Kuo 2025-08-18  110  	//  Fixme:  use this for...  everybody if possible
288801685d7137 Richard Kuo 2025-08-18  111  	//  The "tags" struct or whatever provided by LK; currently stuffing it in the "external buffer" space.
288801685d7137 Richard Kuo 2025-08-18  112  	initial_boot_params = (void *) &external_buffer;
288801685d7137 Richard Kuo 2025-08-18  113  	dt_root = of_get_flat_dt_root();
288801685d7137 Richard Kuo 2025-08-18  114  	of_scan_flat_dt(early_init_dt_scan_chosen_noinitrd, boot_command_line);
288801685d7137 Richard Kuo 2025-08-18  115  #endif
288801685d7137 Richard Kuo 2025-08-18  116  
288801685d7137 Richard Kuo 2025-08-18  117  	/*  reset global pointer that devtree uses to the proper blob  */
288801685d7137 Richard Kuo 2025-08-18  118  #ifdef CONFIG_DTB_BUILTIN
288801685d7137 Richard Kuo 2025-08-18  119  	/*  This is the label placed on the assembly blob; will already be in virtual space  */
288801685d7137 Richard Kuo 2025-08-18 @120  	initial_boot_params = dt_phys;
288801685d7137 Richard Kuo 2025-08-18  121  #else
288801685d7137 Richard Kuo 2025-08-18  122          initial_boot_params = phys_to_virt(dt_phys);
288801685d7137 Richard Kuo 2025-08-18  123  #endif
288801685d7137 Richard Kuo 2025-08-18  124  
288801685d7137 Richard Kuo 2025-08-18  125          /* check device tree validity */
288801685d7137 Richard Kuo 2025-08-18  126          if (fdt_magic(initial_boot_params) != OF_DT_HEADER) {
288801685d7137 Richard Kuo 2025-08-18  127                  return NULL;
288801685d7137 Richard Kuo 2025-08-18  128  	}
288801685d7137 Richard Kuo 2025-08-18  129  
288801685d7137 Richard Kuo 2025-08-18  130  	dt_root = of_get_flat_dt_root();
288801685d7137 Richard Kuo 2025-08-18  131  
5d4b53d10af44d Brian Cain  2026-01-24  132  	mdesc_best = of_flat_dt_match_machine(NULL, arch_get_next_mach);
288801685d7137 Richard Kuo 2025-08-18  133  
288801685d7137 Richard Kuo 2025-08-18  134  	if (!mdesc_best) {
288801685d7137 Richard Kuo 2025-08-18  135  		panic("Unrecognized device tree\n");
288801685d7137 Richard Kuo 2025-08-18  136  	}
288801685d7137 Richard Kuo 2025-08-18  137  
288801685d7137 Richard Kuo 2025-08-18  138          /*
288801685d7137 Richard Kuo 2025-08-18  139  	 * Sets the top level address and size cells which are stored
288801685d7137 Richard Kuo 2025-08-18  140  	 * in globals by the devtree infrastructure.
288801685d7137 Richard Kuo 2025-08-18  141  	 */
288801685d7137 Richard Kuo 2025-08-18  142          early_init_dt_scan_root();
288801685d7137 Richard Kuo 2025-08-18  143  
288801685d7137 Richard Kuo 2025-08-18  144          /*  Retrieve various information from the /chosen node  */
288801685d7137 Richard Kuo 2025-08-18  145  #ifndef CONFIG_HEXAGON_MSM8974_FLUID
288801685d7137 Richard Kuo 2025-08-18  146  	//  Fixme:  do this consistently for platforms
288801685d7137 Richard Kuo 2025-08-18  147  	early_init_dt_scan_chosen(boot_command_line);
288801685d7137 Richard Kuo 2025-08-18  148  #endif
288801685d7137 Richard Kuo 2025-08-18  149          /*  Setup memory  */
288801685d7137 Richard Kuo 2025-08-18  150  	//of_scan_flat_dt(early_init_dt_scan_memory, NULL);
288801685d7137 Richard Kuo 2025-08-18  151  
288801685d7137 Richard Kuo 2025-08-18  152  	return mdesc_best;
288801685d7137 Richard Kuo 2025-08-18  153  }
288801685d7137 Richard Kuo 2025-08-18  154  

:::::: The code at line 104 was first introduced by commit
:::::: 5d4b53d10af44d2d15e3f551692f1703ac6dbe53 arch/hexagon: fix kernel crash on unimplemented syscalls

:::::: TO: Brian Cain <[email protected]>
:::::: CC: Brian Cain <[email protected]>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.