diff options
author | Avi Kivity <avi@redhat.com> | 2010-01-20 05:01:20 -0500 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-05-11 07:56:58 -0400 |
commit | cef4dea07f6720b36cc93e18a2e68be4bdb71a92 (patch) | |
tree | f6c67df1a54a2770d23086446807ca62f964c2e1 /include | |
parent | 5287f194bf0d7062d6d99b725366202556f03e28 (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.h | 7 |
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 | ||