diff options
author | Laurent Vivier <Laurent.Vivier@bull.net> | 2008-05-30 10:05:53 -0400 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-07-20 05:42:30 -0400 |
commit | 92760499d01ef91518119908eb9b8798b6c9bd3f (patch) | |
tree | a6bd80fbad82589eb5aa98f81edda4537bc1f625 /arch/ia64 | |
parent | 131d82791b628d4aeafd94ddc74a9b68f3d15a83 (diff) |
KVM: kvm_io_device: extend in_range() to manage len and write attribute
Modify member in_range() of structure kvm_io_device to pass length and the type
of the I/O (write or read).
This modification allows to use kvm_io_device with coalesced MMIO.
Signed-off-by: Laurent Vivier <Laurent.Vivier@bull.net>
Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch/ia64')
-rw-r--r-- | arch/ia64/kvm/kvm-ia64.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c index 7c504be57972..bb58df7cc418 100644 --- a/arch/ia64/kvm/kvm-ia64.c +++ b/arch/ia64/kvm/kvm-ia64.c | |||
@@ -195,11 +195,11 @@ int kvm_dev_ioctl_check_extension(long ext) | |||
195 | } | 195 | } |
196 | 196 | ||
197 | static struct kvm_io_device *vcpu_find_mmio_dev(struct kvm_vcpu *vcpu, | 197 | static struct kvm_io_device *vcpu_find_mmio_dev(struct kvm_vcpu *vcpu, |
198 | gpa_t addr) | 198 | gpa_t addr, int len, int is_write) |
199 | { | 199 | { |
200 | struct kvm_io_device *dev; | 200 | struct kvm_io_device *dev; |
201 | 201 | ||
202 | dev = kvm_io_bus_find_dev(&vcpu->kvm->mmio_bus, addr); | 202 | dev = kvm_io_bus_find_dev(&vcpu->kvm->mmio_bus, addr, len, is_write); |
203 | 203 | ||
204 | return dev; | 204 | return dev; |
205 | } | 205 | } |
@@ -231,7 +231,7 @@ static int handle_mmio(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run) | |||
231 | kvm_run->exit_reason = KVM_EXIT_MMIO; | 231 | kvm_run->exit_reason = KVM_EXIT_MMIO; |
232 | return 0; | 232 | return 0; |
233 | mmio: | 233 | mmio: |
234 | mmio_dev = vcpu_find_mmio_dev(vcpu, p->addr); | 234 | mmio_dev = vcpu_find_mmio_dev(vcpu, p->addr, p->size, !p->dir); |
235 | if (mmio_dev) { | 235 | if (mmio_dev) { |
236 | if (!p->dir) | 236 | if (!p->dir) |
237 | kvm_iodevice_write(mmio_dev, p->addr, p->size, | 237 | kvm_iodevice_write(mmio_dev, p->addr, p->size, |