On 05.03.2025 01:02, Andrew Cooper wrote:
> This can be a plain per_cpu() variable, and __read_mostly seeing as it's
> allocated once and never touched again.

cpu_smpboot_free() certainly touches (really: modifies) it again. Just that ...

> @@ -1009,7 +1009,7 @@ static void cpu_smpboot_free(unsigned int cpu, bool 
> remove)
>      if ( remove )
>      {
>          FREE_XENHEAP_PAGE(per_cpu(gdt, cpu));
> -        FREE_XENHEAP_PAGE(idt_tables[cpu]);
> +        FREE_XENHEAP_PAGE(per_cpu(idt, cpu));

... this function-like macro hides that the macro argument is written to. (This
is the kind of hiding that elsewhere I think you dislike, yet there macros were
an idea of yours, iirc.)

Jan

Reply via email to