On 15/02/2022 16:53, Jan Beulich wrote: > On 14.02.2022 13:51, Andrew Cooper wrote: >> UEFI Runtime services, at the time of writing, aren't CET-IBT compatible. >> Work is ongoing to address this. In the meantime, unconditionally disable >> IBT. >> >> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com> > Reviewed-by: Jan Beulich <jbeul...@suse.com>
Thanks. > >> --- a/xen/common/efi/runtime.c >> +++ b/xen/common/efi/runtime.c >> @@ -21,6 +21,7 @@ struct efi_rs_state { >> * don't strictly need that. >> */ >> unsigned long __aligned(32) cr3; >> + unsigned long msr_s_cet; >> #endif >> }; > The latest with the next addition here we will probably want to ... > >> @@ -113,6 +114,19 @@ struct efi_rs_state efi_rs_enter(void) > ... no longer have this be the function's return type. So about this. why aren't we using __attribute__((force_align_arg_pointer)) ? It exists in at least GCC 4.1 and Clang 6. We're way way overdue bumping the minimum toolchain versions, and Clang 3.5=>6 is still very obsolete minimum version. This way, we're not depending on some very subtle ABI mechanics to try and keep the stack properly aligned. ~Andrew