diff options
author | Yonglong Liu <liuyonglong@huawei.com> | 2018-12-15 11:53:24 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-12-16 12:07:32 -0800 |
commit | 31f6b61d810654fb3ef43f4d8afda0f44b142fad (patch) | |
tree | 4f99af285fd4d6505b306db61f7f4f8bbd699905 | |
parent | 5778b13b64eca5549d242686f2f91a2c80c8fa40 (diff) | |
download | linux-31f6b61d810654fb3ef43f4d8afda0f44b142fad.tar.gz |
net: hns: Clean rx fbd when ae stopped.
If there are packets in hardware when changing the speed or duplex,
it may cause hardware hang up.
This patch adds the code to wait rx fbd clean up when ae stopped.
Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
Signed-off-by: Peng Li <lipeng321@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c index b52029e26d1532..ad1779fc410e64 100644 --- a/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c +++ b/drivers/net/ethernet/hisilicon/hns/hns_ae_adapt.c @@ -379,6 +379,9 @@ static void hns_ae_stop(struct hnae_handle *handle) hns_ae_ring_enable_all(handle, 0); + /* clean rx fbd. */ + hns_rcb_wait_fbd_clean(handle->qs, handle->q_num, RCB_INT_FLAG_RX); + (void)hns_mac_vm_config_bc_en(mac_cb, 0, false); } |