[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