Processor = &Context->Processor[Cpu];
- if (Processor->Interrupt == NULL)
- continue;
-
- status = SystemProcessorVcpuId(Cpu, &vcpu_id);
- if (!NT_SUCCESS(status))
+ if (!EvtchnIsProcessorEnabled(Context, Cpu))
continue;
+ ASSERT(Processor->Interrupt != NULL);
Vector = FdoGetInterruptVector(Context->Fdo, Processor->Interrupt);
+ status = SystemProcessorVcpuId(Cpu, &vcpu_id);
+ ASSERT(NT_SUCCESS(status));
+
status = HvmSetEvtchnUpcallVector(vcpu_id, Vector);
if (!NT_SUCCESS(status)) {
if (status != STATUS_NOT_IMPLEMENTED )
if (!Processor->UpcallEnabled)
continue;
+ ASSERT(EvtchnIsProcessorEnabled(Context, Cpu));
+
status = SystemProcessorVcpuId(Cpu, &vcpu_id);
- if (!NT_SUCCESS(status))
- continue;
+ ASSERT(NT_SUCCESS(status));
(VOID) HvmSetEvtchnUpcallVector(vcpu_id, 0);
Processor->UpcallEnabled = FALSE;
for (Cpu = 0; Cpu < Context->ProcessorCount; Cpu++) {
PXENBUS_EVTCHN_PROCESSOR Processor;
+ if (!EvtchnIsProcessorEnabled(Context, Cpu))
+ continue;
+
ASSERT(Context->Processor != NULL);
Processor = &Context->Processor[Cpu];
RtlZeroMemory(&Processor->Dpc, sizeof (KDPC));
RtlZeroMemory(&Processor->PendingList, sizeof (LIST_ENTRY));
- if (Processor->Interrupt != NULL) {
- FdoFreeInterrupt(Fdo, Processor->Interrupt);
- Processor->Interrupt = NULL;
- }
+ ASSERT(Processor->Interrupt != NULL);
+ FdoFreeInterrupt(Fdo, Processor->Interrupt);
+ Processor->Interrupt = NULL;
Processor->Cpu = 0;
Processor->Context = NULL;
RtlZeroMemory(&Processor->Dpc, sizeof (KDPC));
RtlZeroMemory(&Processor->PendingList, sizeof (LIST_ENTRY));
- if (Processor->Interrupt != NULL) {
- FdoFreeInterrupt(Fdo, Processor->Interrupt);
- Processor->Interrupt = NULL;
- }
+ ASSERT(Processor->Interrupt != NULL);
+ FdoFreeInterrupt(Fdo, Processor->Interrupt);
+ Processor->Interrupt = NULL;
Processor->Cpu = 0;
Processor->Context = NULL;