[dpdk-dev] [PATCH v5 8/9] virtio: add 1.0 support

Thomas Monjalon thomas.monjalon at 6wind.com
Wed Jan 27 09:11:07 CET 2016


2016-01-27 11:46, Yuanhan Liu:
> On Thu, Jan 21, 2016 at 12:49:10PM +0100, Thomas Monjalon wrote:
> > 2016-01-19 16:12, Yuanhan Liu:
> > >  int
> > >  vtpci_init(struct rte_pci_device *dev, struct virtio_hw *hw)
> > >  {
> > > -       hw->vtpci_ops = &legacy_ops;
> > > +       hw->dev = dev;
> > > +
> > > +       /*
> > > +        * Try if we can succeed reading virtio pci caps, which exists
> > > +        * only on modern pci device. If failed, we fallback to legacy
> > > +        * virtio handling.
> > > +        */
> > > +       if (virtio_read_caps(dev, hw) == 0) {
> > > +               PMD_INIT_LOG(INFO, "modern virtio pci detected.");
> > > +               hw->vtpci_ops = &modern_ops;
> > > +               hw->modern    = 1;
> > > +               dev->driver->drv_flags |= RTE_PCI_DRV_INTR_LSC;
> > > +               return 0;
> > > +       }
> > 
> > RTE_PCI_DRV_INTR_LSC is already set by virtio_resource_init_by_uio().
> 
> We don't go that far here. Here we just detect if it's a modern virtio
> device. And if yes, we do some modern initiations, and return.
> 
> virtio_resource_init_by_uio() is invoked when virtio_read_caps() fails.
> 
> > Do you mean interrupt was not supported with legacy virtio?
> 
> Nope. this patch set changes nothing on legacy virtio support.

Oh yes. I guess I had not seen the return.


More information about the dev mailing list