igb: Exclude device from suspend direct complete optimization
authorKai-Heng Feng <[email protected]>
Tue, 11 Dec 2018 07:59:38 +0000 (15:59 +0800)
committerJeff Kirsher <[email protected]>
Tue, 19 Mar 2019 21:23:30 +0000 (14:23 -0700)
igb sets different WoL settings in system suspend callback and runtime
suspend callback.

The suspend direct complete optimization leaves igb in runtime suspended
state with wrong WoL setting during system suspend.

To fix this, we need to disable suspend direct complete optimization to
let igb always use suspend callback to set correct WoL during system
suspend.

Signed-off-by: Kai-Heng Feng <[email protected]>
Tested-by: Aaron Brown <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
drivers/net/ethernet/intel/igb/igb_main.c

index 45f3c19d063aefd526bc22b750afd2aff40e3256..bea7175d171b9f281caaa1e166b1364855d09f97 100644 (file)
@@ -3452,6 +3452,9 @@ static int igb_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
                        break;
                }
        }
+
+       dev_pm_set_driver_flags(&pdev->dev, DPM_FLAG_NEVER_SKIP);
+
        pm_runtime_put_noidle(&pdev->dev);
        return 0;