xen/events: use xen_vcpu_id mapping in events_base
EVTCHNOP_bind_ipi and EVTCHNOP_bind_virq pass vCPU id as a parameter and Xen's idea of vCPU id should be used. Use the newly introduced xen_vcpu_id mapping to convert it from Linux's id. Signed-off-by: Vitaly Kuznetsov <vkuznets@redhat.com> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
This commit is contained in:
parent
e15a862193
commit
8058c0b897
|
@ -895,7 +895,7 @@ static int bind_ipi_to_irq(unsigned int ipi, unsigned int cpu)
|
||||||
irq_set_chip_and_handler_name(irq, &xen_percpu_chip,
|
irq_set_chip_and_handler_name(irq, &xen_percpu_chip,
|
||||||
handle_percpu_irq, "ipi");
|
handle_percpu_irq, "ipi");
|
||||||
|
|
||||||
bind_ipi.vcpu = cpu;
|
bind_ipi.vcpu = xen_vcpu_nr(cpu);
|
||||||
if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_ipi,
|
if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_ipi,
|
||||||
&bind_ipi) != 0)
|
&bind_ipi) != 0)
|
||||||
BUG();
|
BUG();
|
||||||
|
@ -991,7 +991,7 @@ int bind_virq_to_irq(unsigned int virq, unsigned int cpu, bool percpu)
|
||||||
handle_edge_irq, "virq");
|
handle_edge_irq, "virq");
|
||||||
|
|
||||||
bind_virq.virq = virq;
|
bind_virq.virq = virq;
|
||||||
bind_virq.vcpu = cpu;
|
bind_virq.vcpu = xen_vcpu_nr(cpu);
|
||||||
ret = HYPERVISOR_event_channel_op(EVTCHNOP_bind_virq,
|
ret = HYPERVISOR_event_channel_op(EVTCHNOP_bind_virq,
|
||||||
&bind_virq);
|
&bind_virq);
|
||||||
if (ret == 0)
|
if (ret == 0)
|
||||||
|
@ -1319,7 +1319,7 @@ static int rebind_irq_to_cpu(unsigned irq, unsigned tcpu)
|
||||||
|
|
||||||
/* Send future instances of this interrupt to other vcpu. */
|
/* Send future instances of this interrupt to other vcpu. */
|
||||||
bind_vcpu.port = evtchn;
|
bind_vcpu.port = evtchn;
|
||||||
bind_vcpu.vcpu = tcpu;
|
bind_vcpu.vcpu = xen_vcpu_nr(tcpu);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mask the event while changing the VCPU binding to prevent
|
* Mask the event while changing the VCPU binding to prevent
|
||||||
|
@ -1459,7 +1459,7 @@ static void restore_cpu_virqs(unsigned int cpu)
|
||||||
|
|
||||||
/* Get a new binding from Xen. */
|
/* Get a new binding from Xen. */
|
||||||
bind_virq.virq = virq;
|
bind_virq.virq = virq;
|
||||||
bind_virq.vcpu = cpu;
|
bind_virq.vcpu = xen_vcpu_nr(cpu);
|
||||||
if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_virq,
|
if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_virq,
|
||||||
&bind_virq) != 0)
|
&bind_virq) != 0)
|
||||||
BUG();
|
BUG();
|
||||||
|
@ -1483,7 +1483,7 @@ static void restore_cpu_ipis(unsigned int cpu)
|
||||||
BUG_ON(ipi_from_irq(irq) != ipi);
|
BUG_ON(ipi_from_irq(irq) != ipi);
|
||||||
|
|
||||||
/* Get a new binding from Xen. */
|
/* Get a new binding from Xen. */
|
||||||
bind_ipi.vcpu = cpu;
|
bind_ipi.vcpu = xen_vcpu_nr(cpu);
|
||||||
if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_ipi,
|
if (HYPERVISOR_event_channel_op(EVTCHNOP_bind_ipi,
|
||||||
&bind_ipi) != 0)
|
&bind_ipi) != 0)
|
||||||
BUG();
|
BUG();
|
||||||
|
|
Loading…
Reference in New Issue