Skip to content

Commit 8df206f

Browse files
committed
Merge branch 'bug-fixes-for-the-hibmcge-ethernet-driver'
Jijie Shao says: ==================== bug fixes for the hibmcge ethernet driver This patch set is intended to fix several issues for hibmcge driver: 1. Patch1 fixes the issue where buf avl irq is disabled after irq_handle. 2. Patch2 eliminates the error logs in scenarios without phy. 3. Patch3 fixes the issue where the network port becomes unusable after a PCIe RAS event. ==================== Link: https://patch.msgid.link/20251025014642.265259-1-shaojijie@huawei.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2 parents 40c17a0 + 7e2958a commit 8df206f

File tree

5 files changed

+11
-5
lines changed

5 files changed

+11
-5
lines changed

drivers/net/ethernet/hisilicon/hibmcge/hbg_common.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#define HBG_PCU_CACHE_LINE_SIZE 32
1818
#define HBG_TX_TIMEOUT_BUF_LEN 1024
1919
#define HBG_RX_DESCR 0x01
20+
#define HBG_NO_PHY 0xFF
2021

2122
#define HBG_PACKET_HEAD_SIZE ((HBG_RX_SKIP1 + HBG_RX_SKIP2 + \
2223
HBG_RX_DESCR) * HBG_PCU_CACHE_LINE_SIZE)

drivers/net/ethernet/hisilicon/hibmcge/hbg_err.c

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,12 +136,11 @@ static pci_ers_result_t hbg_pci_err_detected(struct pci_dev *pdev,
136136
{
137137
struct net_device *netdev = pci_get_drvdata(pdev);
138138

139-
netif_device_detach(netdev);
140-
141-
if (state == pci_channel_io_perm_failure)
139+
if (state == pci_channel_io_perm_failure) {
140+
netif_device_detach(netdev);
142141
return PCI_ERS_RESULT_DISCONNECT;
142+
}
143143

144-
pci_disable_device(pdev);
145144
return PCI_ERS_RESULT_NEED_RESET;
146145
}
147146

@@ -150,6 +149,9 @@ static pci_ers_result_t hbg_pci_err_slot_reset(struct pci_dev *pdev)
150149
struct net_device *netdev = pci_get_drvdata(pdev);
151150
struct hbg_priv *priv = netdev_priv(netdev);
152151

152+
netif_device_detach(netdev);
153+
pci_disable_device(pdev);
154+
153155
if (pci_enable_device(pdev)) {
154156
dev_err(&pdev->dev,
155157
"failed to re-enable PCI device after reset\n");

drivers/net/ethernet/hisilicon/hibmcge/hbg_hw.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,9 @@ void hbg_hw_adjust_link(struct hbg_priv *priv, u32 speed, u32 duplex)
244244

245245
hbg_hw_mac_enable(priv, HBG_STATUS_ENABLE);
246246

247+
if (priv->mac.phy_addr == HBG_NO_PHY)
248+
return;
249+
247250
/* wait MAC link up */
248251
ret = readl_poll_timeout(priv->io_base + HBG_REG_AN_NEG_STATE_ADDR,
249252
link_status,

drivers/net/ethernet/hisilicon/hibmcge/hbg_irq.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ static void hbg_irq_handle_rx_buf_val(struct hbg_priv *priv,
3232
const struct hbg_irq_info *irq_info)
3333
{
3434
priv->stats.rx_fifo_less_empty_thrsld_cnt++;
35+
hbg_hw_irq_enable(priv, irq_info->mask, true);
3536
}
3637

3738
#define HBG_IRQ_I(name, handle) \

drivers/net/ethernet/hisilicon/hibmcge/hbg_mdio.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
#define HBG_MDIO_OP_INTERVAL_US (5 * 1000)
2121

2222
#define HBG_NP_LINK_FAIL_RETRY_TIMES 5
23-
#define HBG_NO_PHY 0xFF
2423

2524
static void hbg_mdio_set_command(struct hbg_mac *mac, u32 cmd)
2625
{

0 commit comments

Comments
 (0)