Skip to content

Commit

Permalink
net/bnxt: validate RSS hash key length
Browse files Browse the repository at this point in the history
In bnxt_rss_hash_update_op, driver is proceeding with
bnxt_hwrm_vnic_rss_cfg even though RSS hashkey length is invalid.

This patch fixes the problem by returning -EINVAL when RSS hashkey
length is invalid.

Signed-off-by: Venkat Duvvuru <venkatkumar.duvvuru@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Rahul Gupta <rahul.gupta@broadcom.com>
Reviewed-by: Santoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com>
Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
  • Loading branch information
Venkat Duvvuru authored and Ferruh Yigit committed Oct 8, 2019
1 parent 9be7bc2 commit 91aee97
Showing 1 changed file with 12 additions and 6 deletions.
18 changes: 12 additions & 6 deletions drivers/net/bnxt/bnxt_ethdev.c
Expand Up @@ -1373,14 +1373,20 @@ static int bnxt_rss_hash_update_op(struct rte_eth_dev *eth_dev,
vnic->hash_type = bnxt_rte_to_hwrm_hash_types(rss_conf->rss_hf);

/*
* Use the supplied key if the key length is
* acceptable and the rss_key is not NULL
* If hashkey is not specified, use the previously configured
* hashkey
*/
if (rss_conf->rss_key && rss_conf->rss_key_len <= HW_HASH_KEY_SIZE)
memcpy(vnic->rss_hash_key,
rss_conf->rss_key,
rss_conf->rss_key_len);
if (!rss_conf->rss_key)
goto rss_config;

if (rss_conf->rss_key_len != HW_HASH_KEY_SIZE) {
PMD_DRV_LOG(ERR,
"Invalid hashkey length, should be 16 bytes\n");
return -EINVAL;
}
memcpy(vnic->rss_hash_key, rss_conf->rss_key, rss_conf->rss_key_len);

rss_config:
bnxt_hwrm_vnic_rss_cfg(bp, vnic);
return 0;
}
Expand Down

0 comments on commit 91aee97

Please sign in to comment.