On Mon, 12 Dec 2011 20:25:34 +0200, "Michael S. Tsirkin" <mst@xxxxxxxxxx> wrote: > By the way, a generic question on virtio-pci: we now have: > > /* virtio config->get() implementation */ > static void vp_get(struct virtio_device *vdev, unsigned offset, > void *buf, unsigned len) > { > struct virtio_pci_device *vp_dev = to_vp_device(vdev); > void __iomem *ioaddr = vp_dev->ioaddr + > VIRTIO_PCI_CONFIG(vp_dev) + offset; > u8 *ptr = buf; > int i; > > for (i = 0; i < len; i++) > ptr[i] = ioread8(ioaddr + i); > } > > This means that if configuration is read while > it is changed, we might get an inconsistent state, > with parts of a 64 bit field coming from old > and parts from new value. > > Isn't this a problem? I don't think so; it's the caller's problem if they need to do locking. Is there a caller which needs this? Or am I missing something? Rusty. _______________________________________________ Virtualization mailing list Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/virtualization