diff for duplicates of <1572845537.13810.225.camel@harmonicinc.com> diff --git a/a/1.txt b/N1/1.txt index 4574f69..05db76c 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -4,96 +4,96 @@ From: Arkady Gilinsky <arkady.gilinsky@harmonicinc 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. -???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. + * 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. + 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 aec2423..43a9b1b 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,7 +1,10 @@ "From\0Arkady Gilinsky <arkady.gilinsky@harmonicinc.com>\0" - "Subject\0[Intel-wired-lan] [PATCH net] i40e/iavf: Fix msg interface between VF and PF\0" + "Subject\0[PATCH net] i40e/iavf: Fix msg interface between VF and PF\0" "Date\0Mon, 4 Nov 2019 05:32:25 +0000\0" - "To\0intel-wired-lan@osuosl.org\0" + "To\0intel-wired-lan@lists.osuosl.org <intel-wired-lan@lists.osuosl.org>" + netdev@vger.kernel.org <netdev@vger.kernel.org> + " jeffrey.t.kirsher@intel.com <jeffrey.t.kirsher@intel.com>\0" + "Cc\0Arkady Gilinsky <arcadyg@gmail.com>\0" "\00:1\0" "b\0" "From af5ab2aaa51882bb7111b026882fe217ed81c15b Mon Sep 17 00:00:00 2001\n" @@ -10,98 +13,98 @@ "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" - "???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* 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" + "\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" - "?\n" + "\302\240\t\tgoto error_param;\n" + "\302\240\t}\n" + "\302\240\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" - "?\n" + "\302\240\t\tgoto error_param;\n" + "\302\240\t}\n" + "\302\240\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" - "--?\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" + "--\302\240\n" 2.11.0 -f1b706bdb49195dc7a01dc306626c248405b5b0440b4bb762760d6d398163c9d +ffbc77006fa9e4bff2c370d008d642abdd9611875fb1488bc7a6b6720ae3fc5a
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.