Il 16/12/2012 22:15, Michael S. Tsirkin ha scritto: >> A PCI bus reset (or FLR) calls pci_device_reset which does this >> >> void pci_device_reset(PCIDevice *dev) >> { >> int r; >> >> qdev_reset_all(&dev->qdev); >> ... >> } >> >> This is exactly how a PCI bus reset clears pending MSIX vectors. >> >> Paolo > > Yes but I mean virtio-pci device is not a bus. > virtio could be a bus. > Our modeling seems incorrect and relying on it for correctness, > looks a bit wrong.
If virtio were a bus, everything would work just as well. The bus reset method would not be implemented and qdev_reset_all would proceed past the bus and reset the virtio device. So virtio_reset would not be needed either. Paolo