i40e: add num_vectors checker in iwarp handler
commit 7015ca3df965378bcef072cca9cd63ed098665b5 upstream. Field num_vectors from struct virtchnl_iwarp_qvlist_info should not be larger than num_msix_vectors_vf in the hw struct. The iwarp uses the same set of vectors as the LAN VF driver. Signed-off-by: Sergey Nemov <sergey.nemov@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> [bwh: Backported to 4.9: adjust context] Signed-off-by: Ben Hutchings <ben.hutchings@codethink.co.uk> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
8f29881eb7
commit
f4a3ff4df4
@ -418,6 +418,16 @@ static int i40e_config_iwarp_qvlist(struct i40e_vf *vf,
|
||||
u32 next_q_idx, next_q_type;
|
||||
u32 msix_vf, size;
|
||||
|
||||
msix_vf = pf->hw.func_caps.num_msix_vectors_vf;
|
||||
|
||||
if (qvlist_info->num_vectors > msix_vf) {
|
||||
dev_warn(&pf->pdev->dev,
|
||||
"Incorrect number of iwarp vectors %u. Maximum %u allowed.\n",
|
||||
qvlist_info->num_vectors,
|
||||
msix_vf);
|
||||
goto err;
|
||||
}
|
||||
|
||||
size = sizeof(struct i40e_virtchnl_iwarp_qvlist_info) +
|
||||
(sizeof(struct i40e_virtchnl_iwarp_qv_info) *
|
||||
(qvlist_info->num_vectors - 1));
|
||||
|
Loading…
x
Reference in New Issue
Block a user