[dpdk-stable] [DPDK 20.11] net/iavf: fix error handling for unsupported promisc config

Zhang, Qi Z qi.z.zhang at intel.com
Mon Jun 21 03:04:04 CEST 2021


Hi Xueming

> -----Original Message-----
> From: Xueming(Steven) Li <xuemingl at nvidia.com>
> Sent: Sunday, June 20, 2021 10:05 PM
> To: Zhang, Qi Z <qi.z.zhang at intel.com>; bluca at debian.org
> Cc: Zakharchenko, Vitaliy <vitaliy.zakharchenko at intel.com>; Anantharam,
> Arjun <arjun.anantharam at intel.com>; stable at dpdk.org; Kwan, Ngai-mint
> <ngai-mint.kwan at intel.com>
> Subject: RE: [dpdk-stable] [DPDK 20.11] net/iavf: fix error handling for
> unsupported promisc config
> 
> Hi Qi,
> 
> Two upstream tag in this commit message, the first one not found in upstream
> branch, could you please check?

Yes, the commit log is not correct, it should be 50937e495f5bcc5985365b3b93e34b6efffeca10, will fix in v2.

> BTW, the patch can't be applied to 20.11 work queue branch, could you please
> rebase on latest version?
> 	https://github.com/steevenlee/dpdk/commits/20.11

Actually I found the second patch (0c35eecf) is already in your working queue, and the other one (50937e495) is merged in DPDK main repo with Cc stable, I assume it will be captured as well.
So I think you can just ignore this patch now :) sorry for the noise.

Thanks
Qi

> 
> Best Regards,
> Xueming
> 
> > -----Original Message-----
> > From: stable <stable-bounces at dpdk.org> On Behalf Of Qi Zhang
> > Sent: Friday, June 11, 2021 9:44 AM
> > To: bluca at debian.org
> > Cc: vitaliy.zakharchenko at intel.com; arjun.anantharam at intel.com;
> > stable at dpdk.org; Qi Zhang <qi.z.zhang at intel.com>; Ngai-mint Kwan
> > <ngai-mint.kwan at intel.com>
> > Subject: [dpdk-stable] [DPDK 20.11] net/iavf: fix error handling for
> > unsupported promisc config
> >
> > [ upstream commit 308f75b5c9cc5ca3e972dbc84375bdee353c3156 ] [
> > upstream commit 0c35eecfe8b54bbdf59c30a803404acfdcc4f7eb ]
> >
> > 1. The VIRTCHNL_STATUS_ERR_NOT_SUPPORTED should be esculated to
> upper
> >    with -ENOTSUP in iavf_execute_vf_cmd.
> > 2. fix error code check in iavf_config_promisc 3. change vf->cmd_ret_val
> from unsigned to signed as it will compare with
> >    negtive value.
> >
> > Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
> > Signed-off-by: Ngai-mint Kwan <ngai-mint.kwan at intel.com>
> > ---
> >  drivers/net/iavf/iavf.h       |  2 +-
> >  drivers/net/iavf/iavf_vchnl.c | 16 +++++++++++-----
> >  2 files changed, 12 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/net/iavf/iavf.h b/drivers/net/iavf/iavf.h index
> > 0196f74721..4bcb407b20 100644
> > --- a/drivers/net/iavf/iavf.h
> > +++ b/drivers/net/iavf/iavf.h
> > @@ -136,7 +136,7 @@ struct iavf_info {
> >  	uint64_t supported_rxdid;
> >  	uint8_t *proto_xtr; /* proto xtr type for all queues */
> >  	volatile enum virtchnl_ops pend_cmd; /* pending command not finished
> */
> > -	uint32_t cmd_retval; /* return value of the cmd response from PF */
> > +	int cmd_retval; /* return value of the cmd response from PF */
> >  	uint8_t *aq_resp; /* buffer to store the adminq response from PF */
> >
> >  	/* Event from pf */
> > diff --git a/drivers/net/iavf/iavf_vchnl.c
> > b/drivers/net/iavf/iavf_vchnl.c index 3d52a8c402..219245d040 100644
> > --- a/drivers/net/iavf/iavf_vchnl.c
> > +++ b/drivers/net/iavf/iavf_vchnl.c
> > @@ -228,12 +228,18 @@ iavf_execute_vf_cmd(struct iavf_adapter
> *adapter, struct iavf_cmd_info *args)
> >  			/* If don't read msg or read sys event, continue */
> >  		} while (i++ < MAX_TRY_TIMES);
> >  		/* If there's no response is received, clear command */
> > -		if (i >= MAX_TRY_TIMES  ||
> > -		    vf->cmd_retval != VIRTCHNL_STATUS_SUCCESS) {
> > -			err = -1;
> > +		if (i >= MAX_TRY_TIMES) {
> >  			PMD_DRV_LOG(ERR, "No response or return failure (%d)"
> >  				    " for cmd %d", vf->cmd_retval, args->ops);
> >  			_clear_cmd(vf);
> > +			err = -EIO;
> > +		} else if (vf->cmd_retval ==
> VIRTCHNL_STATUS_ERR_NOT_SUPPORTED) {
> > +			PMD_DRV_LOG(ERR, "Cmd %d not supported", args->ops);
> > +			err = -ENOTSUP;
> > +		} else if (vf->cmd_retval != VIRTCHNL_STATUS_SUCCESS) {
> > +			PMD_DRV_LOG(ERR, "Return failure %d for cmd %d",
> > +				    vf->cmd_retval, args->ops);
> > +			err = -EINVAL;
> >  		}
> >  		break;
> >  	}
> > @@ -1099,8 +1105,8 @@ iavf_config_promisc(struct iavf_adapter *adapter,
> >  		PMD_DRV_LOG(ERR,
> >  			    "fail to execute command
> CONFIG_PROMISCUOUS_MODE");
> >
> > -		if (err == IAVF_NOT_SUPPORTED)
> > -			return -ENOTSUP;
> > +		if (err == -ENOTSUP)
> > +			return err;
> >
> >  		return -EAGAIN;
> >  	}
> > --
> > 2.26.2



More information about the stable mailing list