[dpdk-dev] net/i40e: fix VF cannot forward packets issue

Message ID 1510209014-184925-1-git-send-email-xiaoyun.li@intel.com
State Accepted, archived
Delegated to: Ferruh Yigit
Headers show

Checks

Context Check Description
ci/Intel-compilation success Compilation OK
ci/checkpatch success coding style OK

Commit Message

Xiaoyun Li Nov. 9, 2017, 6:30 a.m.
When Rx interrupt is not enabled, there is no need to check if interrupt
allow others. It will cause VF cannot forwarding packets issue. This patch
fixes this issue.

Fixes: 96a9fd03c25f ("net/i40e: fix Rx queue interrupt mapping in VF")
Cc: stable@dpdk.org

Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
---
 drivers/net/i40e/i40e_ethdev_vf.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

Comments

Beilei Xing Nov. 9, 2017, 8:33 a.m. | #1
> -----Original Message-----
> From: Li, Xiaoyun
> Sent: Thursday, November 9, 2017 2:30 PM
> To: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
> Cc: dev@dpdk.org; Li, Xiaoyun <xiaoyun.li@intel.com>; stable@dpdk.org
> Subject: [PATCH] net/i40e: fix VF cannot forward packets issue
> 
> When Rx interrupt is not enabled, there is no need to check if interrupt allow
> others. It will cause VF cannot forwarding packets issue. This patch fixes this
> issue.
> 
> Fixes: 96a9fd03c25f ("net/i40e: fix Rx queue interrupt mapping in VF")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>
> ---
>  drivers/net/i40e/i40e_ethdev_vf.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/net/i40e/i40e_ethdev_vf.c
> b/drivers/net/i40e/i40e_ethdev_vf.c
> index 02d9e57..91b5bb0 100644
> --- a/drivers/net/i40e/i40e_ethdev_vf.c
> +++ b/drivers/net/i40e/i40e_ethdev_vf.c
> @@ -650,7 +650,8 @@ i40evf_config_irq_map(struct rte_eth_dev *dev)
>  	uint32_t vector_id;
>  	int i, err;
> 
> -	if (rte_intr_allow_others(intr_handle))
> +	if (dev->data->dev_conf.intr_conf.rxq != 0 &&
> +	    rte_intr_allow_others(intr_handle))
>  		vector_id = I40E_RX_VEC_START;
>  	else
>  		vector_id = I40E_MISC_VEC_ID;
> --
> 2.7.4

Acked-by: Beilei Xing <beilei.xing@intel.com>
Ferruh Yigit Nov. 10, 2017, 2:15 a.m. | #2
On 11/9/2017 12:33 AM, Xing, Beilei wrote:
>> -----Original Message-----
>> From: Li, Xiaoyun
>> Sent: Thursday, November 9, 2017 2:30 PM
>> To: Wu, Jingjing <jingjing.wu@intel.com>; Xing, Beilei <beilei.xing@intel.com>
>> Cc: dev@dpdk.org; Li, Xiaoyun <xiaoyun.li@intel.com>; stable@dpdk.org
>> Subject: [PATCH] net/i40e: fix VF cannot forward packets issue
>>
>> When Rx interrupt is not enabled, there is no need to check if interrupt allow
>> others. It will cause VF cannot forwarding packets issue. This patch fixes this
>> issue.
>>
>> Fixes: 96a9fd03c25f ("net/i40e: fix Rx queue interrupt mapping in VF")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Xiaoyun Li <xiaoyun.li@intel.com>

> Acked-by: Beilei Xing <beilei.xing@intel.com>

Applied to dpdk-next-net/master, thanks.

Patch

diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index 02d9e57..91b5bb0 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -650,7 +650,8 @@  i40evf_config_irq_map(struct rte_eth_dev *dev)
 	uint32_t vector_id;
 	int i, err;
 
-	if (rte_intr_allow_others(intr_handle))
+	if (dev->data->dev_conf.intr_conf.rxq != 0 &&
+	    rte_intr_allow_others(intr_handle))
 		vector_id = I40E_RX_VEC_START;
 	else
 		vector_id = I40E_MISC_VEC_ID;