]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.14.34/net-hns3-fix-a-loop-index-error-of-tqp-statistics-query.patch
Linux 4.14.95
[thirdparty/kernel/stable-queue.git] / releases / 4.14.34 / net-hns3-fix-a-loop-index-error-of-tqp-statistics-query.patch
CommitLineData
df1b7722
GKH
1From foo@baz Mon Apr 9 13:58:16 CEST 2018
2From: Jian Shen <shenjian15@huawei.com>
3Date: Fri, 5 Jan 2018 18:18:13 +0800
4Subject: net: hns3: Fix a loop index error of tqp statistics query
5
6From: Jian Shen <shenjian15@huawei.com>
7
8
9[ Upstream commit 94bfaafac9d2a3c0bcca00d01e38f7597b741799 ]
10
11An error loop index was used while querying statistics data
12of tqps, which may cause call trace.
13
14Fixes: 496d03e960ae ("net: hns3: Add Ethtool support to HNS3 driver")
15Signed-off-by: Jian Shen <shenjian15@huawei.com>
16Signed-off-by: Peng Li <lipeng321@huawei.com>
17Signed-off-by: David S. Miller <davem@davemloft.net>
18Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
19Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
20---
21 drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c | 10 +++++-----
22 1 file changed, 5 insertions(+), 5 deletions(-)
23
24--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
25+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c
26@@ -189,13 +189,13 @@ static u64 *hns3_get_stats_tqps(struct h
27 struct hnae3_knic_private_info *kinfo = &handle->kinfo;
28 struct hns3_enet_ring *ring;
29 u8 *stat;
30- u32 i;
31+ int i, j;
32
33 /* get stats for Tx */
34 for (i = 0; i < kinfo->num_tqps; i++) {
35 ring = nic_priv->ring_data[i].ring;
36- for (i = 0; i < HNS3_TXQ_STATS_COUNT; i++) {
37- stat = (u8 *)ring + hns3_txq_stats[i].stats_offset;
38+ for (j = 0; j < HNS3_TXQ_STATS_COUNT; j++) {
39+ stat = (u8 *)ring + hns3_txq_stats[j].stats_offset;
40 *data++ = *(u64 *)stat;
41 }
42 }
43@@ -203,8 +203,8 @@ static u64 *hns3_get_stats_tqps(struct h
44 /* get stats for Rx */
45 for (i = 0; i < kinfo->num_tqps; i++) {
46 ring = nic_priv->ring_data[i + kinfo->num_tqps].ring;
47- for (i = 0; i < HNS3_RXQ_STATS_COUNT; i++) {
48- stat = (u8 *)ring + hns3_rxq_stats[i].stats_offset;
49+ for (j = 0; j < HNS3_RXQ_STATS_COUNT; j++) {
50+ stat = (u8 *)ring + hns3_rxq_stats[j].stats_offset;
51 *data++ = *(u64 *)stat;
52 }
53 }