[LINUX] Remove the only use of evtchn_upcall_mask in common code.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 10 Jun 2006 10:05:11 +0000 (11:05 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Sat, 10 Jun 2006 10:05:11 +0000 (11:05 +0100)
Replace with an assertion of irq_disabled().
Signed-off-by: Keir Fraser <keir@xensource.com>
linux-2.6-xen-sparse/drivers/xen/core/evtchn.c

index be4f28b0b8ce18ca2f0934182d1a94b1f5029853..24abd8084299a0fd6aff4b02671fd9bde8ffc1b7 100644 (file)
@@ -717,6 +717,8 @@ void unmask_evtchn(int port)
        unsigned int cpu = smp_processor_id();
        vcpu_info_t *vcpu_info = &s->vcpu_info[cpu];
 
+       BUG_ON(!irqs_disabled());
+
        /* Slow path (hypercall) if this is a non-local port. */
        if (unlikely(cpu != cpu_from_evtchn(port))) {
                struct evtchn_unmask unmask = { .port = port };
@@ -733,11 +735,8 @@ void unmask_evtchn(int port)
         */
        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_pending_sel))
                vcpu_info->evtchn_upcall_pending = 1;
-               if (!vcpu_info->evtchn_upcall_mask)
-                       force_evtchn_callback();
-       }
 }
 EXPORT_SYMBOL_GPL(unmask_evtchn);