[PATCH 1/2] powerpc/kexec_file: fix extra size calculation for kexec FDT
kernel test robot
lkp at intel.com
Thu May 9 17:13:06 AEST 2024
Hi Sourabh,
kernel test robot noticed the following build warnings:
[auto build test WARNING on next-20240508]
[cannot apply to powerpc/next powerpc/fixes linus/master v6.9-rc7 v6.9-rc6 v6.9-rc5 v6.9-rc7]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Sourabh-Jain/powerpc-kexec_file-fix-extra-size-calculation-for-kexec-FDT/20240508-211003
base: next-20240508
patch link: https://lore.kernel.org/r/20240508130558.1939304-2-sourabhjain%40linux.ibm.com
patch subject: [PATCH 1/2] powerpc/kexec_file: fix extra size calculation for kexec FDT
config: powerpc-allyesconfig (https://download.01.org/0day-ci/archive/20240509/202405091511.8Sd2zYrn-lkp@intel.com/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 0ab4458df0688955620b72cc2c72a32dffad3615)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240509/202405091511.8Sd2zYrn-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 at intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202405091511.8Sd2zYrn-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from arch/powerpc/kexec/file_load_64.c:17:
In file included from include/linux/kexec.h:18:
In file included from include/linux/vmcore_info.h:6:
In file included from include/linux/elfcore.h:11:
In file included from include/linux/ptrace.h:10:
In file included from include/linux/pid_namespace.h:7:
In file included from include/linux/mm.h:2253:
include/linux/vmstat.h:500:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
500 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
501 | item];
| ~~~~
include/linux/vmstat.h:507:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
507 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
508 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:514:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
514 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
include/linux/vmstat.h:519:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
519 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
520 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
include/linux/vmstat.h:528:43: warning: arithmetic between different enumeration types ('enum zone_stat_item' and 'enum numa_stat_item') [-Wenum-enum-conversion]
528 | return vmstat_text[NR_VM_ZONE_STAT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~ ^
529 | NR_VM_NUMA_EVENT_ITEMS +
| ~~~~~~~~~~~~~~~~~~~~~~
>> arch/powerpc/kexec/file_load_64.c:863:3: warning: variable 'cpu_nodes' is uninitialized when used here [-Wuninitialized]
863 | cpu_nodes++;
| ^~~~~~~~~
arch/powerpc/kexec/file_load_64.c:854:24: note: initialize the variable 'cpu_nodes' to silence this warning
854 | unsigned int cpu_nodes, extra_size = 0;
| ^
| = 0
6 warnings generated.
vim +/cpu_nodes +863 arch/powerpc/kexec/file_load_64.c
843
844 /**
845 * kexec_extra_fdt_size_ppc64 - Return the estimated additional size needed to
846 * setup FDT for kexec/kdump kernel.
847 * @image: kexec image being loaded.
848 *
849 * Returns the estimated extra size needed for kexec/kdump kernel FDT.
850 */
851 unsigned int kexec_extra_fdt_size_ppc64(struct kimage *image, struct crash_mem *rmem)
852 {
853 struct device_node *dn;
854 unsigned int cpu_nodes, extra_size = 0;
855
856 // Budget some space for the password blob. There's already extra space
857 // for the key name
858 if (plpks_is_available())
859 extra_size += (unsigned int)plpks_get_passwordlen();
860
861 /* Get the number of CPU nodes in the current device tree */
862 for_each_node_by_type(dn, "cpu") {
> 863 cpu_nodes++;
864 }
865
866 /* Consider extra space for CPU nodes added since the boot time */
867 if (cpu_nodes > boot_cpu_node_count)
868 extra_size += (cpu_nodes - boot_cpu_node_count) * cpu_node_size();
869
870 /* Consider extra space for reserved memory ranges if any */
871 if (rmem->nr_ranges > 0)
872 extra_size += sizeof(struct fdt_reserve_entry) * rmem->nr_ranges;
873
874 return extra_size + kdump_extra_fdt_size_ppc64(image, cpu_nodes);
875 }
876
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the Linuxppc-dev
mailing list