x86/xen: fix percpu vcpu_info allocation
authorJuergen Gross <jgross@suse.com>
Fri, 24 Nov 2023 07:48:52 +0000 (08:48 +0100)
committerJuergen Gross <jgross@suse.com>
Tue, 28 Nov 2023 11:47:11 +0000 (12:47 +0100)
commitdb2832309a82b9acc4b8cc33a1831d36507ec13e
tree372b03193c3333e5cef2b001c67adcca0944c189
parent7bf9a6b46549852a37e6d07e52c601c3c706b562
x86/xen: fix percpu vcpu_info allocation

Today the percpu struct vcpu_info is allocated via DEFINE_PER_CPU(),
meaning that it could cross a page boundary. In this case registering
it with the hypervisor will fail, resulting in a panic().

This can easily be fixed by using DEFINE_PER_CPU_ALIGNED() instead,
as struct vcpu_info is guaranteed to have a size of 64 bytes, matching
the cache line size of x86 64-bit processors (Xen doesn't support
32-bit processors).

Fixes: 5ead97c84fa7 ("xen: Core Xen implementation")
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.con>
Link: https://lore.kernel.org/r/20231124074852.25161-1-jgross@suse.com
Signed-off-by: Juergen Gross <jgross@suse.com>
arch/x86/xen/enlighten.c
arch/x86/xen/xen-ops.h