Commit 82229c4d authored by Jie Wang's avatar Jie Wang Committed by Jakub Kicinski

net: hns3: fix incorrect components info of ethtool --reset command

Currently, HNS3 driver doesn't clear the reset flags of components after
successfully executing reset, it causes userspace info of
"Components reset" and "Components not reset" is incorrect.

So fix this problem by clear corresponding reset flag after reset process.

Fixes: ddccc5e3 ("net: hns3: add support for triggering reset by ethtool")
Signed-off-by: default avatarJie Wang <wangjie125@huawei.com>
Signed-off-by: default avatarGuangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
parent 9c147917
...@@ -987,6 +987,7 @@ static int hns3_set_reset(struct net_device *netdev, u32 *flags) ...@@ -987,6 +987,7 @@ static int hns3_set_reset(struct net_device *netdev, u32 *flags)
struct hnae3_ae_dev *ae_dev = pci_get_drvdata(h->pdev); struct hnae3_ae_dev *ae_dev = pci_get_drvdata(h->pdev);
const struct hnae3_ae_ops *ops = h->ae_algo->ops; const struct hnae3_ae_ops *ops = h->ae_algo->ops;
const struct hns3_reset_type_map *rst_type_map; const struct hns3_reset_type_map *rst_type_map;
enum ethtool_reset_flags rst_flags;
u32 i, size; u32 i, size;
if (ops->ae_dev_resetting && ops->ae_dev_resetting(h)) if (ops->ae_dev_resetting && ops->ae_dev_resetting(h))
...@@ -1006,6 +1007,7 @@ static int hns3_set_reset(struct net_device *netdev, u32 *flags) ...@@ -1006,6 +1007,7 @@ static int hns3_set_reset(struct net_device *netdev, u32 *flags)
for (i = 0; i < size; i++) { for (i = 0; i < size; i++) {
if (rst_type_map[i].rst_flags == *flags) { if (rst_type_map[i].rst_flags == *flags) {
rst_type = rst_type_map[i].rst_type; rst_type = rst_type_map[i].rst_type;
rst_flags = rst_type_map[i].rst_flags;
break; break;
} }
} }
...@@ -1021,6 +1023,8 @@ static int hns3_set_reset(struct net_device *netdev, u32 *flags) ...@@ -1021,6 +1023,8 @@ static int hns3_set_reset(struct net_device *netdev, u32 *flags)
ops->reset_event(h->pdev, h); ops->reset_event(h->pdev, h);
*flags &= ~rst_flags;
return 0; return 0;
} }
......
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