On Fri, Mar 13, 2009 at 10:15:22AM +0800, Zhang, Xiantao wrote: > We also hacked the source like the patch. But the issue is not caused by it. We are still trying to figure the reason out. Thanks! > Xiantao > With the patch below I am able to compile kvm-userspace on IA64 and run linux guest. Network doesn't work since there is some kind of problem with PCI interrupts. They are not delivered to a guest. Signed-off-by: Gleb Natapov <gleb@xxxxxxxxxx> diff --git a/qemu/hw/ipf.c b/qemu/hw/ipf.c index e2b53ee..bbe789a 100644 --- a/qemu/hw/ipf.c +++ b/qemu/hw/ipf.c @@ -700,7 +700,7 @@ void ioapic_set_irq(void *opaque, int irq_num, int level) ioapic_irq_count[vector] -= 1; if (kvm_enabled()) { - if (kvm_set_irq(vector, ioapic_irq_count[vector] == 0)) + if (kvm_set_irq(vector, ioapic_irq_count[vector] == 0, NULL)) return; } } @@ -709,3 +709,17 @@ int ipf_map_irq(PCIDevice *pci_dev, int irq_num) { return ioapic_map_irq(pci_dev->devfn, irq_num); } + +static int apic_irq_delivered; +void apic_reset_irq_delivered(void) +{ + apic_irq_delivered = 0; +} +int apic_get_irq_delivered(void) +{ + return apic_irq_delivered; +} +void apic_set_irq_delivered(void) +{ + apic_irq_delivered = 1; +} diff --git a/qemu/target-ia64/cpu.h b/qemu/target-ia64/cpu.h index 9bad6f6..5960bb9 100644 --- a/qemu/target-ia64/cpu.h +++ b/qemu/target-ia64/cpu.h @@ -29,7 +29,7 @@ #define TARGET_LONG_BITS 64 -#define TARGET_PAGE_BITS 16 +#define TARGET_PAGE_BITS 14 #define ELF_MACHINE EM_IA_64 @@ -40,13 +40,14 @@ #include "cpu-defs.h" #include "softfloat.h" +#define CPUState struct CPUIA64State + typedef struct CPUIA64State { CPU_COMMON; uint32_t hflags; int mp_state; } CPUIA64State; -#define CPUState CPUIA64State #define cpu_gen_code cpu_ia64_gen_code #define cpu_init cpu_ia64_init #define cpu_signal_handler cpu_ia64_signal_handler -- Gleb. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html