render / rpms / qemu

Forked from rpms/qemu 4 months ago
Clone

Blame 0001-hw-pci-bridge-pci_expander_bridge-fix-type-in-pxb_cx.patch

Eduardo Lima (Etrunko) 493beb
From 692764e5310a7d1f5f819cbb2c4fb70405b4b119 Mon Sep 17 00:00:00 2001
Eduardo Lima (Etrunko) 493beb
From: Jonathan Cameron via <qemu-devel@nongnu.org>
Eduardo Lima (Etrunko) 493beb
Date: Thu, 20 Apr 2023 15:27:49 +0100
Eduardo Lima (Etrunko) 493beb
Subject: [PATCH 1/2] hw/pci-bridge: pci_expander_bridge fix type in
Eduardo Lima (Etrunko) 493beb
 pxb_cxl_dev_reset()
Eduardo Lima (Etrunko) 493beb
Eduardo Lima (Etrunko) 493beb
Reproduce issue with
Eduardo Lima (Etrunko) 493beb
Eduardo Lima (Etrunko) 493beb
configure --enable-qom-cast-debug ...
Eduardo Lima (Etrunko) 493beb
Eduardo Lima (Etrunko) 493beb
qemu-system-x86_64 -display none -machine q35,cxl=on -device pxb-cxl,bus=pcie.0
Eduardo Lima (Etrunko) 493beb
Eduardo Lima (Etrunko) 493beb
  hw/pci-bridge/pci_expander_bridge.c:54:PXB_DEV: Object 0x5570e0b1ada0 is not an instance of type pxb
Eduardo Lima (Etrunko) 493beb
  Aborted
Eduardo Lima (Etrunko) 493beb
Eduardo Lima (Etrunko) 493beb
The type conversion results in the right state structure, but PXB_DEV is
Eduardo Lima (Etrunko) 493beb
not a parent of PXB_CXL_DEV hence the error. Rather than directly
Eduardo Lima (Etrunko) 493beb
cleaning up the inheritance, this is the minimal fix which will be
Eduardo Lima (Etrunko) 493beb
followed by the cleanup.
Eduardo Lima (Etrunko) 493beb
Eduardo Lima (Etrunko) 493beb
Fixes: 154070eaf6 ("hw/pxb-cxl: Support passthrough HDM Decoders unless overridden")
Eduardo Lima (Etrunko) 493beb
Reported-by: Peter Maydell <peter.maydell@linaro.org>
Eduardo Lima (Etrunko) 493beb
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Eduardo Lima (Etrunko) 493beb
---
Eduardo Lima (Etrunko) 493beb
 hw/pci-bridge/pci_expander_bridge.c | 2 +-
Eduardo Lima (Etrunko) 493beb
 1 file changed, 1 insertion(+), 1 deletion(-)
Eduardo Lima (Etrunko) 493beb
Eduardo Lima (Etrunko) 493beb
diff --git a/hw/pci-bridge/pci_expander_bridge.c b/hw/pci-bridge/pci_expander_bridge.c
Eduardo Lima (Etrunko) 493beb
index ead33f0c05..a78327b5f2 100644
Eduardo Lima (Etrunko) 493beb
--- a/hw/pci-bridge/pci_expander_bridge.c
Eduardo Lima (Etrunko) 493beb
+++ b/hw/pci-bridge/pci_expander_bridge.c
Eduardo Lima (Etrunko) 493beb
@@ -311,7 +311,7 @@ static void pxb_cxl_dev_reset(DeviceState *dev)
Eduardo Lima (Etrunko) 493beb
      * The CXL specification allows for host bridges with no HDM decoders
Eduardo Lima (Etrunko) 493beb
      * if they only have a single root port.
Eduardo Lima (Etrunko) 493beb
      */
Eduardo Lima (Etrunko) 493beb
-    if (!PXB_DEV(dev)->hdm_for_passthrough) {
Eduardo Lima (Etrunko) 493beb
+    if (!PXB_CXL_DEV(dev)->hdm_for_passthrough) {
Eduardo Lima (Etrunko) 493beb
         dsp_count = pcie_count_ds_ports(hb->bus);
Eduardo Lima (Etrunko) 493beb
     }
Eduardo Lima (Etrunko) 493beb
     /* Initial reset will have 0 dsp so wait until > 0 */
Eduardo Lima (Etrunko) 493beb
-- 
Eduardo Lima (Etrunko) 493beb
2.40.0
Eduardo Lima (Etrunko) 493beb