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