Paul Fagerburg has submitted this change. ( https://review.coreboot.org/c/coreboot/+/72708 )
Change subject: include/bootstate.h: Fail compilation on invalid bootstate hooks ......................................................................
include/bootstate.h: Fail compilation on invalid bootstate hooks
No BS_ON_EXIT hooks are run on BS_PAYLOAD_BOOT or BS_OS_RESUME, so don't allow these hooks.
Change-Id: I318165f0bd510aed3138d3612dd3e264901aba96 Signed-off-by: Arthur Heymans arthur@aheymans.xyz Reviewed-on: https://review.coreboot.org/c/coreboot/+/72708 Tested-by: build bot (Jenkins) no-reply@coreboot.org Reviewed-by: Benjamin Doron benjamin.doron00@gmail.com Reviewed-by: Paul Menzel paulepanter@mailbox.org --- M src/include/bootstate.h 1 file changed, 22 insertions(+), 1 deletion(-)
Approvals: build bot (Jenkins): Verified Paul Menzel: Looks good to me, but someone else must approve Benjamin Doron: Looks good to me, approved
diff --git a/src/include/bootstate.h b/src/include/bootstate.h index 87ed0c8..a1743a8 100644 --- a/src/include/bootstate.h +++ b/src/include/bootstate.h @@ -188,7 +188,11 @@ }; \ static struct boot_state_init_entry * \ bsie_ ## func_ ##_## state_ ##_## when_ BOOT_STATE_INIT_ATTR = \ - &func_ ##_## state_ ##_## when_; + &func_ ##_## state_ ##_## when_; \ + _Static_assert(!(state_ == BS_PAYLOAD_BOOT && when_ == BS_ON_EXIT), \ + "Invalid bootstate hook"); \ + _Static_assert(!(state_ == BS_OS_RESUME && when_ == BS_ON_EXIT), \ + "Invalid bootstate hook");
/* Hook per arch when coreboot is exiting to payload or ACPI OS resume. It's * the very last thing done before the transition. */