> > AFAIK, efi runtime services are not reentrant. With this in mind, if 
> > something
> like above happens, I have completely turned off EFI runtime services in 
> kernel.
> Is that OK? Or should we keep them enabled hoping to catch further illegal
> accesses (assuming that this feature is not used in production kernels).
> >
> 
> I think it is reasonable to turn off services after that. The only problem is 
> that
> distros will never be able to enable this, given that it may break systems 
> that are
> working fine today.

Actually these patches shouldn't break any existing behavior. Below are the 
possible illegal accesses.

1. If the illegal access was to boot time region, presently, it works during 
kernel boot but not after kernel boot, because we free boot time regions after 
set_virtual_address_map() is called. Please see 
efi_reserve/free_boot_services(). With the patches, we save boot time regions 
forever and hence illegal access could be fixed even after kernel boot. So, 
distros shouldn't see anything different here.

2. If the illegal access was to any other region except boot time region, 
presently, kernel panics both during and after kernel boot (this is the case 
reported by Al Stone). With these patches, we exit firmware context and hence 
fixup page fault handler. So, distros here, instead of seeing a kernel panic 
would see EFI Runtime Services disabled.

Regards,
Sai

Reply via email to