[dpdk-stable] patch 'net/i40e: fix exception with multi-driver' has been queued to LTS release 17.11.10

Zhang, AlvinX alvinx.zhang at intel.com
Fri Dec 20 02:45:27 CET 2019


Hi,

This patch does not need to be integrated into version 17.11,  it only valid for versions  18.02 and later.

BR,
Alvin

> -----Original Message-----
> From: luca.boccassi at gmail.com [mailto:luca.boccassi at gmail.com]
> Sent: Thursday, December 19, 2019 10:34 PM
> To: Zhang, AlvinX <alvinx.zhang at intel.com>
> Cc: Ye, Xiaolong <xiaolong.ye at intel.com>; dpdk stable <stable at dpdk.org>
> Subject: patch 'net/i40e: fix exception with multi-driver' has been queued to
> LTS release 17.11.10
> 
> Hi,
> 
> FYI, your patch has been queued to LTS release 17.11.10
> 
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 12/21/19. So please shout if
> anyone has objections.
> 
> Also note that after the patch there's a diff of the upstream commit vs the
> patch applied to the branch. This will indicate if there was any rebasing
> needed to apply to the stable branch. If there were code changes for
> rebasing
> (ie: not only metadata diffs), please double check that the rebase was
> correctly done.
> 
> Thanks.
> 
> Luca Boccassi
> 
> ---
> From 97d3af2037014e15165aaf5fafe5c24ab61d7805 Mon Sep 17 00:00:00 2001
> From: Alvin Zhang <alvinx.zhang at intel.com>
> Date: Tue, 8 Oct 2019 18:52:31 +0800
> Subject: [PATCH] net/i40e: fix exception with multi-driver
> 
> [ upstream commit 39de80b267e05d6f3322044e5851306acc84f892 ]
> 
> If support-multi-driver is enabled, the global registers should not be
> configured. But with the current code base, if creating a flow with rte_flow
> API, the global register GLQF_FD_MSK may be changed.
> 
> Fixes: cfdfca493cae ("net/i40e: fix multiple driver support")
> 
> Signed-off-by: Alvin Zhang <alvinx.zhang at intel.com>
> Reviewed-by: Xiaolong Ye <xiaolong.ye at intel.com>
> ---
>  drivers/net/i40e/i40e_flow.c | 38 +++++++++++++++++++++++++++++-----
> --
>  1 file changed, 31 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c
> index 4ebf925a68..4fa099481a 100644
> --- a/drivers/net/i40e/i40e_flow.c
> +++ b/drivers/net/i40e/i40e_flow.c
> @@ -2366,6 +2366,37 @@ i40e_flow_set_fdir_inset(struct i40e_pf *pf,
>  	if (num < 0)
>  		return -EINVAL;
> 
> +	if (pf->support_multi_driver) {
> +		for (i = 0; i < num; i++)
> +			if (i40e_read_rx_ctl(hw,
> +					I40E_GLQF_FD_MSK(i, pctype)) !=
> +					mask_reg[i]) {
> +				PMD_DRV_LOG(ERR, "Input set setting is
> not"
> +						" supported with"
> +						" `support-multi-driver`"
> +						" enabled!");
> +				return -EPERM;
> +			}
> +		for (i = num; i < I40E_INSET_MASK_NUM_REG; i++)
> +			if (i40e_read_rx_ctl(hw,
> +					I40E_GLQF_FD_MSK(i, pctype)) != 0)
> {
> +				PMD_DRV_LOG(ERR, "Input set setting is
> not"
> +						" supported with"
> +						" `support-multi-driver`"
> +						" enabled!");
> +				return -EPERM;
> +			}
> +
> +	} else {
> +		for (i = 0; i < num; i++)
> +			i40e_check_write_reg(hw, I40E_GLQF_FD_MSK(i,
> pctype),
> +				mask_reg[i]);
> +		/*clear unused mask registers of the pctype */
> +		for (i = num; i < I40E_INSET_MASK_NUM_REG; i++)
> +			i40e_check_write_reg(hw,
> +					I40E_GLQF_FD_MSK(i, pctype), 0);
> +	}
> +
>  	inset_reg |= i40e_translate_input_set_reg(hw->mac.type,
> input_set);
> 
>  	i40e_check_write_reg(hw, I40E_PRTQF_FD_INSET(pctype, 0), @@ -
> 2374,13 +2405,6 @@ i40e_flow_set_fdir_inset(struct i40e_pf *pf,
>  			     (uint32_t)((inset_reg >>
>  					 I40E_32_BIT_WIDTH) &
> UINT32_MAX));
> 
> -	for (i = 0; i < num; i++)
> -		i40e_check_write_reg(hw, I40E_GLQF_FD_MSK(i, pctype),
> -				     mask_reg[i]);
> -
> -	/*clear unused mask registers of the pctype */
> -	for (i = num; i < I40E_INSET_MASK_NUM_REG; i++)
> -		i40e_check_write_reg(hw, I40E_GLQF_FD_MSK(i, pctype), 0);
>  	I40E_WRITE_FLUSH(hw);
> 
>  	pf->fdir.input_set[pctype] = input_set;
> --
> 2.20.1
> 
> ---
>   Diff of the applied patch vs upstream commit (please double-check if non-
> empty:
> ---
> --- -	2019-12-19 14:32:29.667640280 +0000
> +++ 0083-net-i40e-fix-exception-with-multi-driver.patch	2019-12-19
> 14:32:26.201299729 +0000
> @@ -1,14 +1,15 @@
> -From 39de80b267e05d6f3322044e5851306acc84f892 Mon Sep 17 00:00:00
> 2001
> +From 97d3af2037014e15165aaf5fafe5c24ab61d7805 Mon Sep 17 00:00:00
> 2001
>  From: Alvin Zhang <alvinx.zhang at intel.com>
>  Date: Tue, 8 Oct 2019 18:52:31 +0800
>  Subject: [PATCH] net/i40e: fix exception with multi-driver
> 
> +[ upstream commit 39de80b267e05d6f3322044e5851306acc84f892 ]
> +
>  If support-multi-driver is enabled, the global registers should not  be
> configured. But with the current code base, if creating a flow  with rte_flow
> API, the global register GLQF_FD_MSK may be changed.
> 
>  Fixes: cfdfca493cae ("net/i40e: fix multiple driver support")
> -Cc: stable at dpdk.org
> 
>  Signed-off-by: Alvin Zhang <alvinx.zhang at intel.com>
>  Reviewed-by: Xiaolong Ye <xiaolong.ye at intel.com> @@ -17,10 +18,10 @@
>   1 file changed, 31 insertions(+), 7 deletions(-)
> 
>  diff --git a/drivers/net/i40e/i40e_flow.c b/drivers/net/i40e/i40e_flow.c -
> index 9e038fa48f..61021037c8 100644
> +index 4ebf925a68..4fa099481a 100644
>  --- a/drivers/net/i40e/i40e_flow.c
>  +++ b/drivers/net/i40e/i40e_flow.c
> -@@ -2349,6 +2349,37 @@ i40e_flow_set_fdir_inset(struct i40e_pf *pf,
> +@@ -2366,6 +2366,37 @@ i40e_flow_set_fdir_inset(struct i40e_pf *pf,
>   	if (num < 0)
>   		return -EINVAL;
> 
> @@ -58,7 +59,7 @@
>   	inset_reg |= i40e_translate_input_set_reg(hw->mac.type,
> input_set);
> 
>   	i40e_check_write_reg(hw, I40E_PRTQF_FD_INSET(pctype, 0), -@@ -
> 2357,13 +2388,6 @@ i40e_flow_set_fdir_inset(struct i40e_pf *pf,
> +@@ -2374,13 +2405,6 @@ i40e_flow_set_fdir_inset(struct i40e_pf *pf,
>   			     (uint32_t)((inset_reg >>
>   					 I40E_32_BIT_WIDTH) &
> UINT32_MAX));
> 


More information about the stable mailing list