|
@@ -74,9 +74,12 @@ static unsigned long ioapic_read_indirect(struct kvm_ioapic *ioapic,
|
|
|
u32 redir_index = (ioapic->ioregsel - 0x10) >> 1;
|
|
|
u64 redir_content;
|
|
|
|
|
|
- ASSERT(redir_index < IOAPIC_NUM_PINS);
|
|
|
+ if (redir_index < IOAPIC_NUM_PINS)
|
|
|
+ redir_content =
|
|
|
+ ioapic->redirtbl[redir_index].bits;
|
|
|
+ else
|
|
|
+ redir_content = ~0ULL;
|
|
|
|
|
|
- redir_content = ioapic->redirtbl[redir_index].bits;
|
|
|
result = (ioapic->ioregsel & 0x1) ?
|
|
|
(redir_content >> 32) & 0xffffffff :
|
|
|
redir_content & 0xffffffff;
|