I met a hung task warning and then kernel was hung forever with latest kernel on an Ampere Emag server. The root cause is kernel was hung when invoking an efi rts call to set the RandomSeed variable during the booting stage. The arch_efi_call_virt call (set_variable) was never returned and then caused the hung task error. On the Emag server, efi_rt_services_supported(EFI_RT_SUPPORTED_SET_VARIABLE) is returned with "true" Fix it by introducing the efi_get_supported_rt_services() and then determine to set or clear the runtime services bit of efi.flags. Jia He (2): efi: libstub: Fix the retriving of supported rutime services efi: Introduce efi_get_supported_rt_services() to get the runtime services mask drivers/firmware/efi/arm-runtime.c | 5 ++++- drivers/firmware/efi/efi.c | 28 +++++++++++++++++-------- drivers/firmware/efi/libstub/efi-stub.c | 2 ++ include/linux/efi.h | 1 + 4 files changed, 26 insertions(+), 10 deletions(-) -- 2.25.1