Message ID | 20200925102251.7216-1-pankaj.gupta.linux@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | virtio-pmem-pci: force virtio version 1 | expand |
On Fri, 25 Sep 2020 12:22:51 +0200 Pankaj Gupta <pankaj.gupta.linux@gmail.com> wrote: > Qemu fails with below error when trying to run with virtio pmem: > > (qemu) qemu-system-x86_64: -device virtio-pmem-pci,memdev=mem1,id=nv1: > device is modern-only, use disable-legacy=on Oh, another one :( > > This patch fixes this by forcing virtio 1 with virtio-pmem. > > fixes: adf0748a49 ("virtio-pci: Proxy for virtio-pmem") > Signed-off-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com> > --- > hw/virtio/virtio-pmem-pci.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/hw/virtio/virtio-pmem-pci.c b/hw/virtio/virtio-pmem-pci.c > index 21a457d151..2b2a0b1eae 100644 > --- a/hw/virtio/virtio-pmem-pci.c > +++ b/hw/virtio/virtio-pmem-pci.c > @@ -22,6 +22,7 @@ static void virtio_pmem_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp) > VirtIOPMEMPCI *pmem_pci = VIRTIO_PMEM_PCI(vpci_dev); > DeviceState *vdev = DEVICE(&pmem_pci->vdev); > > + virtio_pci_force_virtio_1(vpci_dev); > qdev_realize(vdev, BUS(&vpci_dev->bus), errp); > } > The alternative would be to force virtio 1 only for 5.1 and later (see https://lore.kernel.org/qemu-devel/20200921122506.82515-1-sgarzare@redhat.com/).
> > > Qemu fails with below error when trying to run with virtio pmem: > > > > (qemu) qemu-system-x86_64: -device virtio-pmem-pci,memdev=mem1,id=nv1: > > device is modern-only, use disable-legacy=on > > Oh, another one :( :) > > > > > This patch fixes this by forcing virtio 1 with virtio-pmem. > > > > fixes: adf0748a49 ("virtio-pci: Proxy for virtio-pmem") > > Signed-off-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com> > > --- > > hw/virtio/virtio-pmem-pci.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/hw/virtio/virtio-pmem-pci.c b/hw/virtio/virtio-pmem-pci.c > > index 21a457d151..2b2a0b1eae 100644 > > --- a/hw/virtio/virtio-pmem-pci.c > > +++ b/hw/virtio/virtio-pmem-pci.c > > @@ -22,6 +22,7 @@ static void virtio_pmem_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp) > > VirtIOPMEMPCI *pmem_pci = VIRTIO_PMEM_PCI(vpci_dev); > > DeviceState *vdev = DEVICE(&pmem_pci->vdev); > > > > + virtio_pci_force_virtio_1(vpci_dev); > > qdev_realize(vdev, BUS(&vpci_dev->bus), errp); > > } > > > > The alternative would be to force virtio 1 only for 5.1 and later (see > https://lore.kernel.org/qemu-devel/20200921122506.82515-1-sgarzare@redhat.com/). Thanks for sharing this. It's still good to mark virtio pmem as a modern virtio device. Best regards, Pankaj >
On Fri, 25 Sep 2020 13:49:05 +0200 Pankaj Gupta <pankaj.gupta.linux@gmail.com> wrote: > > > > > Qemu fails with below error when trying to run with virtio pmem: > > > > > > (qemu) qemu-system-x86_64: -device virtio-pmem-pci,memdev=mem1,id=nv1: > > > device is modern-only, use disable-legacy=on > > > > Oh, another one :( > :) > > > > > > > > This patch fixes this by forcing virtio 1 with virtio-pmem. > > > > > > fixes: adf0748a49 ("virtio-pci: Proxy for virtio-pmem") > > > Signed-off-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com> > > > --- > > > hw/virtio/virtio-pmem-pci.c | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/hw/virtio/virtio-pmem-pci.c b/hw/virtio/virtio-pmem-pci.c > > > index 21a457d151..2b2a0b1eae 100644 > > > --- a/hw/virtio/virtio-pmem-pci.c > > > +++ b/hw/virtio/virtio-pmem-pci.c > > > @@ -22,6 +22,7 @@ static void virtio_pmem_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp) > > > VirtIOPMEMPCI *pmem_pci = VIRTIO_PMEM_PCI(vpci_dev); > > > DeviceState *vdev = DEVICE(&pmem_pci->vdev); > > > > > > + virtio_pci_force_virtio_1(vpci_dev); > > > qdev_realize(vdev, BUS(&vpci_dev->bus), errp); > > > } > > > > > > > The alternative would be to force virtio 1 only for 5.1 and later (see > > https://lore.kernel.org/qemu-devel/20200921122506.82515-1-sgarzare@redhat.com/). > > Thanks for sharing this. It's still good to mark virtio pmem as a > modern virtio device. If you don't really need to care about compat handling, forcing virtio 1 is fine. Acked-by: Cornelia Huck <cohuck@redhat.com>
diff --git a/hw/virtio/virtio-pmem-pci.c b/hw/virtio/virtio-pmem-pci.c index 21a457d151..2b2a0b1eae 100644 --- a/hw/virtio/virtio-pmem-pci.c +++ b/hw/virtio/virtio-pmem-pci.c @@ -22,6 +22,7 @@ static void virtio_pmem_pci_realize(VirtIOPCIProxy *vpci_dev, Error **errp) VirtIOPMEMPCI *pmem_pci = VIRTIO_PMEM_PCI(vpci_dev); DeviceState *vdev = DEVICE(&pmem_pci->vdev); + virtio_pci_force_virtio_1(vpci_dev); qdev_realize(vdev, BUS(&vpci_dev->bus), errp); }
Qemu fails with below error when trying to run with virtio pmem: (qemu) qemu-system-x86_64: -device virtio-pmem-pci,memdev=mem1,id=nv1: device is modern-only, use disable-legacy=on This patch fixes this by forcing virtio 1 with virtio-pmem. fixes: adf0748a49 ("virtio-pci: Proxy for virtio-pmem") Signed-off-by: Pankaj Gupta <pankaj.gupta.linux@gmail.com> --- hw/virtio/virtio-pmem-pci.c | 1 + 1 file changed, 1 insertion(+)