Commit 9cc0b2b5 authored by Huazhong Tan's avatar Huazhong Tan Committed by Greg Kroah-Hartman

net: hns3: check resetting status in hns3_get_stats()

[ Upstream commit c4e401e5 ]

hns3_get_stats() should check the resetting status firstly,
since the device will be reinitialized when resetting. If the
reset has not completed, the hns3_get_stats() may access
invalid memory.
Signed-off-by: default avatarHuazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: default avatarPeng Li <lipeng321@huawei.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 8f52f331
...@@ -483,6 +483,11 @@ static void hns3_get_stats(struct net_device *netdev, ...@@ -483,6 +483,11 @@ static void hns3_get_stats(struct net_device *netdev,
struct hnae3_handle *h = hns3_get_handle(netdev); struct hnae3_handle *h = hns3_get_handle(netdev);
u64 *p = data; u64 *p = data;
if (hns3_nic_resetting(netdev)) {
netdev_err(netdev, "dev resetting, could not get stats\n");
return;
}
if (!h->ae_algo->ops->get_stats || !h->ae_algo->ops->update_stats) { if (!h->ae_algo->ops->get_stats || !h->ae_algo->ops->update_stats) {
netdev_err(netdev, "could not get any statistics\n"); netdev_err(netdev, "could not get any statistics\n");
return; return;
......
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