Commit d517872e authored by Anthony Liguori's avatar Anthony Liguori
Browse files

Merge remote-tracking branch 'qemu-kvm/uq/master' into staging

* qemu-kvm/uq/master:
  kvm: Add documentation comment for kvm_irqchip_in_kernel()
  kvm: Decouple 'GSI routing' from 'kernel irqchip'
  kvm: Decouple 'MSI routing via irqfds' from 'kernel irqchip'
  kvm: Decouple 'irqfds usable' from 'kernel irqchip'
  kvm: Move kvm_allows_irq0_override() to target-i386, fix return type
  kvm: Rename kvm_irqchip_set_irq() to kvm_set_irq()
  kvm: Decouple 'async interrupt delivery' from 'kernel irqchip'
  configure: Don't implicitly hardcode list of KVM architectures
  kvm: Check if smp_cpus exceeds max cpus supported by kvm
parents 33e95c63 96fda35a
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -3563,15 +3563,23 @@ if test "$linux" = "yes" ; then
  mkdir -p linux-headers
  case "$cpu" in
  i386|x86_64)
    symlink "$source_path/linux-headers/asm-x86" linux-headers/asm
    linux_arch=x86
    ;;
  ppcemb|ppc|ppc64)
    symlink "$source_path/linux-headers/asm-powerpc" linux-headers/asm
    linux_arch=powerpc
    ;;
  s390x)
    symlink "$source_path/linux-headers/asm-s390" linux-headers/asm
    linux_arch=s390
    ;;
  *)
    # For most CPUs the kernel architecture name and QEMU CPU name match.
    linux_arch="$cpu"
    ;;
  esac
    # For non-KVM architectures we will not have asm headers
    if [ -e "$source_path/linux-headers/asm-$linux_arch" ]; then
      symlink "$source_path/linux-headers/asm-$linux_arch" linux-headers/asm
    fi
fi

for target in $target_list; do
+2 −1
Original line number Diff line number Diff line
@@ -70,7 +70,8 @@ static bool cpu_thread_is_idle(CPUArchState *env)
    if (env->stopped || !runstate_is_running()) {
        return true;
    }
    if (!env->halted || qemu_cpu_has_work(env) || kvm_irqchip_in_kernel()) {
    if (!env->halted || qemu_cpu_has_work(env) ||
        kvm_async_interrupts_enabled()) {
        return false;
    }
    return true;
+1 −1
Original line number Diff line number Diff line
@@ -94,7 +94,7 @@ static void kvm_pic_set_irq(void *opaque, int irq, int level)
{
    int delivered;

    delivered = kvm_irqchip_set_irq(kvm_state, irq, level);
    delivered = kvm_set_irq(kvm_state, irq, level);
    apic_report_irq_delivered(delivered);
}

+1 −1
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ static void kvm_ioapic_set_irq(void *opaque, int irq, int level)
    KVMIOAPICState *s = opaque;
    int delivered;

    delivered = kvm_irqchip_set_irq(kvm_state, s->kvm_gsi_base + irq, level);
    delivered = kvm_set_irq(kvm_state, s->kvm_gsi_base + irq, level);
    apic_report_irq_delivered(delivered);
}

+1 −0
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@
#include "sysbus.h"
#include "sysemu.h"
#include "kvm.h"
#include "kvm_i386.h"
#include "xen.h"
#include "blockdev.h"
#include "hw/block-common.h"
Loading