Lines Matching refs:dev
19 static inline struct kvm_coalesced_mmio_dev *to_mmio(struct kvm_io_device *dev) in to_mmio() argument
21 return container_of(dev, struct kvm_coalesced_mmio_dev, dev); in to_mmio()
24 static int coalesced_mmio_in_range(struct kvm_coalesced_mmio_dev *dev, in coalesced_mmio_in_range() argument
35 if (addr < dev->zone.addr) in coalesced_mmio_in_range()
37 if (addr + len > dev->zone.addr + dev->zone.size) in coalesced_mmio_in_range()
42 static int coalesced_mmio_has_room(struct kvm_coalesced_mmio_dev *dev, u32 last) in coalesced_mmio_has_room() argument
53 ring = dev->kvm->coalesced_mmio_ring; in coalesced_mmio_has_room()
67 struct kvm_coalesced_mmio_dev *dev = to_mmio(this); in coalesced_mmio_write() local
68 struct kvm_coalesced_mmio_ring *ring = dev->kvm->coalesced_mmio_ring; in coalesced_mmio_write()
71 if (!coalesced_mmio_in_range(dev, addr, len)) in coalesced_mmio_write()
74 spin_lock(&dev->kvm->ring_lock); in coalesced_mmio_write()
77 if (!coalesced_mmio_has_room(dev, insert) || in coalesced_mmio_write()
79 spin_unlock(&dev->kvm->ring_lock); in coalesced_mmio_write()
90 spin_unlock(&dev->kvm->ring_lock); in coalesced_mmio_write()
96 struct kvm_coalesced_mmio_dev *dev = to_mmio(this); in coalesced_mmio_destructor() local
98 list_del(&dev->list); in coalesced_mmio_destructor()
100 kfree(dev); in coalesced_mmio_destructor()
143 struct kvm_coalesced_mmio_dev *dev; in kvm_vm_ioctl_register_coalesced_mmio() local
145 dev = kzalloc(sizeof(struct kvm_coalesced_mmio_dev), GFP_KERNEL); in kvm_vm_ioctl_register_coalesced_mmio()
146 if (!dev) in kvm_vm_ioctl_register_coalesced_mmio()
149 kvm_iodevice_init(&dev->dev, &coalesced_mmio_ops); in kvm_vm_ioctl_register_coalesced_mmio()
150 dev->kvm = kvm; in kvm_vm_ioctl_register_coalesced_mmio()
151 dev->zone = *zone; in kvm_vm_ioctl_register_coalesced_mmio()
155 zone->size, &dev->dev); in kvm_vm_ioctl_register_coalesced_mmio()
158 list_add_tail(&dev->list, &kvm->coalesced_zones); in kvm_vm_ioctl_register_coalesced_mmio()
165 kfree(dev); in kvm_vm_ioctl_register_coalesced_mmio()
173 struct kvm_coalesced_mmio_dev *dev, *tmp; in kvm_vm_ioctl_unregister_coalesced_mmio() local
177 list_for_each_entry_safe(dev, tmp, &kvm->coalesced_zones, list) in kvm_vm_ioctl_unregister_coalesced_mmio()
178 if (coalesced_mmio_in_range(dev, zone->addr, zone->size)) { in kvm_vm_ioctl_unregister_coalesced_mmio()
179 kvm_io_bus_unregister_dev(kvm, KVM_MMIO_BUS, &dev->dev); in kvm_vm_ioctl_unregister_coalesced_mmio()
180 kvm_iodevice_destructor(&dev->dev); in kvm_vm_ioctl_unregister_coalesced_mmio()