[PATCH v8 15/15] x86: EFI stub DRTM launch support for Secure Launch
kernel test robot
lkp at intel.com
Sat Feb 17 12:06:36 PST 2024
Hi Ross,
kernel test robot noticed the following build errors:
[auto build test ERROR on char-misc/char-misc-testing]
[also build test ERROR on char-misc/char-misc-next char-misc/char-misc-linus herbert-cryptodev-2.6/master herbert-crypto-2.6/master linus/master v6.8-rc4 next-20240216]
[cannot apply to tip/x86/core]
[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/Ross-Philipson/x86-boot-Place-kernel_info-at-a-fixed-offset/20240215-064712
base: char-misc/char-misc-testing
patch link: https://lore.kernel.org/r/20240214221847.2066632-16-ross.philipson%40oracle.com
patch subject: [PATCH v8 15/15] x86: EFI stub DRTM launch support for Secure Launch
config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20240218/202402180324.a3PqEegg-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240218/202402180324.a3PqEegg-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/202402180324.a3PqEegg-lkp@intel.com/
All errors (new ones prefixed by >>):
In function 'efi_secure_launch',
inlined from 'efi_stub_entry' at drivers/firmware/efi/libstub/x86-stub.c:990:2:
>> drivers/firmware/efi/libstub/x86-stub.c:861:9: error: inconsistent operand constraints in an 'asm'
861 | asm volatile ("jmp *%%rax"
| ^~~
vim +/asm +861 drivers/firmware/efi/libstub/x86-stub.c
813
814 static void efi_secure_launch(struct boot_params *boot_params)
815 {
816 struct slr_entry_uefi_config *uefi_config;
817 struct slr_uefi_cfg_entry *uefi_entry;
818 struct slr_entry_dl_info *dlinfo;
819 efi_guid_t guid = SLR_TABLE_GUID;
820 struct slr_table *slrt;
821 u64 memmap_hi;
822 void *table;
823 u8 buf[64] = {0};
824
825 table = get_efi_config_table(guid);
826
827 /*
828 * The presence of this table indicated a Secure Launch
829 * is being requested.
830 */
831 if (!table)
832 return;
833
834 slrt = (struct slr_table *)table;
835
836 if (slrt->magic != SLR_TABLE_MAGIC)
837 return;
838
839 /* Add config information to measure the UEFI memory map */
840 uefi_config = (struct slr_entry_uefi_config *)buf;
841 uefi_config->hdr.tag = SLR_ENTRY_UEFI_CONFIG;
842 uefi_config->hdr.size = sizeof(*uefi_config) + sizeof(*uefi_entry);
843 uefi_config->revision = SLR_UEFI_CONFIG_REVISION;
844 uefi_config->nr_entries = 1;
845 uefi_entry = (struct slr_uefi_cfg_entry *)(buf + sizeof(*uefi_config));
846 uefi_entry->pcr = 18;
847 uefi_entry->cfg = boot_params->efi_info.efi_memmap;
848 memmap_hi = boot_params->efi_info.efi_memmap_hi;
849 uefi_entry->cfg |= memmap_hi << 32;
850 uefi_entry->size = boot_params->efi_info.efi_memmap_size;
851 memcpy(&uefi_entry->evt_info[0], "Measured UEFI memory map",
852 strlen("Measured UEFI memory map"));
853
854 if (slr_add_entry(slrt, (struct slr_entry_hdr *)uefi_config))
855 return;
856
857 /* Jump through DL stub to initiate Secure Launch */
858 dlinfo = (struct slr_entry_dl_info *)
859 slr_next_entry_by_tag(slrt, NULL, SLR_ENTRY_DL_INFO);
860
> 861 asm volatile ("jmp *%%rax"
862 : : "a" (dlinfo->dl_handler), "D" (&dlinfo->bl_context));
863 }
864
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
More information about the kexec
mailing list