diff mbox series

[PULL,v2,34/61] virtio-net: Implement SR-IOV VF

Message ID c2d6db6a1f39780b24538440091893f9fbe060a7.1721731723.git.mst@redhat.com
State New
Headers show
Series [PULL,v2,01/61] hw/virtio/virtio-crypto: Fix op_code assignment in virtio_crypto_create_asym_session | expand

Commit Message

Michael S. Tsirkin July 23, 2024, 10:58 a.m. UTC
From: Akihiko Odaki <akihiko.odaki@daynix.com>

A virtio-net device can be added as a SR-IOV VF to another virtio-pci
device that will be the PF.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Message-Id: <20240715-sriov-v5-7-3f5539093ffc@daynix.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/virtio/virtio-net-pci.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Akihiko Odaki July 23, 2024, 11 a.m. UTC | #1
On 2024/07/23 19:58, Michael S. Tsirkin wrote:
> From: Akihiko Odaki <akihiko.odaki@daynix.com>
> 
> A virtio-net device can be added as a SR-IOV VF to another virtio-pci
> device that will be the PF.

This does not work without patch "hw/pci: Do not add ROM BAR for SR-IOV 
VF" because virtio-net-pci has a ROM file. Sorry, I should have noted that.

Regards,
Akihiko Odaki
Michael S. Tsirkin July 23, 2024, 11:02 a.m. UTC | #2
On Tue, Jul 23, 2024 at 08:00:57PM +0900, Akihiko Odaki wrote:
> On 2024/07/23 19:58, Michael S. Tsirkin wrote:
> > From: Akihiko Odaki <akihiko.odaki@daynix.com>
> > 
> > A virtio-net device can be added as a SR-IOV VF to another virtio-pci
> > device that will be the PF.
> 
> This does not work without patch "hw/pci: Do not add ROM BAR for SR-IOV VF"
> because virtio-net-pci has a ROM file. Sorry, I should have noted that.
> 
> Regards,
> Akihiko Odaki

right, but it's harmless since sriov is off by default -
so you can just send a patch on top.
diff mbox series

Patch

diff --git a/hw/virtio/virtio-net-pci.c b/hw/virtio/virtio-net-pci.c
index e03543a70a..dba4987d6e 100644
--- a/hw/virtio/virtio-net-pci.c
+++ b/hw/virtio/virtio-net-pci.c
@@ -75,6 +75,7 @@  static void virtio_net_pci_class_init(ObjectClass *klass, void *data)
     k->device_id = PCI_DEVICE_ID_VIRTIO_NET;
     k->revision = VIRTIO_PCI_ABI_VERSION;
     k->class_id = PCI_CLASS_NETWORK_ETHERNET;
+    k->sriov_vf_user_creatable = true;
     set_bit(DEVICE_CATEGORY_NETWORK, dc->categories);
     device_class_set_props(dc, virtio_net_properties);
     vpciklass->realize = virtio_net_pci_realize;