summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--usr/src/uts/i86pc/io/vmm/x86.c18
-rw-r--r--usr/src/uts/i86pc/io/vmm/x86.h2
2 files changed, 20 insertions, 0 deletions
diff --git a/usr/src/uts/i86pc/io/vmm/x86.c b/usr/src/uts/i86pc/io/vmm/x86.c
index 7b155af3c3..8a52e1898e 100644
--- a/usr/src/uts/i86pc/io/vmm/x86.c
+++ b/usr/src/uts/i86pc/io/vmm/x86.c
@@ -585,6 +585,24 @@ x86_emulate_cpuid(struct vm *vm, int vcpu_id, uint64_t *rax, uint64_t *rbx,
}
break;
+ case CPUID_0000_000F:
+ case CPUID_0000_0010:
+ /*
+ * Do not report any Resource Director Technology
+ * capabilities. Exposing control of cache or memory
+ * controller resource partitioning to the guest is not
+ * at all sensible.
+ *
+ * This is already hidden at a high level by masking of
+ * leaf 0x7. Even still, a guest may look here for
+ * detailed capability information.
+ */
+ regs[0] = 0;
+ regs[1] = 0;
+ regs[2] = 0;
+ regs[3] = 0;
+ break;
+
case CPUID_0000_0015:
/*
* Don't report CPU TSC/Crystal ratio and clock
diff --git a/usr/src/uts/i86pc/io/vmm/x86.h b/usr/src/uts/i86pc/io/vmm/x86.h
index 29d51cfe02..f3459e4f8a 100644
--- a/usr/src/uts/i86pc/io/vmm/x86.h
+++ b/usr/src/uts/i86pc/io/vmm/x86.h
@@ -41,6 +41,8 @@
#define CPUID_0000_000A (0xA)
#define CPUID_0000_000B (0xB)
#define CPUID_0000_000D (0xD)
+#define CPUID_0000_000F (0xF)
+#define CPUID_0000_0010 (0x10)
#define CPUID_0000_0015 (0x15)
#define CPUID_8000_0000 (0x80000000)
#define CPUID_8000_0001 (0x80000001)