David Brown wrote:
Can you run 'gdb /path/to/kvm.ko' and post the output of 'disassemble
ioapic_mmio_write' please?


Sorry for not getting back sooner.

(gdb) disassemble ioapic_mmio_write
Dump of assembler code for function ioapic_mmio_write:

The attached patch should fix, though there's probably another problem lurking in there.

--
Any sufficiently difficult bug is indistinguishable from a feature.

commit f1b8c28f1886c9375361d7f2ebca1f742ea6bc5f
Author: Avi Kivity <[EMAIL PROTECTED]>
Date:   Mon Oct 8 10:01:45 2007 +0200

    KVM: Check I/O APIC indirect index before writing
    
    Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>

diff --git a/drivers/kvm/ioapic.c b/drivers/kvm/ioapic.c
index 9eb5058..c7992e6 100644
--- a/drivers/kvm/ioapic.c
+++ b/drivers/kvm/ioapic.c
@@ -96,7 +96,7 @@ static void ioapic_service(struct kvm_ioapic *ioapic, unsigned int idx)
 
 static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val)
 {
-	int index;
+	unsigned index;
 
 	switch (ioapic->ioregsel) {
 	case IOAPIC_REG_VERSION:
@@ -114,7 +114,8 @@ static void ioapic_write_indirect(struct kvm_ioapic *ioapic, u32 val)
 		index = (ioapic->ioregsel - 0x10) >> 1;
 
 		ioapic_debug("change redir index %x val %x", index, val);
-		ASSERT(irq < IOAPIC_NUM_PINS);
+		if (index >= IOAPIC_NUM_PINS)
+			return;
 		if (ioapic->ioregsel & 1) {
 			ioapic->redirtbl[index].bits &= 0xffffffff;
 			ioapic->redirtbl[index].bits |= (u64) val << 32;
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
kvm-devel mailing list
kvm-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-devel

Reply via email to