Re: [U-Boot] [PATCH 1/1] efi_loader: allowable event types in CreateEventEx()

2019-05-05 Thread Alexander Graf


On 04.05.19 10:17, Heinrich Schuchardt wrote:

CreateEventEx() does allow the following event types:



... not ...




* EVT_SIGNAL_EXIT_BOOT_SERVICES
* EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE

Signed-off-by: Heinrich Schuchardt 



Did you find this proactively or is it fixing some SCT test case? After 
all, functionally the change should be a no-op, because no payload 
should create those events in the first place :). I would just like to 
see some comment about the reasoning in the commit message.


Either way, this is definitely getting us closer to spec conformance, so 
good to have. Maybe one day (if we grow too much), we can have some 
smarts somewhere that allow us to skip all those sanity checks in small 
builds.


Reviewed-by: Alexander Graf 


Alex


___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot


[U-Boot] [PATCH 1/1] efi_loader: allowable event types in CreateEventEx()

2019-05-04 Thread Heinrich Schuchardt
CreateEventEx() does allow the following event types:

* EVT_SIGNAL_EXIT_BOOT_SERVICES
* EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE

Signed-off-by: Heinrich Schuchardt 
---
 lib/efi_loader/efi_boottime.c | 20 ++--
 1 file changed, 18 insertions(+), 2 deletions(-)

diff --git a/lib/efi_loader/efi_boottime.c b/lib/efi_loader/efi_boottime.c
index 602b0da9f0..8965dabb2b 100644
--- a/lib/efi_loader/efi_boottime.c
+++ b/lib/efi_loader/efi_boottime.c
@@ -665,10 +665,26 @@ efi_status_t EFIAPI efi_create_event_ex(uint32_t type, 
efi_uintn_t notify_tpl,
efi_guid_t *event_group,
struct efi_event **event)
 {
+   efi_status_t ret;
+
EFI_ENTRY("%d, 0x%zx, %p, %p, %pUl", type, notify_tpl, notify_function,
  notify_context, event_group);
-   return EFI_EXIT(efi_create_event(type, notify_tpl, notify_function,
-notify_context, event_group, event));
+
+   /*
+* The allowable input parameters are the same as in CreateEvent()
+* except for the following two disallowed event types.
+*/
+   switch (type) {
+   case EVT_SIGNAL_EXIT_BOOT_SERVICES:
+   case EVT_SIGNAL_VIRTUAL_ADDRESS_CHANGE:
+   ret = EFI_INVALID_PARAMETER;
+   goto out;
+   }
+
+   ret = efi_create_event(type, notify_tpl, notify_function,
+  notify_context, event_group, event);
+out:
+   return EFI_EXIT(ret);
 }

 /**
--
2.20.1

___
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot