On 01.02.2024 22:12, Andrew Cooper wrote: > On 16/01/2024 4:53 pm, Jan Beulich wrote: >> While altcall is already used for them, the functions want announcing in >> .init.rodata.cf_clobber, even if the resulting static variables aren't >> otherwise used. >> >> While doing this also move ctxt_switch_masking to .data.ro_after_init. >> >> Signed-off-by: Jan Beulich <[email protected]> > > Reviewed-by: Andrew Cooper <[email protected]>
Thanks. >> --- a/xen/arch/x86/cpu/amd.c >> +++ b/xen/arch/x86/cpu/amd.c >> @@ -258,6 +258,11 @@ static void cf_check amd_ctxt_switch_mas >> #undef LAZY >> } >> >> +#ifdef CONFIG_XEN_IBT /* Announce the function to ENDBR clobbering logic. */ >> +static const typeof(ctxt_switch_masking) __initconst_cf_clobber __used csm = >> + amd_ctxt_switch_masking; >> +#endif > > If we gain more of these, I suspect we'll want a wrapper for it. > > Irritatingly you can't pass parameters into global asm, because the nice > way to do this would be an _ASM_PTR in a pushsection. While I'm not convinced resorting to asm() here would indeed be a good thing, for very many years I've been carrying a gcc change to permit exactly this. I don't even recall anymore why it wasn't liked upstream. Jan
