|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH 5/6] x86/cpuid: Handle the long vendor string in guest_cpuid()
Leaves 0x80000002 through 0x80000004 are plain ASCII text, and require no
specific recalculation.
Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
---
CC: Jan Beulich <JBeulich@xxxxxxxx>
---
xen/arch/x86/cpuid.c | 3 +++
xen/include/asm-x86/cpuid.h | 4 ++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/xen/arch/x86/cpuid.c b/xen/arch/x86/cpuid.c
index dc76cf4..7926d0b 100644
--- a/xen/arch/x86/cpuid.c
+++ b/xen/arch/x86/cpuid.c
@@ -706,6 +706,7 @@ static void pv_cpuid(uint32_t leaf, uint32_t subleaf,
struct cpuid_leaf *res)
case 0x7:
case XSTATE_CPUID:
case 0x80000000:
+ case 0x80000002 ... 0x80000004:
ASSERT_UNREACHABLE();
/* Now handled in guest_cpuid(). */
}
@@ -856,6 +857,7 @@ static void hvm_cpuid(uint32_t leaf, uint32_t subleaf,
struct cpuid_leaf *res)
case 0x7:
case XSTATE_CPUID:
case 0x80000000:
+ case 0x80000002 ... 0x80000004:
ASSERT_UNREACHABLE();
/* Now handled in guest_cpuid(). */
}
@@ -936,6 +938,7 @@ void guest_cpuid(const struct vcpu *v, uint32_t leaf,
goto legacy;
case 0x80000000:
+ case 0x80000002 ... 0x80000004:
*res = p->extd.raw[leaf & 0xffff];
break;
}
diff --git a/xen/include/asm-x86/cpuid.h b/xen/include/asm-x86/cpuid.h
index 4712b73..d181e9a 100644
--- a/xen/include/asm-x86/cpuid.h
+++ b/xen/include/asm-x86/cpuid.h
@@ -81,7 +81,7 @@ struct cpuid_policy
* - All of the feat and xstate unions
* - max_{,sub}leaf
* - All FEATURESET_* words
- * - Short vendor infomation
+ * - Short and long vendor infomation
*
* Per-domain objects:
*
@@ -89,7 +89,7 @@ struct cpuid_policy
* - All of the feat and xstate unions
* - max_{,sub}leaf
* - All FEATURESET_* words
- * - Short vendor infomation
+ * - Short and long vendor infomation
*
* Everything else should be considered inaccurate, and not necesserily 0.
*/
--
2.1.4
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |