[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 23/38] spapr: Fix phb_placement backwards compatibili
From: |
David Gibson |
Subject: |
[Qemu-devel] [PULL 23/38] spapr: Fix phb_placement backwards compatibility |
Date: |
Wed, 22 May 2019 14:45:45 +1000 |
When we added support for NVLink2 passthrough devices, we changed the
phb_placement hook to handle the placement of NVLink2 bridges' specific
resources. For compatibility we use a version that doesn't do this
allocation for old machine types.
However, because of the delay between when the patch was posted and when
it was merged, we ended up with that compatibility hook applying for
machine versions 3.1 and earlier whereas it should apply for 4.0 and
earlier (since the patch was applied early in the 4.1 tree).
Fixes: ec132efaa81 "spapr: Support NVIDIA V100 GPU with NVLink2"
Reported-by: Laurent Vivier <address@hidden>
Signed-off-by: David Gibson <address@hidden>
Reviewed-by: Cédric Le Goater <address@hidden>
Reviewed-by: Greg Kurz <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
---
hw/ppc/spapr.c | 28 +++++++++++++++-------------
1 file changed, 15 insertions(+), 13 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index bcae30ad26..39e698e9b0 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -4411,18 +4411,7 @@ DEFINE_SPAPR_MACHINE(4_1, "4.1", true);
/*
* pseries-4.0
*/
-static void spapr_machine_4_0_class_options(MachineClass *mc)
-{
- spapr_machine_4_1_class_options(mc);
- compat_props_add(mc->compat_props, hw_compat_4_0, hw_compat_4_0_len);
-}
-
-DEFINE_SPAPR_MACHINE(4_0, "4.0", false);
-
-/*
- * pseries-3.1
- */
-static void phb_placement_3_1(SpaprMachineState *spapr, uint32_t index,
+static void phb_placement_4_0(SpaprMachineState *spapr, uint32_t index,
uint64_t *buid, hwaddr *pio,
hwaddr *mmio32, hwaddr *mmio64,
unsigned n_dma, uint32_t *liobns,
@@ -4434,6 +4423,20 @@ static void phb_placement_3_1(SpaprMachineState *spapr,
uint32_t index,
*nv2atsd = 0;
}
+static void spapr_machine_4_0_class_options(MachineClass *mc)
+{
+ SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
+
+ spapr_machine_4_1_class_options(mc);
+ compat_props_add(mc->compat_props, hw_compat_4_0, hw_compat_4_0_len);
+ smc->phb_placement = phb_placement_4_0;
+}
+
+DEFINE_SPAPR_MACHINE(4_0, "4.0", false);
+
+/*
+ * pseries-3.1
+ */
static void spapr_machine_3_1_class_options(MachineClass *mc)
{
SpaprMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
@@ -4449,7 +4452,6 @@ static void spapr_machine_3_1_class_options(MachineClass
*mc)
smc->default_caps.caps[SPAPR_CAP_SBBC] = SPAPR_CAP_BROKEN;
smc->default_caps.caps[SPAPR_CAP_IBS] = SPAPR_CAP_BROKEN;
smc->default_caps.caps[SPAPR_CAP_LARGE_DECREMENTER] = SPAPR_CAP_OFF;
- smc->phb_placement = phb_placement_3_1;
}
DEFINE_SPAPR_MACHINE(3_1, "3.1", false);
--
2.21.0
- [Qemu-devel] [PULL 33/38] spapr: check for the activation of the KVM IRQ device, (continued)
- [Qemu-devel] [PULL 33/38] spapr: check for the activation of the KVM IRQ device, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 28/38] spapr/xive: introduce a VM state change handler, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 13/38] spapr/xive: EQ page should be naturally aligned, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 22/38] target/ppc: Use vector variable shifts for VSL, VSR, VSRA, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 18/38] target/ppc: Fix xvabs[sd]p, xvnabs[sd]p, xvneg[sd]p, xvcpsgn[sd]p, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 12/38] target/ppc: Fix xxspltib, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 20/38] target/ppc: Set PSSCR_EC on cpu halt to prevent spurious wakeup, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 19/38] spapr/xive: Sanity checks of OV5 during CAS, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 32/38] spapr: introduce routines to delete the KVM IRQ device, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 31/38] sysbus: add a sysbus_mmio_unmap() helper, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 23/38] spapr: Fix phb_placement backwards compatibility,
David Gibson <=
- [Qemu-devel] [PULL 30/38] spapr/xive: activate KVM support, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 26/38] spapr/xive: add hcall support when under KVM, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 25/38] spapr/xive: add KVM support, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 29/38] spapr/xive: add migration support for KVM, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 27/38] spapr/xive: add state synchronization with KVM, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 34/38] spapr/irq: introduce a spapr_irq_init_device() helper, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 37/38] spapr/irq: add KVM support to the 'dual' machine, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 35/38] spapr/irq: initialize the IRQ device only once, David Gibson, 2019/05/22
- [Qemu-devel] [PULL 36/38] ppc/xics: fix irq priority in ics_set_irq_type(), David Gibson, 2019/05/22
- [Qemu-devel] [PULL 38/38] docs: provide documentation on the POWER9 XIVE interrupt controller, David Gibson, 2019/05/22