lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7cb5b5a7-90aa-4b78-aff3-f88073e72b60@arm.com>
Date: Mon, 19 Jan 2026 16:41:27 +0000
From: Andre Przywara <andre.przywara@....com>
To: kernel test robot <lkp@...el.com>, Salman Nabi <salman.nabi@....com>,
 vvidwans@...dia.com, sudeep.holla@....com, mark.rutland@....com,
 lpieralisi@...nel.org
Cc: oe-kbuild-all@...ts.linux.dev, ardb@...nel.org, chao.gao@...el.com,
 linux-arm-kernel@...ts.infradead.org, linux-coco@...ts.linux.dev,
 linux-kernel@...r.kernel.org, sdonthineni@...dia.com, vsethi@...dia.com,
 vwadekar@...dia.com
Subject: Re: [PATCH 1/1] firmware: smccc: add support for Live Firmware
 Activation (LFA)

Hi,

On 19/01/2026 16:29, kernel test robot wrote:
> Hi Salman,
> 
> kernel test robot noticed the following build warnings:
> 
> [auto build test WARNING on soc/for-next]
> [also build test WARNING on linus/master v6.19-rc6 next-20260116]
> [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/Salman-Nabi/firmware-smccc-add-support-for-Live-Firmware-Activation-LFA/20260119-203221
> base:   https://git.kernel.org/pub/scm/linux/kernel/git/soc/soc.git for-next
> patch link:    https://lore.kernel.org/r/20260119122729.287522-2-salman.nabi%40arm.com
> patch subject: [PATCH 1/1] firmware: smccc: add support for Live Firmware Activation (LFA)
> config: arm-sp7021_defconfig (https://download.01.org/0day-ci/archive/20260120/202601200007.GVZIjoCx-lkp@intel.com/config)
> compiler: arm-linux-gnueabi-gcc (GCC) 15.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260120/202601200007.GVZIjoCx-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@...el.com>
> | Closes: https://lore.kernel.org/oe-kbuild-all/202601200007.GVZIjoCx-lkp@intel.com/
> 
> All warnings (new ones prefixed by >>):
> 
>     drivers/firmware/smccc/lfa_fw.c: In function 'get_nr_lfa_components':
>     drivers/firmware/smccc/lfa_fw.c:179:16: error: variable 'reg' has initializer but incomplete type
>       179 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                ^~~~~~~~~~~~~~~~~~
>>> drivers/firmware/smccc/lfa_fw.c:179:43: warning: excess elements in struct initializer

Ah, yes, arm_smccc_1_2_regs is only defined for arm64. We rely on v1.2, 
and the LFA spec actually means that this means AArch64 only right at 
the beginning (chapter 2).
So we need an additional dependency on ARM64 in the Kconfig entry.

Cheers,
Andre



>       179 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                           ^
>     drivers/firmware/smccc/lfa_fw.c:179:43: note: (near initialization for 'reg')
>     drivers/firmware/smccc/lfa_fw.c:179:35: error: storage size of 'reg' isn't known
>       179 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                   ^~~
>     drivers/firmware/smccc/lfa_fw.c:184:9: error: implicit declaration of function 'arm_smccc_1_2_invoke'; did you mean 'arm_smccc_1_1_invoke'? [-Wimplicit-function-declaration]
>       184 |         arm_smccc_1_2_invoke(&reg, &reg);
>           |         ^~~~~~~~~~~~~~~~~~~~
>           |         arm_smccc_1_1_invoke
>>> drivers/firmware/smccc/lfa_fw.c:179:35: warning: unused variable 'reg' [-Wunused-variable]
>       179 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                   ^~~
>     drivers/firmware/smccc/lfa_fw.c: In function 'lfa_cancel':
>     drivers/firmware/smccc/lfa_fw.c:194:16: error: variable 'reg' has initializer but incomplete type
>       194 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                ^~~~~~~~~~~~~~~~~~
>     drivers/firmware/smccc/lfa_fw.c:194:43: warning: excess elements in struct initializer
>       194 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                           ^
>     drivers/firmware/smccc/lfa_fw.c:194:43: note: (near initialization for 'reg')
>     drivers/firmware/smccc/lfa_fw.c:194:35: error: storage size of 'reg' isn't known
>       194 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                   ^~~
>     drivers/firmware/smccc/lfa_fw.c:194:35: warning: unused variable 'reg' [-Wunused-variable]
>     drivers/firmware/smccc/lfa_fw.c: In function 'call_lfa_activate':
>     drivers/firmware/smccc/lfa_fw.c:220:16: error: variable 'reg' has initializer but incomplete type
>       220 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                ^~~~~~~~~~~~~~~~~~
>     drivers/firmware/smccc/lfa_fw.c:220:43: warning: excess elements in struct initializer
>       220 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                           ^
>     drivers/firmware/smccc/lfa_fw.c:220:43: note: (near initialization for 'reg')
>     drivers/firmware/smccc/lfa_fw.c:220:35: error: storage size of 'reg' isn't known
>       220 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                   ^~~
>     drivers/firmware/smccc/lfa_fw.c:220:35: warning: unused variable 'reg' [-Wunused-variable]
>     drivers/firmware/smccc/lfa_fw.c: In function 'prime_fw_image':
>     drivers/firmware/smccc/lfa_fw.c:290:16: error: variable 'reg' has initializer but incomplete type
>       290 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                ^~~~~~~~~~~~~~~~~~
>     drivers/firmware/smccc/lfa_fw.c:290:43: warning: excess elements in struct initializer
>       290 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                           ^
>     drivers/firmware/smccc/lfa_fw.c:290:43: note: (near initialization for 'reg')
>     drivers/firmware/smccc/lfa_fw.c:290:35: error: storage size of 'reg' isn't known
>       290 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                   ^~~
>     drivers/firmware/smccc/lfa_fw.c:290:35: warning: unused variable 'reg' [-Wunused-variable]
>     drivers/firmware/smccc/lfa_fw.c: In function 'activation_pending_show':
>     drivers/firmware/smccc/lfa_fw.c:360:16: error: variable 'reg' has initializer but incomplete type
>       360 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                ^~~~~~~~~~~~~~~~~~
>     drivers/firmware/smccc/lfa_fw.c:360:43: warning: excess elements in struct initializer
>       360 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                           ^
>     drivers/firmware/smccc/lfa_fw.c:360:43: note: (near initialization for 'reg')
>     drivers/firmware/smccc/lfa_fw.c:360:35: error: storage size of 'reg' isn't known
>       360 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                   ^~~
>     drivers/firmware/smccc/lfa_fw.c:360:35: warning: unused variable 'reg' [-Wunused-variable]
>     drivers/firmware/smccc/lfa_fw.c: In function 'pending_version_show':
>     drivers/firmware/smccc/lfa_fw.c:434:16: error: variable 'reg' has initializer but incomplete type
>       434 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                ^~~~~~~~~~~~~~~~~~
>     drivers/firmware/smccc/lfa_fw.c:434:43: warning: excess elements in struct initializer
>       434 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                           ^
>     drivers/firmware/smccc/lfa_fw.c:434:43: note: (near initialization for 'reg')
>     drivers/firmware/smccc/lfa_fw.c:434:35: error: storage size of 'reg' isn't known
>       434 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                   ^~~
>     drivers/firmware/smccc/lfa_fw.c:434:35: warning: unused variable 'reg' [-Wunused-variable]
>     drivers/firmware/smccc/lfa_fw.c: In function 'update_fw_images_tree':
>     drivers/firmware/smccc/lfa_fw.c:586:16: error: variable 'reg' has initializer but incomplete type
>       586 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                ^~~~~~~~~~~~~~~~~~
>     drivers/firmware/smccc/lfa_fw.c:586:43: warning: excess elements in struct initializer
>       586 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                           ^
>     drivers/firmware/smccc/lfa_fw.c:586:43: note: (near initialization for 'reg')
>     drivers/firmware/smccc/lfa_fw.c:586:35: error: storage size of 'reg' isn't known
>       586 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                   ^~~
>     drivers/firmware/smccc/lfa_fw.c:586:35: warning: unused variable 'reg' [-Wunused-variable]
>     drivers/firmware/smccc/lfa_fw.c: In function 'lfa_init':
>     drivers/firmware/smccc/lfa_fw.c:619:16: error: variable 'reg' has initializer but incomplete type
>       619 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                ^~~~~~~~~~~~~~~~~~
>     drivers/firmware/smccc/lfa_fw.c:619:43: warning: excess elements in struct initializer
>       619 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                           ^
>     drivers/firmware/smccc/lfa_fw.c:619:43: note: (near initialization for 'reg')
>     drivers/firmware/smccc/lfa_fw.c:619:35: error: storage size of 'reg' isn't known
>       619 |         struct arm_smccc_1_2_regs reg = { 0 };
>           |                                   ^~~
>     drivers/firmware/smccc/lfa_fw.c:619:35: warning: unused variable 'reg' [-Wunused-variable]
> 
> 
> vim +179 drivers/firmware/smccc/lfa_fw.c
> 
>     176	
>     177	static unsigned long get_nr_lfa_components(void)
>     178	{
>   > 179		struct arm_smccc_1_2_regs reg = { 0 };
>     180	
>     181		reg.a0 = LFA_1_0_FN_GET_INFO;
>     182		reg.a1 = 0; /* lfa_info_selector = 0 */
>     183	
>     184		arm_smccc_1_2_invoke(&reg, &reg);
>     185		if (reg.a0 != LFA_SUCCESS)
>     186			return reg.a0;
>     187	
>     188		return reg.a1;
>     189	}
>     190	
> 


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ