| From b977223d864d7917f5ad5b968efe80e64d5481db Mon Sep 17 00:00:00 2001 |
| From: Sudarsana Reddy Kalluru <skalluru@marvell.com> |
| Date: Wed, 6 Feb 2019 14:43:44 -0800 |
| Subject: qed: Consider TX tcs while deriving the max num_queues for PF. |
| |
| [ Upstream commit fb1faab74ddef9ec2d841d54e5d0912a097b3abe ] |
| |
| Max supported queues is derived incorrectly in the case of multi-CoS. |
| Need to consider TCs while calculating num_queues for PF. |
| |
| Signed-off-by: Sudarsana Reddy Kalluru <skalluru@marvell.com> |
| Signed-off-by: Ariel Elior <aelior@marvell.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/qlogic/qed/qed_l2.c | 5 +++-- |
| 1 file changed, 3 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/net/ethernet/qlogic/qed/qed_l2.c b/drivers/net/ethernet/qlogic/qed/qed_l2.c |
| index e68ca83ae915..64ac95ca4df2 100644 |
| --- a/drivers/net/ethernet/qlogic/qed/qed_l2.c |
| +++ b/drivers/net/ethernet/qlogic/qed/qed_l2.c |
| @@ -2216,7 +2216,7 @@ static int qed_fill_eth_dev_info(struct qed_dev *cdev, |
| u16 num_queues = 0; |
| |
| /* Since the feature controls only queue-zones, |
| - * make sure we have the contexts [rx, tx, xdp] to |
| + * make sure we have the contexts [rx, xdp, tcs] to |
| * match. |
| */ |
| for_each_hwfn(cdev, i) { |
| @@ -2226,7 +2226,8 @@ static int qed_fill_eth_dev_info(struct qed_dev *cdev, |
| u16 cids; |
| |
| cids = hwfn->pf_params.eth_pf_params.num_cons; |
| - num_queues += min_t(u16, l2_queues, cids / 3); |
| + cids /= (2 + info->num_tc); |
| + num_queues += min_t(u16, l2_queues, cids); |
| } |
| |
| /* queues might theoretically be >256, but interrupts' |
| -- |
| 2.19.1 |
| |