On 08.08.2025 22:22, Andrew Cooper wrote:
> This was added erroneously by me.
> 
> Hardware task switching does demand a TSS of at least 0x67 bytes, but that's
> not relevant in 64bit, and not relevant for Xen since commit
> 5d1181a5ea5e ("xen: Remove x86_32 build target.") in 2012.
> 
> We already load a 0-length TSS in early_traps_init() demonstrating that it's
> possible.
> 
> Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
> ---
> CC: Jan Beulich <jbeul...@suse.com>
> CC: Roger Pau Monné <roger....@citrix.com>
> ---
>  xen/arch/x86/cpu/common.c | 2 --
>  1 file changed, 2 deletions(-)
> 
> diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c
> index f6ec5c9df522..cdc41248d4e9 100644
> --- a/xen/arch/x86/cpu/common.c
> +++ b/xen/arch/x86/cpu/common.c
> @@ -936,8 +936,6 @@ void load_system_tables(void)
>               wrmsrl(MSR_ISST, (unsigned long)ist_ssp);
>       }
>  
> -     BUILD_BUG_ON(sizeof(*tss) <= 0x67); /* Mandated by the architecture. */
> -
>       _set_tssldt_desc(gdt + TSS_ENTRY, (unsigned long)tss,
>                        sizeof(*tss) - 1, SYS_DESC_tss_avail);
>       if ( IS_ENABLED(CONFIG_PV32) )

Well, the comment is wrong. Whether the BUILD_BUG_ON() itself is also wrong
depends on our intentions with the structure. Don't we need it to be that
size for everything (incl I/O bitmap) to work correctly elsewhere?

Jan

Reply via email to