diff for duplicates of <1572931430.13810.227.camel@harmonicinc.com> diff --git a/a/1.txt b/N1/1.txt index e5a5738..8ea77e3 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,8 +1,8 @@ On Mon, 2019-11-04 at 23:43 +0000, Creeley, Brett wrote: > > -----Original Message----- -> > From: netdev-owner at vger.kernel.org <netdev-owner@vger.kernel.org> On Behalf Of Arkady Gilinsky +> > From: netdev-owner@vger.kernel.org <netdev-owner@vger.kernel.org> On Behalf Of Arkady Gilinsky > > Sent: Sunday, November 3, 2019 9:32 PM -> > To: intel-wired-lan at lists.osuosl.org; netdev at vger.kernel.org; Kirsher, Jeffrey T <jeffrey.t.kirsher@intel.com> +> > To: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org; Kirsher, Jeffrey T <jeffrey.t.kirsher@intel.com> > > Cc: Arkady Gilinsky <arcadyg@gmail.com> > > Subject: [PATCH net] i40e/iavf: Fix msg interface between VF and PF > > @@ -12,18 +12,18 @@ On Mon, 2019-11-04 at 23:43 +0000, Creeley, Brett wrote: > > Date: Sun, 3 Nov 2019 20:37:21 +0200 > > Subject: [PATCH net] i40e/iavf: Fix msg interface between VF and PF > > -> > ?* The original issue was that iavf driver passing TX/RX queues -> > ???as bitmap in iavf_disable_queues and the i40e driver -> > ???interprets this message as an absolute number in -> > ???i40e_vc_disable_queues_msg, so the validation in the -> > ???latter function always fail. +> > * The original issue was that iavf driver passing TX/RX queues +> > as bitmap in iavf_disable_queues and the i40e driver +> > interprets this message as an absolute number in +> > i40e_vc_disable_queues_msg, so the validation in the +> > latter function always fail. > > The VIRTCHNL interface expects the tx_queues and rx_queues to be sent as > a bitmap so this should/can not be changed. The fields [t|r]x_queues through whole driver code contains the number -and not bitmap (as far as I understand), so I thought that keeping? -this convention is more?important for better code readability, -saving in these fields something different is very confusing, IMHO,? +and not bitmap (as far as I understand), so I thought that keeping +this convention is more important for better code readability, +saving in these fields something different is very confusing, IMHO, and potentially leads to such issues that this commit is trying to solve. > > I think something like the following would be better becase the change is @@ -38,7 +38,7 @@ and potentially leads to such issues that this commit is trying to solve. > { > /* this will catch any changes made to the virtchnl_queue_select bitmap */ > if (sizeof(vqs->rx_queues) != sizeof(u32) || -> ?????sizeof(vqs->tx_queues) != sizeof(u32)) +> sizeof(vqs->tx_queues) != sizeof(u32)) > return false; If so, then is it better to check the type of the fields in compile-time rather than in runtime ? Something like this: @@ -47,110 +47,110 @@ BUILD_BUG_ON(sizeof(vqs->tx_queues) != sizeof(u32)); This is not required comparison each time when function is called and made code more optimized. > > if ((vqs->rx_queues == 0 && vqs->tx_queues == 0) || -> ??????hweight32(vqs->rx_queues) > I40E_MAX_VF_QUEUES || -> ??????hweight32(vqs->tx_queues) > I40E_MAX_VF_QUEUES) +> hweight32(vqs->rx_queues) > I40E_MAX_VF_QUEUES || +> hweight32(vqs->tx_queues) > I40E_MAX_VF_QUEUES) > return false; Again, from optimization POV it is better to have constant changed than variable, since it is compile time and not run time action: if ((vqs->rx_queues == 0 && vqs->tx_queues == 0) || - ??????vqs->rx_queues >= (BIT(I40E_MAX_VF_QUEUES)) || + vqs->rx_queues >= (BIT(I40E_MAX_VF_QUEUES)) || -??????vqs->tx_queues >= (BIT(I40E_MAX_VF_QUEUES))) + vqs->tx_queues >= (BIT(I40E_MAX_VF_QUEUES))) return false; > return true; > } > > if (i40e_vc_verify_vqs_bitmaps(vqs)) { -> aq_ret??= I40E_ERR_PARAM; +> aq_ret = I40E_ERR_PARAM; > goto error_param; > } > -> > ???This commit reorganize the msg interface between i40e and iavf -> > ???between the iavf_disable_queues and i40e_vc_disable_queues_msg -> > ???functions (also for iavf_enable_queues and i40e_vc_enable_queues_msg). -> > ???Now both drivers operate with number of queues instead of -> > ???bitmap. Also the commit introduces range check in -> > ???i40e_vc_enable_queues_msg function. +> > This commit reorganize the msg interface between i40e and iavf +> > between the iavf_disable_queues and i40e_vc_disable_queues_msg +> > functions (also for iavf_enable_queues and i40e_vc_enable_queues_msg). +> > Now both drivers operate with number of queues instead of +> > bitmap. Also the commit introduces range check in +> > i40e_vc_enable_queues_msg function. > > > > Signed-off-by: Arkady Gilinsky <arkady.gilinsky@harmonicinc.com> > > --- -> > ?drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 23 ++++++++++++++++------ -> > ?drivers/net/ethernet/intel/iavf/iavf_virtchnl.c????|??6 ++++-- -> > ?2 files changed, 21 insertions(+), 8 deletions(-) +> > drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 23 ++++++++++++++++------ +> > drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 6 ++++-- +> > 2 files changed, 21 insertions(+), 8 deletions(-) > > > > diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c > > index 3d2440838822..c650eb91982a 100644 > > --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c > > +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c > > @@ -2352,13 +2352,22 @@ static int i40e_vc_enable_queues_msg(struct i40e_vf *vf, u8 *msg) -> > ? goto error_param; -> > ? } +> > goto error_param; +> > } > > > > - /* Use the queue bit map sent by the VF */ > > - if (i40e_ctrl_vf_rx_rings(pf->vsi[vf->lan_vsi_idx], vqs->rx_queues, > > + if ((vqs->rx_queues == 0 && vqs->tx_queues == 0) || -> > + ????vqs->rx_queues > I40E_MAX_VF_QUEUES || -> > + ????vqs->tx_queues > I40E_MAX_VF_QUEUES) { +> > + vqs->rx_queues > I40E_MAX_VF_QUEUES || +> > + vqs->tx_queues > I40E_MAX_VF_QUEUES) { > > + aq_ret = I40E_ERR_PARAM; > > + goto error_param; > > + } > > + > > + /* Build the queue bit map from value sent by the VF */ > > + if (i40e_ctrl_vf_rx_rings(pf->vsi[vf->lan_vsi_idx], -> > + ??BIT(vqs->rx_queues) - 1, -> > ? ??true)) { -> > ? aq_ret = I40E_ERR_TIMEOUT; -> > ? goto error_param; -> > ? } +> > + BIT(vqs->rx_queues) - 1, +> > true)) { +> > aq_ret = I40E_ERR_TIMEOUT; +> > goto error_param; +> > } > > - if (i40e_ctrl_vf_tx_rings(pf->vsi[vf->lan_vsi_idx], vqs->tx_queues, > > + if (i40e_ctrl_vf_tx_rings(pf->vsi[vf->lan_vsi_idx], -> > + ??BIT(vqs->tx_queues) - 1, -> > ? ??true)) { -> > ? aq_ret = I40E_ERR_TIMEOUT; -> > ? goto error_param; +> > + BIT(vqs->tx_queues) - 1, +> > true)) { +> > aq_ret = I40E_ERR_TIMEOUT; +> > goto error_param; > > @@ -2416,13 +2425,15 @@ static int i40e_vc_disable_queues_msg(struct i40e_vf *vf, u8 *msg) -> > ? goto error_param; -> > ? } +> > goto error_param; +> > } > > > > - /* Use the queue bit map sent by the VF */ > > - if (i40e_ctrl_vf_tx_rings(pf->vsi[vf->lan_vsi_idx], vqs->tx_queues, > > + /* Build the queue bit map from value sent by the VF */ > > + if (i40e_ctrl_vf_tx_rings(pf->vsi[vf->lan_vsi_idx], -> > + ??BIT(vqs->tx_queues) - 1, -> > ? ??false)) { -> > ? aq_ret = I40E_ERR_TIMEOUT; -> > ? goto error_param; -> > ? } +> > + BIT(vqs->tx_queues) - 1, +> > false)) { +> > aq_ret = I40E_ERR_TIMEOUT; +> > goto error_param; +> > } > > - if (i40e_ctrl_vf_rx_rings(pf->vsi[vf->lan_vsi_idx], vqs->rx_queues, > > + if (i40e_ctrl_vf_rx_rings(pf->vsi[vf->lan_vsi_idx], -> > + ??BIT(vqs->rx_queues) - 1, -> > ? ??false)) { -> > ? aq_ret = I40E_ERR_TIMEOUT; -> > ? goto error_param; +> > + BIT(vqs->rx_queues) - 1, +> > false)) { +> > aq_ret = I40E_ERR_TIMEOUT; +> > goto error_param; > > diff --git a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c > > index c46770eba320..271f144bf05b 100644 > > --- a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c > > +++ b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c > > @@ -308,7 +308,8 @@ void iavf_enable_queues(struct iavf_adapter *adapter) -> > ? } -> > ? adapter->current_op = VIRTCHNL_OP_ENABLE_QUEUES; -> > ? vqs.vsi_id = adapter->vsi_res->vsi_id; +> > } +> > adapter->current_op = VIRTCHNL_OP_ENABLE_QUEUES; +> > vqs.vsi_id = adapter->vsi_res->vsi_id; > > - vqs.tx_queues = BIT(adapter->num_active_queues) - 1; > > + /* Send the queues number to PF */ > > + vqs.tx_queues = adapter->num_active_queues; -> > ? vqs.rx_queues = vqs.tx_queues; -> > ? adapter->aq_required &= ~IAVF_FLAG_AQ_ENABLE_QUEUES; -> > ? iavf_send_pf_msg(adapter, VIRTCHNL_OP_ENABLE_QUEUES, +> > vqs.rx_queues = vqs.tx_queues; +> > adapter->aq_required &= ~IAVF_FLAG_AQ_ENABLE_QUEUES; +> > iavf_send_pf_msg(adapter, VIRTCHNL_OP_ENABLE_QUEUES, > > @@ -333,7 +334,8 @@ void iavf_disable_queues(struct iavf_adapter *adapter) -> > ? } -> > ? adapter->current_op = VIRTCHNL_OP_DISABLE_QUEUES; -> > ? vqs.vsi_id = adapter->vsi_res->vsi_id; +> > } +> > adapter->current_op = VIRTCHNL_OP_DISABLE_QUEUES; +> > vqs.vsi_id = adapter->vsi_res->vsi_id; > > - vqs.tx_queues = BIT(adapter->num_active_queues) - 1; > > + /* Send the queues number to PF */ > > + vqs.tx_queues = adapter->num_active_queues; -> > ? vqs.rx_queues = vqs.tx_queues; -> > ? adapter->aq_required &= ~IAVF_FLAG_AQ_DISABLE_QUEUES; -> > ? iavf_send_pf_msg(adapter, VIRTCHNL_OP_DISABLE_QUEUES, +> > vqs.rx_queues = vqs.tx_queues; +> > adapter->aq_required &= ~IAVF_FLAG_AQ_DISABLE_QUEUES; +> > iavf_send_pf_msg(adapter, VIRTCHNL_OP_DISABLE_QUEUES, > > -- > > 2.11.0 > diff --git a/a/content_digest b/N1/content_digest index 9a4fa60..0159a9f 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,16 +1,22 @@ "ref\01572845537.13810.225.camel@harmonicinc.com\0" "ref\03508A0C5D531054DBDD98909F6FA64FA11B3936D@ORSMSX113.amr.corp.intel.com\0" "From\0Arkady Gilinsky <arkady.gilinsky@harmonicinc.com>\0" - "Subject\0[Intel-wired-lan] [EXTERNAL] RE: [PATCH net] i40e/iavf: Fix msg interface between VF and PF\0" + "Subject\0Re: [EXTERNAL] RE: [PATCH net] i40e/iavf: Fix msg interface between VF and PF\0" "Date\0Tue, 5 Nov 2019 05:23:59 +0000\0" - "To\0intel-wired-lan@osuosl.org\0" + "To\0Creeley" + Brett <brett.creeley@intel.com> + intel-wired-lan@lists.osuosl.org <intel-wired-lan@lists.osuosl.org> + netdev@vger.kernel.org <netdev@vger.kernel.org> + Kirsher + " Jeffrey T <jeffrey.t.kirsher@intel.com>\0" + "Cc\0Arkady Gilinsky <arcadyg@gmail.com>\0" "\00:1\0" "b\0" "On Mon, 2019-11-04 at 23:43 +0000, Creeley, Brett wrote:\n" "> > -----Original Message-----\n" - "> > From: netdev-owner at vger.kernel.org <netdev-owner@vger.kernel.org> On Behalf Of Arkady Gilinsky\n" + "> > From: netdev-owner@vger.kernel.org <netdev-owner@vger.kernel.org> On Behalf Of Arkady Gilinsky\n" "> > Sent: Sunday, November 3, 2019 9:32 PM\n" - "> > To: intel-wired-lan at lists.osuosl.org; netdev at vger.kernel.org; Kirsher, Jeffrey T <jeffrey.t.kirsher@intel.com>\n" + "> > To: intel-wired-lan@lists.osuosl.org; netdev@vger.kernel.org; Kirsher, Jeffrey T <jeffrey.t.kirsher@intel.com>\n" "> > Cc: Arkady Gilinsky <arcadyg@gmail.com>\n" "> > Subject: [PATCH net] i40e/iavf: Fix msg interface between VF and PF\n" "> > \n" @@ -20,18 +26,18 @@ "> > Date: Sun, 3 Nov 2019 20:37:21 +0200\n" "> > Subject: [PATCH net] i40e/iavf: Fix msg interface between VF and PF\n" "> > \n" - "> > ?* The original issue was that iavf driver passing TX/RX queues\n" - "> > ???as bitmap in iavf_disable_queues and the i40e driver\n" - "> > ???interprets this message as an absolute number in\n" - "> > ???i40e_vc_disable_queues_msg, so the validation in the\n" - "> > ???latter function always fail.\n" + "> > \302\240* The original issue was that iavf driver passing TX/RX queues\n" + "> > \302\240\302\240\302\240as bitmap in iavf_disable_queues and the i40e driver\n" + "> > \302\240\302\240\302\240interprets this message as an absolute number in\n" + "> > \302\240\302\240\302\240i40e_vc_disable_queues_msg, so the validation in the\n" + "> > \302\240\302\240\302\240latter function always fail.\n" "> \n" "> The VIRTCHNL interface expects the tx_queues and rx_queues to be sent as\n" "> a bitmap so this should/can not be changed.\n" "The fields [t|r]x_queues through whole driver code contains the number\n" - "and not bitmap (as far as I understand), so I thought that keeping?\n" - "this convention is more?important for better code readability,\n" - "saving in these fields something different is very confusing, IMHO,?\n" + "and not bitmap (as far as I understand), so I thought that keeping\302\240\n" + "this convention is more\302\240important for better code readability,\n" + "saving in these fields something different is very confusing, IMHO,\302\240\n" "and potentially leads to such issues that this commit is trying to solve.\n" "> \n" "> I think something like the following would be better becase the change is\n" @@ -46,7 +52,7 @@ "> {\n" "> \t/* this will catch any changes made to the virtchnl_queue_select bitmap */\n" "> \tif (sizeof(vqs->rx_queues) != sizeof(u32) ||\n" - "> \t?????sizeof(vqs->tx_queues) != sizeof(u32))\n" + "> \t\302\240\302\240\302\240\302\240\302\240sizeof(vqs->tx_queues) != sizeof(u32))\n" "> \t\treturn false;\n" "If so, then is it better to check the type of the fields in compile-time rather than in runtime ?\n" "Something like this:\n" @@ -55,110 +61,110 @@ "This is not required comparison each time when function is called and made code more optimized.\n" "> \n" "> \tif ((vqs->rx_queues == 0 && vqs->tx_queues == 0) ||\n" - "> \t??????hweight32(vqs->rx_queues) > I40E_MAX_VF_QUEUES ||\n" - "> \t??????hweight32(vqs->tx_queues) > I40E_MAX_VF_QUEUES)\n" + "> \t\302\240\302\240\302\240\302\240\302\240\302\240hweight32(vqs->rx_queues) > I40E_MAX_VF_QUEUES ||\n" + "> \t\302\240\302\240\302\240\302\240\302\240\302\240hweight32(vqs->tx_queues) > I40E_MAX_VF_QUEUES)\n" "> \t\treturn false;\n" "Again, from optimization POV it is better to have constant changed than variable,\n" "since it is compile time and not run time action:\n" "\tif ((vqs->rx_queues == 0 && vqs->tx_queues == 0) ||\n" - "\t??????vqs->rx_queues >= (BIT(I40E_MAX_VF_QUEUES)) ||\n" + "\t\302\240\302\240\302\240\302\240\302\240\302\240vqs->rx_queues >= (BIT(I40E_MAX_VF_QUEUES)) ||\n" "\t\n" - "??????vqs->tx_queues >= (BIT(I40E_MAX_VF_QUEUES)))\n" + "\302\240\302\240\302\240\302\240\302\240\302\240vqs->tx_queues >= (BIT(I40E_MAX_VF_QUEUES)))\n" "\t\treturn false;\n" "> \treturn true;\n" "> }\n" "> \n" "> if (i40e_vc_verify_vqs_bitmaps(vqs)) {\n" - "> \taq_ret??= I40E_ERR_PARAM;\n" + "> \taq_ret\302\240\302\240= I40E_ERR_PARAM;\n" "> \tgoto error_param;\n" "> }\n" "> \n" - "> > ???This commit reorganize the msg interface between i40e and iavf\n" - "> > ???between the iavf_disable_queues and i40e_vc_disable_queues_msg\n" - "> > ???functions (also for iavf_enable_queues and i40e_vc_enable_queues_msg).\n" - "> > ???Now both drivers operate with number of queues instead of\n" - "> > ???bitmap. Also the commit introduces range check in\n" - "> > ???i40e_vc_enable_queues_msg function.\n" + "> > \302\240\302\240\302\240This commit reorganize the msg interface between i40e and iavf\n" + "> > \302\240\302\240\302\240between the iavf_disable_queues and i40e_vc_disable_queues_msg\n" + "> > \302\240\302\240\302\240functions (also for iavf_enable_queues and i40e_vc_enable_queues_msg).\n" + "> > \302\240\302\240\302\240Now both drivers operate with number of queues instead of\n" + "> > \302\240\302\240\302\240bitmap. Also the commit introduces range check in\n" + "> > \302\240\302\240\302\240i40e_vc_enable_queues_msg function.\n" "> > \n" "> > Signed-off-by: Arkady Gilinsky <arkady.gilinsky@harmonicinc.com>\n" "> > ---\n" - "> > ?drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 23 ++++++++++++++++------\n" - "> > ?drivers/net/ethernet/intel/iavf/iavf_virtchnl.c????|??6 ++++--\n" - "> > ?2 files changed, 21 insertions(+), 8 deletions(-)\n" + "> > \302\240drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c | 23 ++++++++++++++++------\n" + "> > \302\240drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\302\240\302\240\302\240\302\240|\302\240\302\2406 ++++--\n" + "> > \302\2402 files changed, 21 insertions(+), 8 deletions(-)\n" "> > \n" "> > diff --git a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\n" "> > index 3d2440838822..c650eb91982a 100644\n" "> > --- a/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\n" "> > +++ b/drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.c\n" "> > @@ -2352,13 +2352,22 @@ static int i40e_vc_enable_queues_msg(struct i40e_vf *vf, u8 *msg)\n" - "> > ?\t\tgoto error_param;\n" - "> > ?\t}\n" + "> > \302\240\t\tgoto error_param;\n" + "> > \302\240\t}\n" "> > \n" "> > -\t/* Use the queue bit map sent by the VF */\n" "> > -\tif (i40e_ctrl_vf_rx_rings(pf->vsi[vf->lan_vsi_idx], vqs->rx_queues,\n" "> > +\tif ((vqs->rx_queues == 0 && vqs->tx_queues == 0) ||\n" - "> > +\t????vqs->rx_queues > I40E_MAX_VF_QUEUES ||\n" - "> > +\t????vqs->tx_queues > I40E_MAX_VF_QUEUES) {\n" + "> > +\t\302\240\302\240\302\240\302\240vqs->rx_queues > I40E_MAX_VF_QUEUES ||\n" + "> > +\t\302\240\302\240\302\240\302\240vqs->tx_queues > I40E_MAX_VF_QUEUES) {\n" "> > +\t\taq_ret = I40E_ERR_PARAM;\n" "> > +\t\tgoto error_param;\n" "> > +\t}\n" "> > +\n" "> > +\t/* Build the queue bit map from value sent by the VF */\n" "> > +\tif (i40e_ctrl_vf_rx_rings(pf->vsi[vf->lan_vsi_idx],\n" - "> > +\t\t\t\t??BIT(vqs->rx_queues) - 1,\n" - "> > ?\t\t\t\t??true)) {\n" - "> > ?\t\taq_ret = I40E_ERR_TIMEOUT;\n" - "> > ?\t\tgoto error_param;\n" - "> > ?\t}\n" + "> > +\t\t\t\t\302\240\302\240BIT(vqs->rx_queues) - 1,\n" + "> > \302\240\t\t\t\t\302\240\302\240true)) {\n" + "> > \302\240\t\taq_ret = I40E_ERR_TIMEOUT;\n" + "> > \302\240\t\tgoto error_param;\n" + "> > \302\240\t}\n" "> > -\tif (i40e_ctrl_vf_tx_rings(pf->vsi[vf->lan_vsi_idx], vqs->tx_queues,\n" "> > +\tif (i40e_ctrl_vf_tx_rings(pf->vsi[vf->lan_vsi_idx],\n" - "> > +\t\t\t\t??BIT(vqs->tx_queues) - 1,\n" - "> > ?\t\t\t\t??true)) {\n" - "> > ?\t\taq_ret = I40E_ERR_TIMEOUT;\n" - "> > ?\t\tgoto error_param;\n" + "> > +\t\t\t\t\302\240\302\240BIT(vqs->tx_queues) - 1,\n" + "> > \302\240\t\t\t\t\302\240\302\240true)) {\n" + "> > \302\240\t\taq_ret = I40E_ERR_TIMEOUT;\n" + "> > \302\240\t\tgoto error_param;\n" "> > @@ -2416,13 +2425,15 @@ static int i40e_vc_disable_queues_msg(struct i40e_vf *vf, u8 *msg)\n" - "> > ?\t\tgoto error_param;\n" - "> > ?\t}\n" + "> > \302\240\t\tgoto error_param;\n" + "> > \302\240\t}\n" "> > \n" "> > -\t/* Use the queue bit map sent by the VF */\n" "> > -\tif (i40e_ctrl_vf_tx_rings(pf->vsi[vf->lan_vsi_idx], vqs->tx_queues,\n" "> > +\t/* Build the queue bit map from value sent by the VF */\n" "> > +\tif (i40e_ctrl_vf_tx_rings(pf->vsi[vf->lan_vsi_idx],\n" - "> > +\t\t\t\t??BIT(vqs->tx_queues) - 1,\n" - "> > ?\t\t\t\t??false)) {\n" - "> > ?\t\taq_ret = I40E_ERR_TIMEOUT;\n" - "> > ?\t\tgoto error_param;\n" - "> > ?\t}\n" + "> > +\t\t\t\t\302\240\302\240BIT(vqs->tx_queues) - 1,\n" + "> > \302\240\t\t\t\t\302\240\302\240false)) {\n" + "> > \302\240\t\taq_ret = I40E_ERR_TIMEOUT;\n" + "> > \302\240\t\tgoto error_param;\n" + "> > \302\240\t}\n" "> > -\tif (i40e_ctrl_vf_rx_rings(pf->vsi[vf->lan_vsi_idx], vqs->rx_queues,\n" "> > +\tif (i40e_ctrl_vf_rx_rings(pf->vsi[vf->lan_vsi_idx],\n" - "> > +\t\t\t\t??BIT(vqs->rx_queues) - 1,\n" - "> > ?\t\t\t\t??false)) {\n" - "> > ?\t\taq_ret = I40E_ERR_TIMEOUT;\n" - "> > ?\t\tgoto error_param;\n" + "> > +\t\t\t\t\302\240\302\240BIT(vqs->rx_queues) - 1,\n" + "> > \302\240\t\t\t\t\302\240\302\240false)) {\n" + "> > \302\240\t\taq_ret = I40E_ERR_TIMEOUT;\n" + "> > \302\240\t\tgoto error_param;\n" "> > diff --git a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\n" "> > index c46770eba320..271f144bf05b 100644\n" "> > --- a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\n" "> > +++ b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c\n" "> > @@ -308,7 +308,8 @@ void iavf_enable_queues(struct iavf_adapter *adapter)\n" - "> > ?\t}\n" - "> > ?\tadapter->current_op = VIRTCHNL_OP_ENABLE_QUEUES;\n" - "> > ?\tvqs.vsi_id = adapter->vsi_res->vsi_id;\n" + "> > \302\240\t}\n" + "> > \302\240\tadapter->current_op = VIRTCHNL_OP_ENABLE_QUEUES;\n" + "> > \302\240\tvqs.vsi_id = adapter->vsi_res->vsi_id;\n" "> > -\tvqs.tx_queues = BIT(adapter->num_active_queues) - 1;\n" "> > +\t/* Send the queues number to PF */\n" "> > +\tvqs.tx_queues = adapter->num_active_queues;\n" - "> > ?\tvqs.rx_queues = vqs.tx_queues;\n" - "> > ?\tadapter->aq_required &= ~IAVF_FLAG_AQ_ENABLE_QUEUES;\n" - "> > ?\tiavf_send_pf_msg(adapter, VIRTCHNL_OP_ENABLE_QUEUES,\n" + "> > \302\240\tvqs.rx_queues = vqs.tx_queues;\n" + "> > \302\240\tadapter->aq_required &= ~IAVF_FLAG_AQ_ENABLE_QUEUES;\n" + "> > \302\240\tiavf_send_pf_msg(adapter, VIRTCHNL_OP_ENABLE_QUEUES,\n" "> > @@ -333,7 +334,8 @@ void iavf_disable_queues(struct iavf_adapter *adapter)\n" - "> > ?\t}\n" - "> > ?\tadapter->current_op = VIRTCHNL_OP_DISABLE_QUEUES;\n" - "> > ?\tvqs.vsi_id = adapter->vsi_res->vsi_id;\n" + "> > \302\240\t}\n" + "> > \302\240\tadapter->current_op = VIRTCHNL_OP_DISABLE_QUEUES;\n" + "> > \302\240\tvqs.vsi_id = adapter->vsi_res->vsi_id;\n" "> > -\tvqs.tx_queues = BIT(adapter->num_active_queues) - 1;\n" "> > +\t/* Send the queues number to PF */\n" "> > +\tvqs.tx_queues = adapter->num_active_queues;\n" - "> > ?\tvqs.rx_queues = vqs.tx_queues;\n" - "> > ?\tadapter->aq_required &= ~IAVF_FLAG_AQ_DISABLE_QUEUES;\n" - "> > ?\tiavf_send_pf_msg(adapter, VIRTCHNL_OP_DISABLE_QUEUES,\n" + "> > \302\240\tvqs.rx_queues = vqs.tx_queues;\n" + "> > \302\240\tadapter->aq_required &= ~IAVF_FLAG_AQ_DISABLE_QUEUES;\n" + "> > \302\240\tiavf_send_pf_msg(adapter, VIRTCHNL_OP_DISABLE_QUEUES,\n" "> > --\n" "> > 2.11.0\n" "> \n" @@ -168,4 +174,4 @@ "\n" ------------------------------------------ -326cc05bc8aef8e717de58ffbc8ae0e81e72985b6bc7a59178eb3bfddda18181 +8cc10c8d305ce3f47790c790d70c7cf65b2d9d4375864ba998528f6c645b380b
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.