[dpdk-dev] net/fm10k: fix SGLORT of VF Tx queues

Message ID 1476840614-1478-1-git-send-email-xiao.w.wang@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Bruce Richardson
Headers

Commit Message

Xiao Wang Oct. 19, 2016, 1:30 a.m. UTC
  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@intel.com>
Reported-by: Sarathx Somasekharan <sarathx.somasekharan@intel.com>
---
 drivers/net/fm10k/fm10k_ethdev.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
  

Comments

Bruce Richardson Oct. 19, 2016, 10:10 a.m. UTC | #1
On Wed, Oct 19, 2016 at 09:30:14AM +0800, Xiao Wang wrote:
> 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@intel.com>
> Reported-by: Sarathx Somasekharan <sarathx.somasekharan@intel.com>

Applied to dpdk-next-net/rel_16_11

/Bruce
  

Patch

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 */