Have the only user call vcpu_mark_events_pending() instead, at the same
time arranging for correct ordering of the writes (evtchn_pending_sel
should be written before evtchn_upcall_pending).
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Julien Grall <julien.grall@arm.com>
return;
}
-void arch_evtchn_inject(struct vcpu *v)
-{
- vgic_inject_irq(v->domain, v, v->domain->arch.evtchn_irq, true);
-}
-
bool vgic_evtchn_irq_pending(struct vcpu *v)
{
struct pending_irq *p;
}
}
-void arch_evtchn_inject(struct vcpu *v)
-{
- vgic_inject_irq(v->domain, v, v->domain->arch.evtchn_irq, true);
-}
-
bool vgic_evtchn_irq_pending(struct vcpu *v)
{
struct vgic_irq *irq;
* Mark everything as being pending just to make sure nothing gets
* lost. The domain will get a spurious event, but it can cope.
*/
- vcpu_info(v, evtchn_upcall_pending) = 1;
for ( i = 0; i < BITS_PER_EVTCHN_WORD(d); i++ )
set_bit(i, &vcpu_info(v, evtchn_pending_sel));
- arch_evtchn_inject(v);
+ vcpu_mark_events_pending(v);
return 0;
}
/* Notify remote end of a Xen-attached event channel.*/
void notify_via_xen_event_channel(struct domain *ld, int lport);
-/* Inject an event channel notification into the guest */
-void arch_evtchn_inject(struct vcpu *v);
-
/*
* Internal event channel object storage.
*