All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Ard Biesheuvel <ardb@kernel.org>
Cc: oe-kbuild-all@lists.linux.dev, Kees Cook <kees@kernel.org>
Subject: [linux-next:master 18009/18293] drivers/firmware/efi/runtime-wrappers.c:358:3: error: a label can only be part of a statement and a declaration is not a statement
Date: Sat, 17 Oct 2026 14:59:34 +0800	[thread overview]
Message-ID: <202610171413.TwVPuIEm-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   2efb7a11f1aa4d2dc285fe2680cca22cb9f72f64
commit: 002a3f5757e07edd7fbef243d823b565624bc5fb [18009/18293] lkdtm: Add more EFI runtime tests
config: arm-randconfig-1000-20261017 (https://download.01.org/0day-ci/archive/20261017/202610171413.TwVPuIEm-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261017/202610171413.TwVPuIEm-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/202610171413.TwVPuIEm-lkp@intel.com/

All errors (new ones prefixed by >>):

   In file included from <command-line>:
   drivers/firmware/efi/runtime-wrappers.c: In function 'efi_call_rts':
>> include/linux/compiler_types.h:30:15: error: a label can only be part of a statement and a declaration is not a statement
    # define auto __auto_type
                  ^~~~~~~~~~~
   drivers/firmware/efi/runtime-wrappers.c:349:3: note: in expansion of macro 'auto'
      auto t = (efi_time_t *)efi.runtime->set_virtual_address_map;
      ^~~~
>> drivers/firmware/efi/runtime-wrappers.c:358:3: error: a label can only be part of a statement and a declaration is not a statement
      struct { efi_status_t (__efiapi *fn)(int); } s = { (void *)efi.runtime };
      ^~~~~~


vim +358 drivers/firmware/efi/runtime-wrappers.c

   240	
   241	/*
   242	 * Calls the appropriate efi_runtime_service() with the appropriate
   243	 * arguments.
   244	 */
   245	static void __nocfi efi_call_rts(struct work_struct *work)
   246	{
   247		const union efi_rts_args *args = efi_rts_work.args;
   248		efi_status_t status = EFI_NOT_FOUND;
   249		unsigned long flags;
   250	
   251		if (!efi_enabled(EFI_RUNTIME_SERVICES))
   252			efi_rts_park_worker();
   253	
   254		efi_runtime_lock_owner = current;
   255	
   256		arch_efi_call_virt_setup();
   257		flags = efi_call_virt_save_flags();
   258	
   259		switch (efi_rts_work.efi_rts_id) {
   260		case EFI_GET_TIME:
   261			status = efi_call_virt(get_time,
   262					       args->GET_TIME.time,
   263					       args->GET_TIME.capabilities);
   264			break;
   265		case EFI_SET_TIME:
   266			status = efi_call_virt(set_time,
   267					       args->SET_TIME.time);
   268			break;
   269		case EFI_GET_WAKEUP_TIME:
   270			status = efi_call_virt(get_wakeup_time,
   271					       args->GET_WAKEUP_TIME.enabled,
   272					       args->GET_WAKEUP_TIME.pending,
   273					       args->GET_WAKEUP_TIME.time);
   274			break;
   275		case EFI_SET_WAKEUP_TIME:
   276			status = efi_call_virt(set_wakeup_time,
   277					       args->SET_WAKEUP_TIME.enable,
   278					       args->SET_WAKEUP_TIME.time);
   279			break;
   280		case EFI_GET_VARIABLE:
   281			status = efi_call_virt(get_variable,
   282					       args->GET_VARIABLE.name,
   283					       args->GET_VARIABLE.vendor,
   284					       args->GET_VARIABLE.attr,
   285					       args->GET_VARIABLE.data_size,
   286					       args->GET_VARIABLE.data);
   287			break;
   288		case EFI_GET_NEXT_VARIABLE:
   289			status = efi_call_virt(get_next_variable,
   290					       args->GET_NEXT_VARIABLE.name_size,
   291					       args->GET_NEXT_VARIABLE.name,
   292					       args->GET_NEXT_VARIABLE.vendor);
   293			break;
   294		case EFI_SET_VARIABLE:
   295			status = efi_call_virt(set_variable,
   296					       args->SET_VARIABLE.name,
   297					       args->SET_VARIABLE.vendor,
   298					       args->SET_VARIABLE.attr,
   299					       args->SET_VARIABLE.data_size,
   300					       args->SET_VARIABLE.data);
   301			break;
   302		case EFI_QUERY_VARIABLE_INFO:
   303			status = efi_call_virt(query_variable_info,
   304					       args->QUERY_VARIABLE_INFO.attr,
   305					       args->QUERY_VARIABLE_INFO.storage_space,
   306					       args->QUERY_VARIABLE_INFO.remaining_space,
   307					       args->QUERY_VARIABLE_INFO.max_variable_size);
   308			break;
   309		case EFI_GET_NEXT_HIGH_MONO_COUNT:
   310			status = efi_call_virt(get_next_high_mono_count,
   311					       args->GET_NEXT_HIGH_MONO_COUNT.high_count);
   312			break;
   313		case EFI_UPDATE_CAPSULE:
   314			status = efi_call_virt(update_capsule,
   315					       args->UPDATE_CAPSULE.capsules,
   316					       args->UPDATE_CAPSULE.count,
   317					       args->UPDATE_CAPSULE.sg_list);
   318			break;
   319		case EFI_QUERY_CAPSULE_CAPS:
   320			status = efi_call_virt(query_capsule_caps,
   321					       args->QUERY_CAPSULE_CAPS.capsules,
   322					       args->QUERY_CAPSULE_CAPS.count,
   323					       args->QUERY_CAPSULE_CAPS.max_size,
   324					       args->QUERY_CAPSULE_CAPS.reset_type);
   325			break;
   326		case EFI_ACPI_PRM_HANDLER:
   327	#ifdef CONFIG_ACPI_PRMT
   328			status = arch_efi_call_virt(args, ACPI_PRM_HANDLER.acpi_prm_handler,
   329						    args->ACPI_PRM_HANDLER.param_buffer_addr,
   330						    args->ACPI_PRM_HANDLER.context);
   331			break;
   332	#endif
   333		default:
   334			/*
   335			 * Ideally, we should never reach here because a caller of this
   336			 * function should have put the right efi_runtime_service()
   337			 * function identifier into efi_rts_work->efi_rts_id
   338			 */
   339			pr_err("Requested executing invalid EFI Runtime Service.\n");
   340			break;
   341	
   342	#if IS_ENABLED(CONFIG_LKDTM)
   343		case EFI_LKDTM_RUNTIME_RO_TEST:
   344			/*
   345			 * Call GetTime() with the output argument pointing to
   346			 * executable memory, which should be mapped read-only in the
   347			 * EFI page tables.
   348			 */
 > 349			auto t = (efi_time_t *)efi.runtime->set_virtual_address_map;
   350	
   351			status = efi_call_virt(get_time, t, NULL);
   352			break;
   353		case EFI_LKDTM_RUNTIME_NX_TEST:
   354			/*
   355			 * Call efi.runtime, which points to a data object in a EFI
   356			 * runtime region, as if it were a function pointer.
   357			 */
 > 358			struct { efi_status_t (__efiapi *fn)(int); } s = { (void *)efi.runtime };
   359	
   360			status = arch_efi_call_virt((&s), fn, 0);
   361			break;
   362	#endif
   363		}
   364	
   365		efi_call_virt_check_flags(flags, efi_rts_work.caller);
   366		arch_efi_call_virt_teardown();
   367	
   368		/*
   369		 * EFI runtime services may also have been disabled because the
   370		 * firmware faulted, but the caller is still waiting for us in that
   371		 * case. Only park the worker if the caller has given up on it.
   372		 */
   373		if (READ_ONCE(efi_rts_abandoned))
   374			efi_rts_park_worker();
   375	
   376		efi_rts_work.status = status;
   377		complete(&efi_rts_work.efi_rts_comp);
   378		efi_runtime_lock_owner = NULL;
   379	}
   380	

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

                 reply	other threads:[~2026-10-17  7:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202610171413.TwVPuIEm-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=ardb@kernel.org \
    --cc=kees@kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.