[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