]>
Commit | Line | Data |
---|---|---|
df1b7722 GKH |
1 | From foo@baz Mon Apr 9 13:58:16 CEST 2018 |
2 | From: Jian Shen <shenjian15@huawei.com> | |
3 | Date: Fri, 5 Jan 2018 18:18:13 +0800 | |
4 | Subject: net: hns3: Fix a loop index error of tqp statistics query | |
5 | ||
6 | From: Jian Shen <shenjian15@huawei.com> | |
7 | ||
8 | ||
9 | [ Upstream commit 94bfaafac9d2a3c0bcca00d01e38f7597b741799 ] | |
10 | ||
11 | An error loop index was used while querying statistics data | |
12 | of tqps, which may cause call trace. | |
13 | ||
14 | Fixes: 496d03e960ae ("net: hns3: Add Ethtool support to HNS3 driver") | |
15 | Signed-off-by: Jian Shen <shenjian15@huawei.com> | |
16 | Signed-off-by: Peng Li <lipeng321@huawei.com> | |
17 | Signed-off-by: David S. Miller <davem@davemloft.net> | |
18 | Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> | |
19 | Signed-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 | } |