diff options
author | Jian Shen <shenjian15@huawei.com> | 2019-07-29 05:53:22 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-07-29 18:23:40 +0300 |
commit | 44950d28cccf3049696e02d0adebb10e112cee24 (patch) | |
tree | b00400748939da1d3e048a42524094871dc29c60 | |
parent | dda91bd7abb09771e872b7b117f6f8af594bbb3f (diff) | |
download | linux-44950d28cccf3049696e02d0adebb10e112cee24.tar.xz |
net: hns3: add reset checking before set channels
hns3_set_channels() should check the resetting status firstly,
since the device will reinitialize when resetting. If the
reset has not completed, the hns3_set_channels() may access
invalid memory.
Signed-off-by: Jian Shen <shenjian15@huawei.com>
Signed-off-by: Huazhong Tan <tanhuazhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c index 69f7ef810654..08af782f70b5 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3_enet.c @@ -4378,6 +4378,9 @@ int hns3_set_channels(struct net_device *netdev, u16 org_tqp_num; int ret; + if (hns3_nic_resetting(netdev)) + return -EBUSY; + if (ch->rx_count || ch->tx_count) return -EINVAL; |