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/linux | |
| 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/linux')
| -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 | ||
