[ipxe-devel] [PATCH 1/1] [efi] Run at TPL_CALLBACK to protect against UEFI timers

Michael Brown mcb30 at ipxe.org
Sun Mar 25 12:24:14 UTC 2018

On 24/03/18 16:43, Heinrich Schuchardt wrote:
> The patch clearly contradicts the UEFI spec:
> "Good coding practice dictates that all code should execute at its
> lowest possible TPL level, and the use of TPL levels above
> TPL_APPLICATION must be minimized. Executing at TPL levels above
> TPL_APPLICATION for extended periods of time may also result in
> unpredictable behavior."
> I suggest that iPXE sticks to the UEFI spec.

Unfortunately, good coding practice dictates completely ignoring the 
UEFI specification as far as is possible, since it is full of 
poorly-designed garbage such as EFI_HII_CONFIG_ROUTING_PROTOCOL, 
EFI_USB_IO_PROTOCOL, the EFI UNDI API, etc.  iPXE is not a UEFI-only 
application and I really don't want to pollute the codebase with 
thousands of acquire/release calls simply to placate the moronic way 
that the UEFI specification chooses to handle interrupts.

I suspect the problem may be caused by a missing call to 
efi_snp_release() in efi_block_boot().  I haven't had a chance to test 
the attached patch yet, but you can give it a go.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ipxe-sanboot-snp-release.patch
Type: text/x-patch
Size: 633 bytes
Desc: not available
URL: <http://lists.ipxe.org/pipermail/ipxe-devel/attachments/20180325/99c931ed/attachment.bin>

More information about the ipxe-devel mailing list