Re: Corrupted EFI region

From: Matthew Garrett
Date: Wed Jul 31 2013 - 17:54:32 EST


On Wed, Jul 31, 2013 at 11:51:30PM +0200, Borislav Petkov wrote:

> But the problem is, something messes up the upper boundary of the region
> and it is an EFI_BOOT_SERVICES_DATA region which we need for the runtime
> services mapping and if we can't map it properly, we're probably going
> to miss functionality or not have runtime at all.

"Easiest" way around this would probably be to stash the address map
after ExitBootServices() and compare it at SetVirtualAddressMap() time,
then take the widest boundaries and trim the e820 map to match. This is
obviously dependent upon the system not allocating anything further
after that, but it seems safest. The worst case is finding the firmware
writing over bits of the kernel.

--
Matthew Garrett | mjg59@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/