From: Heinrich Schuchardt <xypron.glpk@gmx.de>
Date: Sat, 24 Mar 2018 17:40:22 +0000 (+0100)
Subject: efi_loader: use TPL_NOTIFY for network timer event
X-Git-Tag: v2018.05-rc2~45^2~25
X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=ee3db4fc04714c80196e49f8f3a5f157f20d2862;p=oweals%2Fu-boot.git

efi_loader: use TPL_NOTIFY for network timer event

We use a timer to poll the network.

iPXE is used for booting from iSCSI drives. It has been changed to run at
TPL_CALLBACK most of the time (which is not what the UEFI spec
recommends).

By changing our timer to TPL_NOTIFY we can ensure that it is nevertheless
executed.

Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
---

diff --git a/lib/efi_loader/efi_net.c b/lib/efi_loader/efi_net.c
index b88dc91f58..3d860e658e 100644
--- a/lib/efi_loader/efi_net.c
+++ b/lib/efi_loader/efi_net.c
@@ -353,8 +353,10 @@ efi_status_t efi_net_register(void)
 	 *
 	 * The notification function is used to check if a new network packet
 	 * has been received.
+	 *
+	 * iPXE is running at TPL_CALLBACK most of the time. Use a higher TPL.
 	 */
-	r = efi_create_event(EVT_TIMER | EVT_NOTIFY_SIGNAL, TPL_CALLBACK,
+	r = efi_create_event(EVT_TIMER | EVT_NOTIFY_SIGNAL, TPL_NOTIFY,
 			     efi_network_timer_notify, NULL, NULL,
 			     &network_timer_event);
 	if (r != EFI_SUCCESS) {