mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-02-05 06:35:17 +07:00
ice: Add input handlers for virtual channel handlers
Move the assignment to local variables after validation. Remove unnecessary checks in ice_vc_process_vf_msg() as the respective functions are now performing the checks. Signed-off-by: "Amruth G.P" <amruth.gouda.parameshwarappa@intel.com> Signed-off-by: Nitesh B Venkatesh <nitesh.b.venkatesh@intel.com> Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
3747f03115
commit
3f416961b0
@ -1734,12 +1734,6 @@ static int ice_vc_config_rss_key(struct ice_vf *vf, u8 *msg)
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!vsi) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
if (vrk->key_len != ICE_VSIQF_HKEY_ARRAY_SIZE) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
@ -1750,6 +1744,12 @@ static int ice_vc_config_rss_key(struct ice_vf *vf, u8 *msg)
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!vsi) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
if (ice_set_rss(vsi, vrk->key, NULL, 0))
|
||||
v_ret = VIRTCHNL_STATUS_ERR_ADMIN_QUEUE_ERROR;
|
||||
error_param:
|
||||
@ -1781,12 +1781,6 @@ static int ice_vc_config_rss_lut(struct ice_vf *vf, u8 *msg)
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!vsi) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
if (vrl->lut_entries != ICE_VSIQF_HLUT_ARRAY_SIZE) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
@ -1797,6 +1791,12 @@ static int ice_vc_config_rss_lut(struct ice_vf *vf, u8 *msg)
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!vsi) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
if (ice_set_rss(vsi, NULL, vrl->lut, ICE_VSIQF_HLUT_ARRAY_SIZE))
|
||||
v_ret = VIRTCHNL_STATUS_ERR_ADMIN_QUEUE_ERROR;
|
||||
error_param:
|
||||
@ -1877,6 +1877,12 @@ static int ice_vc_ena_qs_msg(struct ice_vf *vf, u8 *msg)
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
if (vqs->rx_queues > ICE_MAX_BASE_QS_PER_VF ||
|
||||
vqs->tx_queues > ICE_MAX_BASE_QS_PER_VF) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!vsi) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
@ -1932,6 +1938,12 @@ static int ice_vc_dis_qs_msg(struct ice_vf *vf, u8 *msg)
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
if (vqs->rx_queues > ICE_MAX_BASE_QS_PER_VF ||
|
||||
vqs->tx_queues > ICE_MAX_BASE_QS_PER_VF) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!vsi) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
@ -1984,12 +1996,6 @@ static int ice_vc_cfg_irq_map_msg(struct ice_vf *vf, u8 *msg)
|
||||
irqmap_info = (struct virtchnl_irq_map_info *)msg;
|
||||
num_q_vectors_mapped = irqmap_info->num_vectors;
|
||||
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!vsi) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
/* Check to make sure number of VF vectors mapped is not greater than
|
||||
* number of VF vectors originally allocated, and check that
|
||||
* there is actually at least a single VF queue vector mapped
|
||||
@ -2001,6 +2007,12 @@ static int ice_vc_cfg_irq_map_msg(struct ice_vf *vf, u8 *msg)
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!vsi) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
for (i = 0; i < num_q_vectors_mapped; i++) {
|
||||
struct ice_q_vector *q_vector;
|
||||
|
||||
@ -2092,10 +2104,6 @@ static int ice_vc_cfg_qs_msg(struct ice_vf *vf, u8 *msg)
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!vsi)
|
||||
goto error_param;
|
||||
|
||||
if (qci->num_queue_pairs > ICE_MAX_BASE_QS_PER_VF) {
|
||||
dev_err(&pf->pdev->dev,
|
||||
"VF-%d requesting more than supported number of queues: %d\n",
|
||||
@ -2104,6 +2112,12 @@ static int ice_vc_cfg_qs_msg(struct ice_vf *vf, u8 *msg)
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
vsi = pf->vsi[vf->lan_vsi_idx];
|
||||
if (!vsi) {
|
||||
v_ret = VIRTCHNL_STATUS_ERR_PARAM;
|
||||
goto error_param;
|
||||
}
|
||||
|
||||
for (i = 0; i < qci->num_queue_pairs; i++) {
|
||||
qpi = &qci->qpair[i];
|
||||
if (qpi->txq.vsi_id != qci->vsi_id ||
|
||||
@ -2755,20 +2769,6 @@ void ice_vc_process_vf_msg(struct ice_pf *pf, struct ice_rq_event_info *event)
|
||||
err = -EPERM;
|
||||
else
|
||||
err = -EINVAL;
|
||||
goto error_handler;
|
||||
}
|
||||
|
||||
/* Perform additional checks specific to RSS and Virtchnl */
|
||||
if (v_opcode == VIRTCHNL_OP_CONFIG_RSS_KEY) {
|
||||
struct virtchnl_rss_key *vrk = (struct virtchnl_rss_key *)msg;
|
||||
|
||||
if (vrk->key_len != ICE_VSIQF_HKEY_ARRAY_SIZE)
|
||||
err = -EINVAL;
|
||||
} else if (v_opcode == VIRTCHNL_OP_CONFIG_RSS_LUT) {
|
||||
struct virtchnl_rss_lut *vrl = (struct virtchnl_rss_lut *)msg;
|
||||
|
||||
if (vrl->lut_entries != ICE_VSIQF_HLUT_ARRAY_SIZE)
|
||||
err = -EINVAL;
|
||||
}
|
||||
|
||||
error_handler:
|
||||
|
Loading…
Reference in New Issue
Block a user