On Sat, Aug 22, 2020 at 12:40 AM Heinrich Schuchardt <xypron.g...@gmx.de> wrote: > > If ResetSystem() is not implemented at runtime, it should return instead > of hanging in an endless loop. This allows the operating system to reset > the system by other means as Linux does. It also matches what EDK II > suggests in comments for functions ResetShutdown() and ResetWarm() in > OvmfPkg/Library/ResetSystemLib/ResetSystemLib.c. > > Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> > --- > v2: > new patch > --- > lib/efi_loader/efi_runtime.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/lib/efi_loader/efi_runtime.c b/lib/efi_loader/efi_runtime.c > index 78fd8014d9..dea2b4e5ee 100644 > --- a/lib/efi_loader/efi_runtime.c > +++ b/lib/efi_loader/efi_runtime.c > @@ -365,7 +365,9 @@ out: > * efi_reset_system() - reset system > * > * This function implements the ResetSystem() runtime service after > - * SetVirtualAddressMap() is called. It only executes an endless loop. > + * SetVirtualAddressMap() is called. As this placeholder cannot reset the > + * system it simply return to the caller. > + * > * Boards may override the helpers below to implement reset functionality. > * > * See the Unified Extensible Firmware Interface (UEFI) specification for > @@ -381,8 +383,7 @@ void __weak __efi_runtime EFIAPI efi_reset_system( > efi_status_t reset_status, > unsigned long data_size, void *reset_data) > { > - /* Nothing we can do */ > - while (1) { } > + return; > } > > /** > -- > 2.28.0 >
Reviewed-by: Atish Patra <atish.pa...@wdc.com> -- Regards, Atish