On Fri, 26 Jul 2024 at 14:28, Miao Wang via B4 Relay <devnull+shankerwangmiao.gmail.com@xxxxxxxxxx> wrote: > > From: Miao Wang <shankerwangmiao@xxxxxxxxx> > > Currently efi_shutdown_init can register a general sys_off handler, > efi_power_off, which will be called during do_kernel_power_off and shut > the machine off via efi runtime services. So enable this by providing > efi_poweroff_required, like arm and x86, and prevent directly calling > efi.reset_system in machine_power_off. > > Signed-off-by: Miao Wang <shankerwangmiao@xxxxxxxxx> > --- > arch/loongarch/kernel/efi.c | 5 +++++ > arch/loongarch/kernel/reset.c | 3 --- > 2 files changed, 5 insertions(+), 3 deletions(-) > Acked-by: Ard Biesheuvel <ardb@xxxxxxxxxx> > diff --git a/arch/loongarch/kernel/efi.c b/arch/loongarch/kernel/efi.c > index 000825406c1f..df57c2674758 100644 > --- a/arch/loongarch/kernel/efi.c > +++ b/arch/loongarch/kernel/efi.c > @@ -73,6 +73,11 @@ struct screen_info screen_info __section(".data"); > EXPORT_SYMBOL_GPL(screen_info); > #endif > > +bool efi_poweroff_required(void) > +{ > + return efi_enabled(EFI_RUNTIME_SERVICES); > +} > + > static void __init init_screen_info(void) > { > struct screen_info *si; > diff --git a/arch/loongarch/kernel/reset.c b/arch/loongarch/kernel/reset.c > index 1ef8c6383535..9c8156798e8d 100644 > --- a/arch/loongarch/kernel/reset.c > +++ b/arch/loongarch/kernel/reset.c > @@ -48,9 +48,6 @@ void machine_power_off(void) > enable_pci_wakeup(); > #endif > do_kernel_power_off(); > -#ifdef CONFIG_EFI > - efi.reset_system(EFI_RESET_SHUTDOWN, EFI_SUCCESS, 0, NULL); > -#endif > > while (true) { > __arch_cpu_idle(); > -- > 2.39.2 > >