As all virtio devices perform DMA, we must enable bus mastering for them to be spec compliant. Signed-off-by: Michael S. Tsirkin <mst at redhat.com> --- drivers/virtio/virtio_pci.c | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c index 28d9cf7..717bae1 100644 --- a/drivers/virtio/virtio_pci.c +++ b/drivers/virtio/virtio_pci.c @@ -648,6 +648,7 @@ static int __devinit virtio_pci_probe(struct pci_dev *pci_dev, goto out_req_regions; pci_set_drvdata(pci_dev, vp_dev); + pci_set_master(pci_dev); /* we use the subsystem vendor/device id as the virtio vendor/device * id. this allows us to use the same PCI vendor/device id for all -- 1.6.5.2.143.g8cc62
On Mon, 30 Nov 2009 02:22:01 am Michael S. Tsirkin wrote:> As all virtio devices perform DMA, we > must enable bus mastering for them to be > spec compliant. > > Signed-off-by: Michael S. Tsirkin <mst at redhat.com> > --- > drivers/virtio/virtio_pci.c | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/drivers/virtio/virtio_pci.c b/drivers/virtio/virtio_pci.c > index 28d9cf7..717bae1 100644 > --- a/drivers/virtio/virtio_pci.c > +++ b/drivers/virtio/virtio_pci.c > @@ -648,6 +648,7 @@ static int __devinit virtio_pci_probe(struct pci_dev *pci_dev, > goto out_req_regions; > > pci_set_drvdata(pci_dev, vp_dev); > + pci_set_master(pci_dev);I can believe this, but I have no idea if it's right. I've applied it, and hope Jesse will comment if there's something wrong with it. Thanks, Rusty.
Apparently Analagous Threads
- [PATCH] virtio: set pci bus master enable bit
- [PATCH] virtio: pci: remove unnecessary pci_set_drvdata()
- [PATCH] virtio: pci: remove unnecessary pci_set_drvdata()
- [PATCH 0/9] virtio_pci: split out legacy device support
- [PATCH 0/9] virtio_pci: split out legacy device support