On Tue, 2016-06-28 at 21:40 -0700, Jeff Kirsher wrote: > From: Greg Rose <gregory.v.r...@intel.com> > > The i40e_suspend() function was failing to save PCI state > and this would result in a kernel stack trace from a WARN_ONCE in the > pci_legacy_suspend() function. > > Add a call to pci_save_state() to fix that problem. > > Change-ID: I4736e62bb660966bd208cc8af617a14cb07fc4bd > Signed-off-by: Greg Rose <gregory.v.r...@intel.com> > Tested-by: Andrew Bowers <andrewx.bow...@intel.com> > Signed-off-by: Jeff Kirsher <jeffrey.t.kirs...@intel.com>
Acked-by: Greg Rose <gr...@lightfleet.com> :) > --- > drivers/net/ethernet/intel/i40e/i40e_main.c | 7 ++++++- > 1 file changed, 6 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c > b/drivers/net/ethernet/intel/i40e/i40e_main.c > index e071c22..52d9d28 100644 > --- a/drivers/net/ethernet/intel/i40e/i40e_main.c > +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c > @@ -11441,6 +11441,7 @@ static int i40e_suspend(struct pci_dev *pdev, > pm_message_t state) > { > struct i40e_pf *pf = pci_get_drvdata(pdev); > struct i40e_hw *hw = &pf->hw; > + int retval = 0; > > set_bit(__I40E_SUSPENDED, &pf->state); > set_bit(__I40E_DOWN, &pf->state); > @@ -11454,10 +11455,14 @@ static int i40e_suspend(struct pci_dev *pdev, > pm_message_t state) > > i40e_stop_misc_vector(pf); > > + retval = pci_save_state(pdev); > + if (retval) > + return retval; > + > pci_wake_from_d3(pdev, pf->wol_en); > pci_set_power_state(pdev, PCI_D3hot); > > - return 0; > + return retval; > } > > /**