x86/xen: use xen_vcpu_id mapping for HYPERVISOR_vcpu_op
HYPERVISOR_vcpu_op() passes Linux's idea of vCPU id as a parameter while Xen's idea is expected. In some cases these ideas diverge so we need to do remapping. Convert all callers of HYPERVISOR_vcpu_op() to use xen_vcpu_nr(). Leave xen_fill_possible_map() and xen_filter_cpu_maps() intact as they're only being called by PV guests before perpu areas are initialized. While the issue could be solved by switching to early_percpu for xen_vcpu_id I think it's not worth it: PV guests will probably never get to the point where their idea of vCPU id diverges from Xen's. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
This commit is contained in:

committed by
David Vrabel

parent
88e957d6e4
commit
ad5475f9fa
@@ -109,7 +109,8 @@ static void xen_safe_halt(void)
|
||||
static void xen_halt(void)
|
||||
{
|
||||
if (irqs_disabled())
|
||||
HYPERVISOR_vcpu_op(VCPUOP_down, smp_processor_id(), NULL);
|
||||
HYPERVISOR_vcpu_op(VCPUOP_down,
|
||||
xen_vcpu_nr(smp_processor_id()), NULL);
|
||||
else
|
||||
xen_safe_halt();
|
||||
}
|
||||
|
Reference in New Issue
Block a user