Commit 38e62046 authored by Huazhong Tan's avatar Huazhong Tan Committed by David S. Miller

net: hns3: Fixes the out of bounds access in hclge_map_tqp

This patch fixes the handling of the check when number of vports
are detected to be more than available TPQs. Current handling causes
an out of bounds access in hclge_map_tqp().

Fixes: 7df7dad6 ("net: hns3: Refactor the mapping of tqp to vport")
Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
Signed-off-by: default avatarSalil Mehta <salil.mehta@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 35f58fd7
...@@ -1459,8 +1459,11 @@ static int hclge_alloc_vport(struct hclge_dev *hdev) ...@@ -1459,8 +1459,11 @@ static int hclge_alloc_vport(struct hclge_dev *hdev)
/* We need to alloc a vport for main NIC of PF */ /* We need to alloc a vport for main NIC of PF */
num_vport = hdev->num_vmdq_vport + hdev->num_req_vfs + 1; num_vport = hdev->num_vmdq_vport + hdev->num_req_vfs + 1;
if (hdev->num_tqps < num_vport) if (hdev->num_tqps < num_vport) {
num_vport = hdev->num_tqps; dev_err(&hdev->pdev->dev, "tqps(%d) is less than vports(%d)",
hdev->num_tqps, num_vport);
return -EINVAL;
}
/* Alloc the same number of TQPs for every vport */ /* Alloc the same number of TQPs for every vport */
tqp_per_vport = hdev->num_tqps / num_vport; tqp_per_vport = hdev->num_tqps / num_vport;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment