net/iavf: fix multi-queue Rx interrupt for VF

Message ID 20190905032240.23239-1-lunyuanx.cui@intel.com (mailing list archive)
State Superseded, archived
Delegated to: xiaolong ye
Headers
Series net/iavf: fix multi-queue Rx interrupt for VF |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/iol-dpdk_compile_ovs success Compile Testing PASS
ci/iol-dpdk_compile success Compile Testing PASS
ci/iol-dpdk_compile_spdk success Compile Testing PASS
ci/intel-Performance success Performance Testing PASS
ci/mellanox-Performance success Performance Testing PASS

Commit Message

Cui, LunyuanX Sept. 5, 2019, 3:22 a.m. UTC
  The original issue was that the last queue could not
be mapped to the interrupt vector, so the last queue
could not receive the package in the interrupt mode.
This patch fix the issue.

Fixes: d6bde6b5ea ("net/avf: enable Rx interrupt")
Cc: stable@dpdk.org

Signed-off-by: lunyuan.cui <lunyuanx.cui@intel.com>
---
 drivers/net/iavf/iavf_ethdev.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Xiaolong Ye Sept. 5, 2019, 12:16 p.m. UTC | #1
On 09/05, lunyuan.cui wrote:
>The original issue was that the last queue could not
>be mapped to the interrupt vector, so the last queue
>could not receive the package in the interrupt mode.
>This patch fix the issue.

s/fix/fixes

>
>Fixes: d6bde6b5ea ("net/avf: enable Rx interrupt")

The convention is to have the 12 characters of commit SHA in Fixes tag.

>Cc: stable@dpdk.org
>
>Signed-off-by: lunyuan.cui <lunyuanx.cui@intel.com>

Signature format should be 

Signed-off-by: Lunyuan Cui <lunyuanx.cui@intel.com>

Thanks,
Xiaolong

>---
> drivers/net/iavf/iavf_ethdev.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
>diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
>index 8f3907378..6559bfa1f 100644
>--- a/drivers/net/iavf/iavf_ethdev.c
>+++ b/drivers/net/iavf/iavf_ethdev.c
>@@ -360,7 +360,7 @@ static int iavf_config_rx_queues_irqs(struct rte_eth_dev *dev,
> 			for (i = 0; i < dev->data->nb_rx_queues; i++) {
> 				vf->rxq_map[vec] |= 1 << i;
> 				intr_handle->intr_vec[i] = vec++;
>-				if (vec >= vf->nb_msix)
>+				if (vec > vf->nb_msix)
> 					vec = IAVF_RX_VEC_START;
> 			}
> 			PMD_DRV_LOG(DEBUG,
>-- 
>2.17.1
>
  

Patch

diff --git a/drivers/net/iavf/iavf_ethdev.c b/drivers/net/iavf/iavf_ethdev.c
index 8f3907378..6559bfa1f 100644
--- a/drivers/net/iavf/iavf_ethdev.c
+++ b/drivers/net/iavf/iavf_ethdev.c
@@ -360,7 +360,7 @@  static int iavf_config_rx_queues_irqs(struct rte_eth_dev *dev,
 			for (i = 0; i < dev->data->nb_rx_queues; i++) {
 				vf->rxq_map[vec] |= 1 << i;
 				intr_handle->intr_vec[i] = vec++;
-				if (vec >= vf->nb_msix)
+				if (vec > vf->nb_msix)
 					vec = IAVF_RX_VEC_START;
 			}
 			PMD_DRV_LOG(DEBUG,