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

Luca Boccassi bluca at debian.org
Tue Dec 24 12:16:01 CET 2019


Hi,

Thanks for checking, removed.

On Fri, 2019-12-20 at 01:45 +0000, Zhang, AlvinX wrote:
> 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));
> > 
-- 
Kind regards,
Luca Boccassi


More information about the stable mailing list