Re: [PATCH] igb: Fix igb_down hung on surprise removal

From: Tony Nguyen
Date: Tue May 23 2023 - 14:04:05 EST


On 5/22/2023 1:16 PM, Grant Grundler wrote:
On Thu, May 18, 2023 at 3:36 AM Pavan Chebbi <pavan.chebbi@xxxxxxxxxxxx> wrote:

On Thu, May 18, 2023 at 12:58 PM Ying Hsu <yinghsu@xxxxxxxxxxxx> wrote:

diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index 58872a4c2540..a8b217368ca1 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -9581,6 +9581,11 @@ static pci_ers_result_t igb_io_error_detected(struct pci_dev *pdev,
struct net_device *netdev = pci_get_drvdata(pdev);
struct igb_adapter *adapter = netdev_priv(netdev);

+ if (state == pci_channel_io_normal) {
+ dev_warn(&pdev->dev, "Non-correctable non-fatal error reported.\n");
+ return PCI_ERS_RESULT_CAN_RECOVER;
+ }
+

This code may be good to have. But not sure if this should be the fix
for igb_down() synchronization.

I have the same opinion. This appears to solve the problem - but I
don't know if there is a better way to solve this problem.

Intel guys may comment.

Ping? Can we please get feedback from IGB/IGC maintainers this week?

(I hope igc maintainers can confirm this isn't an issue for igc.)

Adding some of the igb and igc developers.

cheers,
grant


netif_device_detach(netdev);

if (state == pci_channel_io_perm_failure)
--
2.40.1.606.ga4b1b128d6-goog