net: hns3: Fix for reset_level default assignment probelm
handle->reset_level is assigned to HNAE3_NONE_RESET when client is initialized, if a tx timeout happens right after initialization, then handle->reset_level is not resetted to HNAE3_FUNC_RESET in hclge_reset_event, which will cause reset event not properly handled problem. This patch fixes it by setting handle->reset_level properly when client is initialized. Fixes: 6d4c3981a8d8 ("net: hns3: Changes to make enet watchdog timeout func common for PF/VF") Signed-off-by: Yunsheng Lin <linyunsheng@huawei.com> Signed-off-by: Peng Li <lipeng321@huawei.com> Signed-off-by: Salil Mehta <salil.mehta@huawei.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d62eccaed4
commit
82b5321460
@ -3085,7 +3085,6 @@ static int hns3_client_init(struct hnae3_handle *handle)
|
||||
priv->dev = &pdev->dev;
|
||||
priv->netdev = netdev;
|
||||
priv->ae_handle = handle;
|
||||
priv->ae_handle->reset_level = HNAE3_NONE_RESET;
|
||||
priv->ae_handle->last_reset_time = jiffies;
|
||||
priv->tx_timeout_count = 0;
|
||||
|
||||
@ -3106,6 +3105,11 @@ static int hns3_client_init(struct hnae3_handle *handle)
|
||||
/* Carrier off reporting is important to ethtool even BEFORE open */
|
||||
netif_carrier_off(netdev);
|
||||
|
||||
if (handle->flags & HNAE3_SUPPORT_VF)
|
||||
handle->reset_level = HNAE3_VF_RESET;
|
||||
else
|
||||
handle->reset_level = HNAE3_FUNC_RESET;
|
||||
|
||||
ret = hns3_get_ring_config(priv);
|
||||
if (ret) {
|
||||
ret = -ENOMEM;
|
||||
|
Loading…
x
Reference in New Issue
Block a user