76daa3
From 405143faadc36ff92b11eaae1e1f36a16e4375c2 Mon Sep 17 00:00:00 2001
76daa3
From: David Gibson <dgibson@redhat.com>
76daa3
Date: Wed, 17 May 2017 02:23:22 +0200
76daa3
Subject: [PATCH 06/27] spapr: Don't accidentally advertise HTM support on
76daa3
 POWER9
76daa3
76daa3
RH-Author: David Gibson <dgibson@redhat.com>
76daa3
Message-id: <20170517022323.16930-2-dgibson@redhat.com>
76daa3
Patchwork-id: 75201
76daa3
O-Subject: [Pegas-1.0 qemu-kvm-rhev PATCH 1/2] spapr: Don't accidentally advertise HTM support on POWER9
76daa3
Bugzilla: 1449007
76daa3
RH-Acked-by: Thomas Huth <thuth@redhat.com>
76daa3
RH-Acked-by: Laurent Vivier <lvivier@redhat.com>
76daa3
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
76daa3
76daa3
From: David Gibson <david@gibson.dropbear.id.au>
76daa3
76daa3
Logic in spapr_populate_pa_features() enables the bit advertising
76daa3
Hardware Transactional Memory (HTM) in the guest's device tree only when
76daa3
KVM advertises its availability with the KVM_CAP_PPC_HTM feature.
76daa3
76daa3
However, this assumes that the HTM bit is off in the base template used for
76daa3
the device tree value.  That is true for POWER8, but not for POWER9.
76daa3
76daa3
It looks like that was accidentally changed in 9fb4541 "spapr: Enable ISA
76daa3
3.0 MMU mode selection via CAS".
76daa3
76daa3
Fixes: 9fb4541f5803f8d2ba116b12113386e26482ba30
76daa3
76daa3
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
76daa3
Reviewed-by: Thomas Huth <thuth@redhat.com>
76daa3
(cherry picked from commit 9bf502fe127f04e393cacae9f2666e0c98c6df4f)
76daa3
76daa3
Signed-off-by: David Gibson <dgibson@redhat.com>
76daa3
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
76daa3
---
76daa3
 hw/ppc/spapr.c | 2 +-
76daa3
 1 file changed, 1 insertion(+), 1 deletion(-)
76daa3
76daa3
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
76daa3
index cc3ccc1..62e2696 100644
76daa3
--- a/hw/ppc/spapr.c
76daa3
+++ b/hw/ppc/spapr.c
76daa3
@@ -247,7 +247,7 @@ static void spapr_populate_pa_features(CPUPPCState *env, void *fdt, int offset,
76daa3
         /* 16: Vector */
76daa3
         0x00, 0x00, 0x00, 0x00, 0x80, 0x00, /* 12 - 17 */
76daa3
         /* 18: Vec. Scalar, 20: Vec. XOR, 22: HTM */
76daa3
-        0x80, 0x00, 0x80, 0x00, 0x80, 0x00, /* 18 - 23 */
76daa3
+        0x80, 0x00, 0x80, 0x00, 0x00, 0x00, /* 18 - 23 */
76daa3
         /* 24: Ext. Dec, 26: 64 bit ftrs, 28: PM ftrs */
76daa3
         0x80, 0x00, 0x80, 0x00, 0x80, 0x00, /* 24 - 29 */
76daa3
         /* 30: MMR, 32: LE atomic, 34: EBB + ext EBB */
76daa3
-- 
76daa3
1.8.3.1
76daa3