HV: Use the variable to fire VHM interrupt

This is to do the preparation of switch the notifier vector from
PLATFORM_IPI to HYPERVISOR_CALLBACK_VECTOR.

Currently the acrn-hypervisor is using the PLATFORM_IPI vector to notify
the sos_kernel. And then sos_kernel will handle the notification from acrn
hypervisor in PLATFORM_IPI ISR. But as the PLATFORM_IPI ISR can be registered
by the other modules, it will have the conflict when trying to register
acrn intr ISR. So the HYPERVISOR_CALLBACK_VECTOR will be used instead.

Tracked-On: https://github.com/projectacrn/acrn-hypervisor/issues/1325
Signed-off-by: Zhao Yakui <yakui.zhao@intel.com>
Acked-by: Eddie Dong <eddie.dong@intel.com>
This commit is contained in:
Zhao Yakui 2018-09-25 15:45:02 +08:00 committed by lijinxia
parent 89ca54cafa
commit a8e688eb72
2 changed files with 5 additions and 1 deletions

View File

@ -7,6 +7,8 @@
#define ACRN_DBG_IOREQUEST 6U #define ACRN_DBG_IOREQUEST 6U
uint32_t acrn_vhm_vector = VECTOR_VIRT_IRQ_VHM;
static void fire_vhm_interrupt(void) static void fire_vhm_interrupt(void)
{ {
/* /*
@ -22,7 +24,7 @@ static void fire_vhm_interrupt(void)
vcpu = vcpu_from_vid(vm0, 0U); vcpu = vcpu_from_vid(vm0, 0U);
ASSERT(vcpu != NULL, "vcpu_from_vid failed"); ASSERT(vcpu != NULL, "vcpu_from_vid failed");
vlapic_intr_edge(vcpu, VECTOR_VIRT_IRQ_VHM); vlapic_intr_edge(vcpu, acrn_vhm_vector);
} }
static void acrn_print_request(uint16_t vcpu_id, struct vhm_request *req) static void acrn_print_request(uint16_t vcpu_id, struct vhm_request *req)

View File

@ -121,4 +121,6 @@ void cancel_event_injection(struct vcpu *vcpu);
void get_cpu_interrupt_info(char *str_arg, int str_max); void get_cpu_interrupt_info(char *str_arg, int str_max);
#endif /* HV_DEBUG */ #endif /* HV_DEBUG */
extern uint32_t acrn_vhm_vector;
#endif /* ARCH_IRQ_H */ #endif /* ARCH_IRQ_H */