Thread (21 messages) 21 messages, 5 authors, 2017-11-11

Re: [PATCH] net/virtio: fix use_msix get the wrong value

From: Yuanhan Liu <hidden>
Date: 2017-11-01 15:40:21

On Tue, Oct 31, 2017 at 05:44:56PM +0800, Zhiyong Yang wrote:
When running l3fwd-power to test virtio rxq interrupt using vfio
pci noiommu mode, startup fails.
What errors have you met?
In the function virtio_read_caps,
the code if (flags & PCI_MSIX_ENABLE) intends to double check
if vfio msix is enabled or not. However, it is indeed not valid.
Come back to l3fwd-power, use_msix is not assigned to the right
value "1". The patch fixes the issue.
Jianfeng, could you review it? You are the last author changed the code.
Will it break your case?

	--yliu
quoted hunk ↗ jump to hunk
Fixes: cb482cb3a305 ("net/virtio: fix MAC address read")
Signed-off-by: Zhiyong Yang <redacted>
---
 drivers/net/virtio/virtio_pci.c | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)
diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
index 55b717c03..be5b07a58 100644
--- a/drivers/net/virtio/virtio_pci.c
+++ b/drivers/net/virtio/virtio_pci.c
@@ -580,8 +580,6 @@ get_cfg_addr(struct rte_pci_device *dev, struct virtio_pci_cap *cap)
 	return base + offset;
 }
 
-#define PCI_MSIX_ENABLE 0x8000
-
 static int
 virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
 {
@@ -609,14 +607,7 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
 		}
 
 		if (cap.cap_vndr == PCI_CAP_ID_MSIX) {
-			/* Transitional devices would also have this capability,
-			 * that's why we also check if msix is enabled.
-			 * 1st byte is cap ID; 2nd byte is the position of next
-			 * cap; next two bytes are the flags.
-			 */
-			uint16_t flags = ((uint16_t *)&cap)[1];
-
-			if (flags & PCI_MSIX_ENABLE)
+			if (dev->intr_handle.type == RTE_INTR_HANDLE_VFIO_MSIX)
 				hw->use_msix = 1;
 		}
 
-- 
2.13.3
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help