RE: [PATCH V5 3/3] efi: Use efi_rts_wq to invoke EFI Runtime Services

From: Prakhya, Sai Praneeth
Date: Tue Jun 05 2018 - 15:29:21 EST


> > + case RESET_SYSTEM:
> > + __efi_call_virt(reset_system, *(int *)arg1,
> > + *(efi_status_t *)arg2,
> > + *(unsigned long *)arg3,
> > + (efi_char16_t *)arg4);
> > + break;
>
> I noticed that -unsurprisingly- reboot no longer works with these changes.
>
> I will fix up the patch, and revert the efi_reset_system() change, both here and
> below.

Could you please let me know what the bug is here? I am unable to see it right away :(
I have tested reboot on qemu x86_64 by passing "reboot=efi" as command line arg and
saw that reboot is working fine.

> > @@ -340,7 +441,8 @@ static void virt_efi_reset_system(int reset_type,
> > "could not get exclusive access to the firmware\n");
> > return;
> > }
> > - __efi_call_virt(reset_system, reset_type, status, data_size, data);
> > + efi_queue_work(RESET_SYSTEM, &reset_type, &status, &data_size, data,
> > + NULL);
> > up(&efi_runtime_lock);
> > }

Regards,
Sai