Re: [PATCH] efi: make the min and max mmap slack slots configurable

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Hamza,

kernel test robot noticed the following build warnings:

[auto build test WARNING on efi/next]
[also build test WARNING on linus/master v6.13-rc2 next-20241211]
[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/Hamza-Mahfooz/efi-make-the-min-and-max-mmap-slack-slots-configurable/20241210-002724
base:   https://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git next
patch link:    https://lore.kernel.org/r/20241209162449.48390-1-hamzamahfooz%40linux.microsoft.com
patch subject: [PATCH] efi: make the min and max mmap slack slots configurable
config: x86_64-buildonly-randconfig-002-20241210 (https://download.01.org/0day-ci/archive/20241212/202412120620.ZY2X03AR-lkp@xxxxxxxxx/config)
compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241212/202412120620.ZY2X03AR-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202412120620.ZY2X03AR-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

>> drivers/firmware/efi/libstub/mem.c:23: warning: Function parameter or struct member 'n' not described in 'efi_get_memory_map'


vim +23 drivers/firmware/efi/libstub/mem.c

f57db62c67c1c9d Ard Biesheuvel      2020-02-10   7  
1d9b17683547348 Heinrich Schuchardt 2020-02-18   8  /**
1d9b17683547348 Heinrich Schuchardt 2020-02-18   9   * efi_get_memory_map() - get memory map
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  10   * @map:		pointer to memory map pointer to which to assign the
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  11   *			newly allocated memory map
171539f5a90e3fd Ard Biesheuvel      2022-09-15  12   * @install_cfg_tbl:	whether or not to install the boot memory map as a
171539f5a90e3fd Ard Biesheuvel      2022-09-15  13   *			configuration table
1d9b17683547348 Heinrich Schuchardt 2020-02-18  14   *
1d9b17683547348 Heinrich Schuchardt 2020-02-18  15   * Retrieve the UEFI memory map. The allocated memory leaves room for
8e602989bc52479 Hamza Mahfooz       2024-12-09  16   * up to CONFIG_EFI_MAX_NR_MMAP_SLACK_SLOTS additional memory map entries.
1d9b17683547348 Heinrich Schuchardt 2020-02-18  17   *
1d9b17683547348 Heinrich Schuchardt 2020-02-18  18   * Return:	status code
1d9b17683547348 Heinrich Schuchardt 2020-02-18  19   */
171539f5a90e3fd Ard Biesheuvel      2022-09-15  20  efi_status_t efi_get_memory_map(struct efi_boot_memmap **map,
8e602989bc52479 Hamza Mahfooz       2024-12-09  21  				bool install_cfg_tbl,
8e602989bc52479 Hamza Mahfooz       2024-12-09  22  				unsigned int *n)
f57db62c67c1c9d Ard Biesheuvel      2020-02-10 @23  {
171539f5a90e3fd Ard Biesheuvel      2022-09-15  24  	int memtype = install_cfg_tbl ? EFI_ACPI_RECLAIM_MEMORY
171539f5a90e3fd Ard Biesheuvel      2022-09-15  25  				      : EFI_LOADER_DATA;
171539f5a90e3fd Ard Biesheuvel      2022-09-15  26  	efi_guid_t tbl_guid = LINUX_EFI_BOOT_MEMMAP_GUID;
8e602989bc52479 Hamza Mahfooz       2024-12-09  27  	unsigned int nr = CONFIG_EFI_MIN_NR_MMAP_SLACK_SLOTS;
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  28  	struct efi_boot_memmap *m, tmp;
f57db62c67c1c9d Ard Biesheuvel      2020-02-10  29  	efi_status_t status;
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  30  	unsigned long size;
f57db62c67c1c9d Ard Biesheuvel      2020-02-10  31  
8e602989bc52479 Hamza Mahfooz       2024-12-09  32  	BUILD_BUG_ON(!is_power_of_2(CONFIG_EFI_MIN_NR_MMAP_SLACK_SLOTS) ||
8e602989bc52479 Hamza Mahfooz       2024-12-09  33  		     !is_power_of_2(CONFIG_EFI_MAX_NR_MMAP_SLACK_SLOTS) ||
8e602989bc52479 Hamza Mahfooz       2024-12-09  34  		     CONFIG_EFI_MIN_NR_MMAP_SLACK_SLOTS >=
8e602989bc52479 Hamza Mahfooz       2024-12-09  35  		     CONFIG_EFI_MAX_NR_MMAP_SLACK_SLOTS);
8e602989bc52479 Hamza Mahfooz       2024-12-09  36  
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  37  	tmp.map_size = 0;
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  38  	status = efi_bs_call(get_memory_map, &tmp.map_size, NULL, &tmp.map_key,
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  39  			     &tmp.desc_size, &tmp.desc_ver);
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  40  	if (status != EFI_BUFFER_TOO_SMALL)
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  41  		return EFI_LOAD_ERROR;
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  42  
8e602989bc52479 Hamza Mahfooz       2024-12-09  43  	do {
8e602989bc52479 Hamza Mahfooz       2024-12-09  44  		size = tmp.map_size + tmp.desc_size * nr;
171539f5a90e3fd Ard Biesheuvel      2022-09-15  45  		status = efi_bs_call(allocate_pool, memtype, sizeof(*m) + size,
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  46  				     (void **)&m);
8e602989bc52479 Hamza Mahfooz       2024-12-09  47  		nr <<= 1;
8e602989bc52479 Hamza Mahfooz       2024-12-09  48  	} while (status == EFI_BUFFER_TOO_SMALL &&
8e602989bc52479 Hamza Mahfooz       2024-12-09  49  		 nr <= CONFIG_EFI_MAX_NR_MMAP_SLACK_SLOTS);
8e602989bc52479 Hamza Mahfooz       2024-12-09  50  
f57db62c67c1c9d Ard Biesheuvel      2020-02-10  51  	if (status != EFI_SUCCESS)
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  52  		return status;
f57db62c67c1c9d Ard Biesheuvel      2020-02-10  53  
8e602989bc52479 Hamza Mahfooz       2024-12-09  54  	if (n)
8e602989bc52479 Hamza Mahfooz       2024-12-09  55  		*n = nr;
8e602989bc52479 Hamza Mahfooz       2024-12-09  56  
171539f5a90e3fd Ard Biesheuvel      2022-09-15  57  	if (install_cfg_tbl) {
171539f5a90e3fd Ard Biesheuvel      2022-09-15  58  		/*
171539f5a90e3fd Ard Biesheuvel      2022-09-15  59  		 * Installing a configuration table might allocate memory, and
171539f5a90e3fd Ard Biesheuvel      2022-09-15  60  		 * this may modify the memory map. This means we should install
171539f5a90e3fd Ard Biesheuvel      2022-09-15  61  		 * the configuration table first, and re-install or delete it
171539f5a90e3fd Ard Biesheuvel      2022-09-15  62  		 * as needed.
171539f5a90e3fd Ard Biesheuvel      2022-09-15  63  		 */
171539f5a90e3fd Ard Biesheuvel      2022-09-15  64  		status = efi_bs_call(install_configuration_table, &tbl_guid, m);
171539f5a90e3fd Ard Biesheuvel      2022-09-15  65  		if (status != EFI_SUCCESS)
171539f5a90e3fd Ard Biesheuvel      2022-09-15  66  			goto free_map;
171539f5a90e3fd Ard Biesheuvel      2022-09-15  67  	}
171539f5a90e3fd Ard Biesheuvel      2022-09-15  68  
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  69  	m->buff_size = m->map_size = size;
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  70  	status = efi_bs_call(get_memory_map, &m->map_size, m->map, &m->map_key,
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  71  			     &m->desc_size, &m->desc_ver);
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  72  	if (status != EFI_SUCCESS)
171539f5a90e3fd Ard Biesheuvel      2022-09-15  73  		goto uninstall_table;
f57db62c67c1c9d Ard Biesheuvel      2020-02-10  74  
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  75  	*map = m;
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  76  	return EFI_SUCCESS;
f57db62c67c1c9d Ard Biesheuvel      2020-02-10  77  
171539f5a90e3fd Ard Biesheuvel      2022-09-15  78  uninstall_table:
171539f5a90e3fd Ard Biesheuvel      2022-09-15  79  	if (install_cfg_tbl)
171539f5a90e3fd Ard Biesheuvel      2022-09-15  80  		efi_bs_call(install_configuration_table, &tbl_guid, NULL);
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  81  free_map:
eab3126571ed1e3 Ard Biesheuvel      2022-06-03  82  	efi_bs_call(free_pool, m);
f57db62c67c1c9d Ard Biesheuvel      2020-02-10  83  	return status;
f57db62c67c1c9d Ard Biesheuvel      2020-02-10  84  }
f57db62c67c1c9d Ard Biesheuvel      2020-02-10  85  

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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux