From: Huazhong Tan <hidden> Date: 2021-04-30 09:06:21
From: Peng Li <redacted>
Currently, netif_tx_stop_all_queues() is used to ensure that
the xmit is not running, but for the concurrent case it will
not take effect, since netif_tx_stop_all_queues() just sets
a flag without locking to indicate that the xmit queue(s)
should not be run.
So use netif_tx_disable() to replace netif_tx_stop_all_queues(),
it takes the xmit queue lock while marking the queue stopped.
Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
Signed-off-by: Peng Li <redacted>
Signed-off-by: Huazhong Tan <redacted>
---
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
From: Huazhong Tan <hidden> Date: 2021-04-30 09:06:23
From: Hao Chen <redacted>
When skb->ip_summed is CHECKSUM_PARTIAL, for non-tunnel udp packet,
which has a dest port as the IANA assigned, the hardware is expected
to do the checksum offload, but the hardware whose version is below
V3 will not do the checksum offload when udp dest port is 4790.
So fixes it by doing the checksum in software for this case.
Fixes: 76ad4f0ee747 ("net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC")
Signed-off-by: Hao Chen <redacted>
Signed-off-by: Huazhong Tan <redacted>
---
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
From: Huazhong Tan <hidden> Date: 2021-04-30 09:06:24
From: Yufeng Mo <redacted>
HW error and global reset are reported through MSIX interrupts.
The same error may be reported to different functions at the
same time. When global reset begins, the pending reset request
set by this error is unnecessary. So clear the pending reset
request after the reset is complete to avoid the repeated reset.
Fixes: f6162d44126c ("net: hns3: add handling of hw errors reported through MSIX")
Signed-off-by: Yufeng Mo <redacted>
Signed-off-by: Huazhong Tan <redacted>
---
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 6 ++++++
1 file changed, 6 insertions(+)
@@ -3978,6 +3978,12 @@ static void hclge_update_reset_level(struct hclge_dev *hdev)structhnae3_ae_dev*ae_dev=pci_get_drvdata(hdev->pdev);enumhnae3_reset_typereset_level;+/* reset request will not be set during reset, so clear+*pendingresetrequesttoavoidunnecessaryreset+*causedbythesamereason.+*/+hclge_get_reset_level(ae_dev,&hdev->reset_request);+/* if default_reset_request has a higher level reset request,*itshouldbehandledassoonaspossible.sincesomeerrors*needthiskindofresettofix.
From: Huazhong Tan <hidden> Date: 2021-04-30 09:06:25
From: Yufeng Mo <redacted>
If selftest and reset are performed at the same time, the phy
loopback setting may be still in enable state after the reset,
and device cannot link up. So fix this issue by disabling phy
loopback before phy_start().
Fixes: 256727da7395 ("net: hns3: Add MDIO support to HNS3 Ethernet driver for hip08 SoC")
Signed-off-by: Yufeng Mo <redacted>
Signed-off-by: Huazhong Tan <redacted>
---
drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c | 2 ++
1 file changed, 2 insertions(+)
From: Andrew Lunn <andrew@lunn.ch> Date: 2021-04-30 12:52:17
On Fri, Apr 30, 2021 at 05:06:22PM +0800, Huazhong Tan wrote:
From: Yufeng Mo <redacted>
If selftest and reset are performed at the same time, the phy
loopback setting may be still in enable state after the reset,
and device cannot link up. So fix this issue by disabling phy
loopback before phy_start().
This sounds like a generic problem, not specific to your
driver. Please look at solving this within phy_start().
Andrew
Hello:
This series was applied to netdev/net.git (refs/heads/master):
On Fri, 30 Apr 2021 17:06:18 +0800 you wrote:
This series adds some bugfixes for the HNS3 ethernet driver.
Hao Chen (1):
net: hns3: fix for vxlan gpe tx checksum bug
Peng Li (1):
net: hns3: use netif_tx_disable to stop the transmit queue
[...]
From: Huazhong Tan <hidden> Date: 2021-05-04 07:38:46
On 2021/4/30 20:52, Andrew Lunn wrote:
On Fri, Apr 30, 2021 at 05:06:22PM +0800, Huazhong Tan wrote:
quoted
From: Yufeng Mo <redacted>
If selftest and reset are performed at the same time, the phy
loopback setting may be still in enable state after the reset,
and device cannot link up. So fix this issue by disabling phy
loopback before phy_start().
This sounds like a generic problem, not specific to your
driver. Please look at solving this within phy_start().
Andrew
I will try to send another patch to do that.
thanks.