Signed-off-by: Keir Fraser <keir@xensource.com>
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);
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) )