Il 15/10/2013 17:40, Michael S. Tsirkin ha scritto: > On Tue, Oct 15, 2013 at 04:52:45PM +0200, Paolo Bonzini wrote: >> > @@ -257,7 +271,7 @@ static void virtio_pci_stop_ioeventfd(VirtIOPCIProxy >> > *proxy) >> > static void virtio_ioport_write(void *opaque, uint32_t addr, uint32_t val) >> > { >> > VirtIOPCIProxy *proxy = opaque; >> > - VirtIODevice *vdev = proxy->vdev; >> > + VirtIODevice *vdev = virtio_bus_get_device(&proxy->bus); >> > hwaddr pa; >> > >> > switch (addr) { > Hmm this is also datapath. > Can this use direct access too, like MSIX?
It's not datapath if you're using ioeventfd, is it? Anywya, what I did for MSIX is just noticing that a variable was only used in an "else" branch, and sinking the initialization there. You cannot do the same here. Paolo