Re: [PATCH] net: forcedeth use pci_choose_state instead of PCI_D3hot- v2

From: Simon Arlott
Date: Sat Aug 30 2008 - 15:40:51 EST


On 19/08/08 22:09, Rafael J. Wysocki wrote:
> On Tuesday, 19 of August 2008, Simon Arlott wrote:
>> On 19/08/08 18:58, Rafael J. Wysocki wrote:
>> > On Tuesday, 19 of August 2008, Simon Arlott wrote:
>> >> On 18/08/08 23:08, Rafael J. Wysocki wrote:
>> >> > On Monday, 18 of August 2008, Yinghai Lu wrote:
>> >> >> On Mon, Aug 18, 2008 at 3:22 AM, Rafael J. Wysocki <rjw@xxxxxxx> wrote:
>> >> >>
>> >> >> >> > > drivers/net/forcedeth.c | 8 +++++---
>> >> >> >> > > 1 file changed, 5 insertions(+), 3 deletions(-)
>> >> >> >> > >
>> >> >> >> > > Index: linux-2.6/drivers/net/forcedeth.c
>> >> >> >> > > ===================================================================
>> >> >> >> > > --- linux-2.6.orig/drivers/net/forcedeth.c
>> >> >> >> > > +++ linux-2.6/drivers/net/forcedeth.c
>> >> >> >> > > @@ -5975,10 +5975,12 @@ static void nv_shutdown(struct pci_dev *
>> >> >> >> > > if (netif_running(dev))
>> >> >> >> > > nv_close(dev);
>> >> >> >> > >
>> >> >> >> > > - pci_enable_wake(pdev, PCI_D3hot, np->wolenabled);
>> >> >> >> > > - pci_enable_wake(pdev, PCI_D3cold, np->wolenabled);
>> >> >> >> > > pci_disable_device(pdev);
>> >> >> >> > > - pci_set_power_state(pdev, PCI_D3hot);
>> >> >> >> > > + if (system_state == SYSTEM_POWER_OFF) {
>> >> >> >> > > + if (pci_enable_wake(pdev, PCI_D3cold, np->wolenabled))
>> >> >> >> > > + pci_enable_wake(pdev, PCI_D3hot, np->wolenabled);
>> >> >> >> > > + pci_set_power_state(pdev, PCI_D3hot);
>> >> >> >> > > + }
>> >> >> >> > > }
>> >> >> >> > > #else
>> >> >> >> > > #define nv_suspend NULL
>> >> >> >> > >
>> >> >> >> >
>> >> >>
>> >> >> > Does the last patch work for you BTW?
>> >> >> >
>> >> >>
>> >> >> it works.
>> >> >
>> >> > OK, thanks for testing.
>> >> >
>> >> > I think we can use it as a quick fix for 2.6.27. Do you agree?
>> >> >
>> >> > Still, it would be helpful to verify if this is the same MSI issue reported by
>> >> > Simon.
>> >>
>> >> I tried to test that patch but even without it standby/resume has stopped working:
>> >
>> > Which kernel is this?
>>
>> linus-2.6 a7f5aaf36ded825477c4d7167cc6eb1bcdc63191
>>
>> I've reverted to 2b12a4c524812fb3f6ee590a02e65b95c8c32229 where standby/resume still
>> works and applied the above patch plus the pci_enable_device patch. It still doesn't
>> work after resume if MSI is enabled.
>
> My patch only affects the shutdown code path and is not related to
> suspend/standby etc.
>
> Could you identify the commit that broke standby/resume for you between
> 2b12a4c524812fb3f6ee590a02e65b95c8c32229 and
> a7f5aaf36ded825477c4d7167cc6eb1bcdc63191 ? It looks like that should be
> bisectable.

It appears to be working again as of ee096f75b69913dbad0e6f7f2572513de5c90002.

--
Simon Arlott

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/