efi: stub: omit SetVirtualAddressMap() if marked unsupported in RT_PROP table
authorArd Biesheuvel <ardb@kernel.org>
Fri, 5 Mar 2021 09:21:05 +0000 (10:21 +0100)
committerArd Biesheuvel <ardb@kernel.org>
Sun, 7 Mar 2021 08:31:02 +0000 (09:31 +0100)
commit9e9888a0fe97b9501a40f717225d2bef7100a2c1
tree1d68146fc40a13fd870d4394cd709ed6600aa3a6
parenta38fd8748464831584a19438cbb3082b5a2dab15
efi: stub: omit SetVirtualAddressMap() if marked unsupported in RT_PROP table

The EFI_RT_PROPERTIES_TABLE contains a mask of runtime services that are
available after ExitBootServices(). This mostly does not concern the EFI
stub at all, given that it runs before that. However, there is one call
that is made at runtime, which is the call to SetVirtualAddressMap()
(which is not even callable at boot time to begin with)

So add the missing handling of the RT_PROP table to ensure that we only
call SetVirtualAddressMap() if it is not being advertised as unsupported
by the firmware.

Cc: <stable@vger.kernel.org> # v5.10+
Tested-by: Shawn Guo <shawn.guo@linaro.org>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/libstub/efi-stub.c