From f4fdaf009cc85e95a00aba47a6b5b9df920d51c4 Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Fri, 24 Mar 2023 18:54:32 +0900 Subject: igb: Fix DMA requester specification for Tx packet igb used to specify the PF as DMA requester when reading Tx packets. This made Tx requests from VFs to be performed on the address space of the PF, defeating the purpose of SR-IOV. Add some logic to change the requester depending on the queue, which can be assigned to a VF. Fixes: 3a977deebe ("Intrdocue igb device emulation") Signed-off-by: Akihiko Odaki Signed-off-by: Jason Wang --- hw/net/net_tx_pkt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'hw/net/net_tx_pkt.c') diff --git a/hw/net/net_tx_pkt.c b/hw/net/net_tx_pkt.c index 986a3ad..cb606cc 100644 --- a/hw/net/net_tx_pkt.c +++ b/hw/net/net_tx_pkt.c @@ -443,7 +443,7 @@ void net_tx_pkt_dump(struct NetTxPkt *pkt) #endif } -void net_tx_pkt_reset(struct NetTxPkt *pkt) +void net_tx_pkt_reset(struct NetTxPkt *pkt, PCIDevice *pci_dev) { int i; @@ -467,6 +467,7 @@ void net_tx_pkt_reset(struct NetTxPkt *pkt) pkt->raw[i].iov_len, DMA_DIRECTION_TO_DEVICE, 0); } } + pkt->pci_dev = pci_dev; pkt->raw_frags = 0; pkt->hdr_len = 0; -- cgit v1.1