aboutsummaryrefslogtreecommitdiffstats
path: root/arch/ia64/kvm
diff options
context:
space:
mode:
authorLaurent Vivier <Laurent.Vivier@bull.net>2008-05-30 10:05:53 -0400
committerAvi Kivity <avi@qumranet.com>2008-07-20 05:42:30 -0400
commit92760499d01ef91518119908eb9b8798b6c9bd3f (patch)
treea6bd80fbad82589eb5aa98f81edda4537bc1f625 /arch/ia64/kvm
parent131d82791b628d4aeafd94ddc74a9b68f3d15a83 (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/kvm')
-rw-r--r--arch/ia64/kvm/kvm-ia64.c6
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
197static struct kvm_io_device *vcpu_find_mmio_dev(struct kvm_vcpu *vcpu, 197static 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;
233mmio: 233mmio:
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,