qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] KVM: remove support for kernel-irqchip=off


From: Philippe Mathieu-Daudé
Subject: Re: [PATCH] KVM: remove support for kernel-irqchip=off
Date: Sun, 18 Dec 2022 14:39:24 +0100
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.1

On 18/12/22 14:38, Philippe Mathieu-Daudé wrote:
On 18/12/22 01:06, Paolo Bonzini wrote:
-machine kernel-irqchip=off is broken for many guest OSes; kernel-irqchip=split is the replacement that works, so remove the deprecated support for the former.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
  docs/about/deprecated.rst       |  7 -------
  docs/about/removed-features.rst |  7 +++++++
  hw/i386/amd_iommu.c             |  2 +-
  hw/i386/intel_iommu.c           |  4 ++--
  include/hw/i386/apic_internal.h |  2 +-
  target/i386/cpu-sysemu.c        | 15 +++++++++++----
  6 files changed, 22 insertions(+), 15 deletions(-)


diff --git a/hw/i386/amd_iommu.c b/hw/i386/amd_iommu.c
index 725f69095b9e..bcd016f5c5a5 100644
--- a/hw/i386/amd_iommu.c
+++ b/hw/i386/amd_iommu.c
@@ -1368,7 +1368,7 @@ static MemTxResult amdvi_mem_ir_write(void *opaque, hwaddr addr,
          return MEMTX_ERROR;
      }
-    apic_get_class()->send_msi(&to);
+    apic_get_class(NULL)->send_msi(&to);

&error_fatal?

Eh, &error_abort instead.

diff --git a/hw/i386/intel_iommu.c b/hw/i386/intel_iommu.c
index a08ee85edf2a..98a5c304a7d7 100644
--- a/hw/i386/intel_iommu.c
+++ b/hw/i386/intel_iommu.c
@@ -396,7 +396,7 @@ static void vtd_generate_interrupt(IntelIOMMUState *s, hwaddr mesg_addr_reg,
      trace_vtd_irq_generate(msi.address, msi.data);
-    apic_get_class()->send_msi(&msi);
+    apic_get_class(NULL)->send_msi(&msi);
  }
  /* Generate a fault event to software via MSI if conditions are met.
@@ -3529,7 +3529,7 @@ static MemTxResult vtd_mem_ir_write(void *opaque, hwaddr addr,
          return MEMTX_ERROR;
      }
-    apic_get_class()->send_msi(&to);
+    apic_get_class(NULL)->send_msi(&to);
      return MEMTX_OK;
  }

  #endif /* QEMU_APIC_INTERNAL_H */
diff --git a/target/i386/cpu-sysemu.c b/target/i386/cpu-sysemu.c
index fc97213a73cf..28115edf44f7 100644
--- a/target/i386/cpu-sysemu.c
+++ b/target/i386/cpu-sysemu.c
@@ -247,12 +247,16 @@ void x86_cpu_machine_reset_cb(void *opaque)
      cpu_reset(CPU(cpu));
  }
-APICCommonClass *apic_get_class(void)
+APICCommonClass *apic_get_class(Error **errp)
  {
      const char *apic_type = "apic";
      /* TODO: in-kernel irqchip for hvf */
-    if (kvm_apic_in_kernel()) {
+    if (kvm_enabled()) {
+        if (!kvm_apic_in_kernel()) {
+            error_setg(errp, "KVM does not support userspace APIC");
+            return NULL;
+        }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]