The SGLORT (Source Global Resource Tag) of the VF queues should be
assigned by PF driver, VF driver should not set these registers.

Fixes: 3b845bf6bcd9 ("fm10k: fix switch manager high CPU usage")

Signed-off-by: Xiao Wang <xiao.w.wang at intel.com>
Reported-by: Sarathx Somasekharan <sarathx.somasekharan at intel.com>
---
 drivers/net/fm10k/fm10k_ethdev.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index c804436..923690c 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -695,8 +695,9 @@ fm10k_dev_tx_init(struct rte_eth_dev *dev)
                                base_addr >> (CHAR_BIT * sizeof(uint32_t)));
                FM10K_WRITE_REG(hw, FM10K_TDLEN(i), size);

-               /* assign default SGLORT for each TX queue */
-               FM10K_WRITE_REG(hw, FM10K_TX_SGLORT(i), hw->mac.dglort_map);
+               /* assign default SGLORT for each TX queue by PF */
+               if (hw->mac.type == fm10k_mac_pf)
+                       FM10K_WRITE_REG(hw, FM10K_TX_SGLORT(i), 
hw->mac.dglort_map);
        }

        /* set up vector or scalar TX function as appropriate */
-- 
1.9.3

Reply via email to