aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2010-01-20 05:01:20 -0500
committerAvi Kivity <avi@redhat.com>2011-05-11 07:56:58 -0400
commitcef4dea07f6720b36cc93e18a2e68be4bdb71a92 (patch)
treef6c67df1a54a2770d23086446807ca62f964c2e1 /include
parent5287f194bf0d7062d6d99b725366202556f03e28 (diff)
KVM: 16-byte mmio support
Since sse instructions can issue 16-byte mmios, we need to support them. We can't increase the kvm_run mmio buffer size to 16 bytes without breaking compatibility, so instead we break the large mmios into two smaller 8-byte ones. Since the bus is 64-bit we aren't breaking any atomicity guarantees. Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/kvm_host.h7
1 files changed, 6 insertions, 1 deletions
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 7ca831e55186..d1f507567068 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -27,6 +27,10 @@
27 27
28#include <asm/kvm_host.h> 28#include <asm/kvm_host.h>
29 29
30#ifndef KVM_MMIO_SIZE
31#define KVM_MMIO_SIZE 8
32#endif
33
30/* 34/*
31 * vcpu->requests bit members 35 * vcpu->requests bit members
32 */ 36 */
@@ -132,7 +136,8 @@ struct kvm_vcpu {
132 int mmio_read_completed; 136 int mmio_read_completed;
133 int mmio_is_write; 137 int mmio_is_write;
134 int mmio_size; 138 int mmio_size;
135 unsigned char mmio_data[8]; 139 int mmio_index;
140 unsigned char mmio_data[KVM_MMIO_SIZE];
136 gpa_t mmio_phys_addr; 141 gpa_t mmio_phys_addr;
137#endif 142#endif
138 143