X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fdevices%2Fio_apic.c;h=1e032b6c68437c5a1f3b4867f1b79b3c764f00ba;hb=c0a5974089157e1a5ea18ea443fab587c577296a;hp=8eae20af8009667ba76a1d235222f99a40f53a9c;hpb=4bc3ee757b44d3e466fd89e348106c47fa5511ee;p=palacios.git diff --git a/palacios/src/devices/io_apic.c b/palacios/src/devices/io_apic.c index 8eae20a..1e032b6 100644 --- a/palacios/src/devices/io_apic.c +++ b/palacios/src/devices/io_apic.c @@ -22,12 +22,12 @@ #include -/* - #ifndef DEBUG_IO_APIC - #undef PrintDebug - #define PrintDebug(fmt, args...) - #endif -*/ + +#ifndef DEBUG_IO_APIC +#undef PrintDebug +#define PrintDebug(fmt, args...) +#endif + #define IO_APIC_BASE_ADDR 0xfec00000 @@ -182,7 +182,7 @@ static int ioapic_read(addr_t guest_addr, void * dst, uint_t length, void * priv break; default: { - uint_t redir_index = (ioapic->index_reg - IOAPIC_REDIR_BASE_REG) & 0xfffffffe; + uint_t redir_index = (ioapic->index_reg - IOAPIC_REDIR_BASE_REG) >> 1; uint_t hi_val = (ioapic->index_reg - IOAPIC_REDIR_BASE_REG) % 1; if (redir_index > 0x3f) { @@ -227,7 +227,7 @@ static int ioapic_write(addr_t guest_addr, void * src, uint_t length, void * pri break; default: { - uint_t redir_index = (ioapic->index_reg - IOAPIC_REDIR_BASE_REG) & 0xfffffffe; + uint_t redir_index = (ioapic->index_reg - IOAPIC_REDIR_BASE_REG) >> 1; uint_t hi_val = (ioapic->index_reg - IOAPIC_REDIR_BASE_REG) % 1; @@ -273,7 +273,7 @@ static int ioapic_raise_irq(void * private_data, int irq) { struct redir_tbl_entry * irq_entry = NULL; if (irq > 24) { - PrintError("IRQ out of range of IO APIC\n"); + PrintDebug("IRQ out of range of IO APIC\n"); return -1; }