diff options
author | neel <neel@FreeBSD.org> | 2015-02-24 05:15:40 +0000 |
---|---|---|
committer | neel <neel@FreeBSD.org> | 2015-02-24 05:15:40 +0000 |
commit | 16ee311597eea5a4e6c57c4fcab81bbce813ce82 (patch) | |
tree | ff27049a4534d345302fee370a18de0c3e575584 /usr.sbin/bhyve/xmsr.c | |
parent | b341fa888c7a3b71ef8fb36ed40f08b7ceb8c486 (diff) | |
download | FreeBSD-src-16ee311597eea5a4e6c57c4fcab81bbce813ce82.zip FreeBSD-src-16ee311597eea5a4e6c57c4fcab81bbce813ce82.tar.gz |
Emulate MSR 0xC0011024 when running on AMD processors.
OpenBSD guests test bit 0 of this MSR to detect whether the workaround for
erratum 721 has been applied.
Reported by: Jason Tubnor (jason@tubnor.net)
MFC after: 1 week
Diffstat (limited to 'usr.sbin/bhyve/xmsr.c')
-rw-r--r-- | usr.sbin/bhyve/xmsr.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/usr.sbin/bhyve/xmsr.c b/usr.sbin/bhyve/xmsr.c index d50a939..5b7bfbb 100644 --- a/usr.sbin/bhyve/xmsr.c +++ b/usr.sbin/bhyve/xmsr.c @@ -185,6 +185,15 @@ emulate_rdmsr(struct vmctx *ctx, int vcpu, uint32_t num, uint64_t *val) *val = 0; break; + /* + * OpenBSD guests test bit 0 of this MSR to detect if the + * workaround for erratum 721 is already applied. + * http://support.amd.com/TechDocs/41322_10h_Rev_Gd.pdf + */ + case 0xC0011029: + *val = 1; + break; + default: error = -1; break; |