[HVM] Ignore evtchn_upcall_mask and initialise to zero.
authorkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 9 Jan 2007 17:43:13 +0000 (17:43 +0000)
committerkfraser@localhost.localdomain <kfraser@localhost.localdomain>
Tue, 9 Jan 2007 17:43:13 +0000 (17:43 +0000)
Signed-off-by: Keir Fraser <keir@xensource.com>
tools/libxc/xc_hvm_build.c
xen/arch/x86/hvm/irq.c

index 21e20ffaf9f084d8ab3d2df120705e302c548369..8c0c52238bbb2de138e0f1e8067ca4b5c47a7066 100644 (file)
@@ -233,8 +233,7 @@ static int setup_guest(int xc_handle,
              SCRATCH_PFN)) == NULL) )
         goto error_out;
     memset(shared_info, 0, PAGE_SIZE);
-    for ( i = 0; i < MAX_VIRT_CPUS; i++ )
-        shared_info->vcpu_info[i].evtchn_upcall_mask = 1;
+    /* NB. evtchn_upcall_mask is unused: leave as zero. */
     memset(&shared_info->evtchn_mask[0], 0xff,
            sizeof(shared_info->evtchn_mask));
     munmap(shared_info, PAGE_SIZE);
index 1b51f5905c0ec73d1e38880144a3f913073afd42..45d4f97042874c87d696cb9834f59b2c6ad5b617 100644 (file)
@@ -135,7 +135,8 @@ void hvm_set_callback_irq_level(void)
     if ( gsi == 0 )
         goto out;
 
-    if ( local_events_need_delivery() )
+    /* NB. Do not check the evtchn_upcall_mask. It is not used in HVM mode. */
+    if ( vcpu_info(v, evtchn_upcall_pending) )
     {
         if ( !__test_and_set_bit(0, &hvm_irq->callback_irq_wire) &&
              (hvm_irq->gsi_assert_count[gsi]++ == 0) )