diff options
| author | Paolo Abeni <[email protected]> | 2025-07-04 06:03:18 +0000 |
|---|---|---|
| committer | Paolo Abeni <[email protected]> | 2025-07-04 06:03:18 +0000 |
| commit | 6b9fd8857b9fc4dd62e7cd300327f0e48dd76642 (patch) | |
| tree | 1843ae1940d26bbb9473247da38f27c907ff7ed6 /drivers/net/ethernet/intel/igc/igc_main.c | |
| parent | ipv6: Cleanup fib6_drop_pcpu_from() (diff) | |
| parent | Merge tag 'net-6.16-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/net... (diff) | |
| download | kernel-6b9fd8857b9fc4dd62e7cd300327f0e48dd76642.tar.gz kernel-6b9fd8857b9fc4dd62e7cd300327f0e48dd76642.zip | |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Cross-merge networking fixes after downstream PR (net-6.16-rc5).
No conflicts.
No adjacent changes.
Signed-off-by: Paolo Abeni <[email protected]>
Diffstat (limited to 'drivers/net/ethernet/intel/igc/igc_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/igc/igc_main.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/net/ethernet/intel/igc/igc_main.c b/drivers/net/ethernet/intel/igc/igc_main.c index 2e12915b42a9..4f6632cb9497 100644 --- a/drivers/net/ethernet/intel/igc/igc_main.c +++ b/drivers/net/ethernet/intel/igc/igc_main.c @@ -7144,6 +7144,10 @@ static int igc_probe(struct pci_dev *pdev, adapter->port_num = hw->bus.func; adapter->msg_enable = netif_msg_init(debug, DEFAULT_MSG_ENABLE); + /* Disable ASPM L1.2 on I226 devices to avoid packet loss */ + if (igc_is_device_id_i226(hw)) + pci_disable_link_state(pdev, PCIE_LINK_STATE_L1_2); + err = pci_save_state(pdev); if (err) goto err_ioremap; @@ -7529,6 +7533,9 @@ static int __igc_resume(struct device *dev, bool rpm) pci_enable_wake(pdev, PCI_D3hot, 0); pci_enable_wake(pdev, PCI_D3cold, 0); + if (igc_is_device_id_i226(hw)) + pci_disable_link_state(pdev, PCIE_LINK_STATE_L1_2); + if (igc_init_interrupt_scheme(adapter, true)) { netdev_err(netdev, "Unable to allocate memory for queues\n"); return -ENOMEM; @@ -7654,6 +7661,9 @@ static pci_ers_result_t igc_io_slot_reset(struct pci_dev *pdev) pci_enable_wake(pdev, PCI_D3hot, 0); pci_enable_wake(pdev, PCI_D3cold, 0); + if (igc_is_device_id_i226(hw)) + pci_disable_link_state_locked(pdev, PCIE_LINK_STATE_L1_2); + /* In case of PCI error, adapter loses its HW address * so we should re-assign it here. */ |
