Blame SOURCES/kvm-target-i386-Make-x86_ext_save_areas-visible-outside-.patch

e2f3ee
From ea372e888f6fec3a34fb23975538fbdc9f14e3c6 Mon Sep 17 00:00:00 2001
e2f3ee
From: David Edmondson <david.edmondson@oracle.com>
e2f3ee
Date: Mon, 5 Jul 2021 11:46:29 +0100
e2f3ee
Subject: [PATCH 5/7] target/i386: Make x86_ext_save_areas visible outside
e2f3ee
 cpu.c
e2f3ee
e2f3ee
RH-Author: Dr. David Alan Gilbert <dgilbert@redhat.com>
e2f3ee
RH-MergeRequest: 113: non-av 8.5z: Fix XSAVE on newer CPUs
e2f3ee
RH-Commit: [5/7] a643aa829daf4b985db081fc7cd9907331e4fb3f
e2f3ee
RH-Bugzilla: 2065239
e2f3ee
RH-Acked-by: Jon Maloy <jmaloy@redhat.com>
e2f3ee
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
e2f3ee
RH-Acked-by: Bandan Das <None>
e2f3ee
e2f3ee
Provide visibility of the x86_ext_save_areas array and associated type
e2f3ee
outside of cpu.c.
e2f3ee
e2f3ee
Signed-off-by: David Edmondson <david.edmondson@oracle.com>
e2f3ee
Message-Id: <20210705104632.2902400-6-david.edmondson@oracle.com>
e2f3ee
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
e2f3ee
(cherry picked from commit 5aa10ab1a08e4123dee214a2f854909efb07b45b)
e2f3ee
---
e2f3ee
 target/i386/cpu.c | 7 +------
e2f3ee
 target/i386/cpu.h | 9 +++++++++
e2f3ee
 2 files changed, 10 insertions(+), 6 deletions(-)
e2f3ee
e2f3ee
diff --git a/target/i386/cpu.c b/target/i386/cpu.c
e2f3ee
index d5b0d4b7f0..a030030299 100644
e2f3ee
--- a/target/i386/cpu.c
e2f3ee
+++ b/target/i386/cpu.c
e2f3ee
@@ -1504,12 +1504,7 @@ static const X86RegisterInfo32 x86_reg_info_32[CPU_NB_REGS32] = {
e2f3ee
 };
e2f3ee
 #undef REGISTER
e2f3ee
 
e2f3ee
-typedef struct ExtSaveArea {
e2f3ee
-    uint32_t feature, bits;
e2f3ee
-    uint32_t offset, size;
e2f3ee
-} ExtSaveArea;
e2f3ee
-
e2f3ee
-static const ExtSaveArea x86_ext_save_areas[] = {
e2f3ee
+const ExtSaveArea x86_ext_save_areas[XSAVE_STATE_AREA_COUNT] = {
e2f3ee
     [XSTATE_FP_BIT] = {
e2f3ee
         /* x87 FP state component is always enabled if XSAVE is supported */
e2f3ee
         .feature = FEAT_1_ECX, .bits = CPUID_EXT_XSAVE,
e2f3ee
diff --git a/target/i386/cpu.h b/target/i386/cpu.h
e2f3ee
index 8daa83a6a3..cff2914203 100644
e2f3ee
--- a/target/i386/cpu.h
e2f3ee
+++ b/target/i386/cpu.h
e2f3ee
@@ -1337,6 +1337,15 @@ QEMU_BUILD_BUG_ON(offsetof(X86XSaveArea, zmm_hi256_state) != XSAVE_ZMM_HI256_OFF
e2f3ee
 QEMU_BUILD_BUG_ON(offsetof(X86XSaveArea, hi16_zmm_state) != XSAVE_HI16_ZMM_OFFSET);
e2f3ee
 QEMU_BUILD_BUG_ON(offsetof(X86XSaveArea, pkru_state) != XSAVE_PKRU_OFFSET);
e2f3ee
 
e2f3ee
+typedef struct ExtSaveArea {
e2f3ee
+    uint32_t feature, bits;
e2f3ee
+    uint32_t offset, size;
e2f3ee
+} ExtSaveArea;
e2f3ee
+
e2f3ee
+#define XSAVE_STATE_AREA_COUNT (XSTATE_PKRU_BIT + 1)
e2f3ee
+
e2f3ee
+extern const ExtSaveArea x86_ext_save_areas[XSAVE_STATE_AREA_COUNT];
e2f3ee
+
e2f3ee
 typedef enum TPRAccess {
e2f3ee
     TPR_ACCESS_READ,
e2f3ee
     TPR_ACCESS_WRITE,
e2f3ee
-- 
e2f3ee
2.27.0
e2f3ee