|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] [xen-3.2-testing] PV-on-HVM: unmask_evtchn() must always
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1219308788 -3600
# Node ID b74fe3ba4ce17a1a429973af06e8b68875b3bfa8
# Parent 87ede74351937470e25703e1fb663cd069cc5e4a
PV-on-HVM: unmask_evtchn() must always use hypercall.
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
xen-unstable changeset: 18354:1ea9dd2c7331a7ac22e0debc749316840ce5fdca
xen-unstable date: Thu Aug 21 09:51:46 2008 +0100
---
unmodified_drivers/linux-2.6/platform-pci/evtchn.c | 41 +--------------------
1 files changed, 2 insertions(+), 39 deletions(-)
diff -r 87ede7435193 -r b74fe3ba4ce1
unmodified_drivers/linux-2.6/platform-pci/evtchn.c
--- a/unmodified_drivers/linux-2.6/platform-pci/evtchn.c Wed Aug 20
09:08:30 2008 +0100
+++ b/unmodified_drivers/linux-2.6/platform-pci/evtchn.c Thu Aug 21
09:53:08 2008 +0100
@@ -107,39 +107,8 @@ EXPORT_SYMBOL(mask_evtchn);
void unmask_evtchn(int port)
{
- unsigned int cpu;
- shared_info_t *s = shared_info_area;
- vcpu_info_t *vcpu_info;
-
- cpu = get_cpu();
- vcpu_info = &s->vcpu_info[cpu];
-
- /* Slow path (hypercall) if this is a non-local port. We only
- ever bind event channels to vcpu 0 in HVM guests. */
- if (unlikely(cpu != 0)) {
- evtchn_unmask_t op = { .port = port };
- VOID(HYPERVISOR_event_channel_op(EVTCHNOP_unmask,
- &op));
- put_cpu();
- return;
- }
-
- synch_clear_bit(port, &s->evtchn_mask[0]);
-
- /*
- * The following is basically the equivalent of
- * 'hw_resend_irq'. Just like a real IO-APIC we 'lose the
- * interrupt edge' if the channel is masked.
- */
- if (synch_test_bit(port, &s->evtchn_pending[0]) &&
- !synch_test_and_set_bit(port / BITS_PER_LONG,
- &vcpu_info->evtchn_pending_sel)) {
- vcpu_info->evtchn_upcall_pending = 1;
- if (!vcpu_info->evtchn_upcall_mask)
- force_evtchn_callback();
- }
-
- put_cpu();
+ evtchn_unmask_t op = { .port = port };
+ VOID(HYPERVISOR_event_channel_op(EVTCHNOP_unmask, &op));
}
EXPORT_SYMBOL(unmask_evtchn);
@@ -309,12 +278,6 @@ static irqreturn_t evtchn_interrupt(int
return IRQ_HANDLED;
}
-void force_evtchn_callback(void)
-{
- VOID(HYPERVISOR_xen_version(0, NULL));
-}
-EXPORT_SYMBOL(force_evtchn_callback);
-
void irq_resume(void)
{
int evtchn, irq;
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] [xen-3.2-testing] PV-on-HVM: unmask_evtchn() must always use hypercall.,
Xen patchbot-3.2-testing <=
|
|
|
|
|