i40e: fix RSS RETA query
authorHelin Zhang <helin.zhang@intel.com>
Wed, 10 Dec 2014 03:10:16 +0000 (11:10 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 11 Dec 2014 00:42:03 +0000 (01:42 +0100)
There is a bug in querying reta, of storing the data to the correct entry.

Signed-off-by: Helin Zhang <helin.zhang@intel.com>
lib/librte_pmd_i40e/i40e_ethdev.c
lib/librte_pmd_i40e/i40e_ethdev_vf.c

index 899cb42..008d62c 100644 (file)
@@ -1924,7 +1924,7 @@ i40e_dev_rss_reta_query(struct rte_eth_dev *dev,
                lut = I40E_READ_REG(hw, I40E_PFQF_HLUT(i >> 2));
                for (j = 0; j < I40E_4_BIT_WIDTH; j++) {
                        if (mask & (0x1 << j))
-                               reta_conf[idx].reta[shift] = ((lut >>
+                               reta_conf[idx].reta[shift + j] = ((lut >>
                                        (CHAR_BIT * j)) & I40E_8_BIT_MASK);
                }
        }
index 7ef7d58..fe46cf1 100644 (file)
@@ -1760,7 +1760,7 @@ i40evf_dev_rss_reta_query(struct rte_eth_dev *dev,
                lut = I40E_READ_REG(hw, I40E_VFQF_HLUT(i >> 2));
                for (j = 0; j < I40E_4_BIT_WIDTH; j++) {
                        if (mask & (0x1 << j))
-                               reta_conf[idx].reta[shift] =
+                               reta_conf[idx].reta[shift + j] =
                                        ((lut >> (CHAR_BIT * j)) &
                                                I40E_8_BIT_MASK);
                }