* [patch for 2.6.27? 5/5] forcedeth: fix kexec regression
@ 2008-08-20 23:34 akpm
2008-08-27 9:48 ` Jeff Garzik
0 siblings, 1 reply; 3+ messages in thread
From: akpm @ 2008-08-20 23:34 UTC (permalink / raw)
To: jeff; +Cc: netdev, akpm, rjw, aabdulla, yhlu.kernel
From: Rafael J. Wysocki <rjw@sisk.pl>
Fix regression tracked as http://bugzilla.kernel.org/show_bug.cgi?id=11361
and caused by commit f735a2a1a4f2a0f5cd823ce323e82675990469e2 ("[netdrvr]
forcedeth: setup wake-on-lan before shutting down") that makes network
adapters integrated into the NVidia MCP55 chipsets fail to work in kexeced
kernels. The problem appears to be that if the adapter is put into D3_hot
during ->shutdown(), it cannot be brought back into D0 after kexec (ref.
http://marc.info/?l=linux-kernel&m=121900062814967&w=4). Therefore, only
put forcedeth into D3 during ->shutdown() if the system is to be powered
off.
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Tested-by: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: Ayaz Abdulla <aabdulla@nvidia.com>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
drivers/net/forcedeth.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff -puN drivers/net/forcedeth.c~forcedeth-fix-kexec-regression drivers/net/forcedeth.c
--- a/drivers/net/forcedeth.c~forcedeth-fix-kexec-regression
+++ a/drivers/net/forcedeth.c
@@ -5990,10 +5990,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
_
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch for 2.6.27? 5/5] forcedeth: fix kexec regression
2008-08-20 23:34 [patch for 2.6.27? 5/5] forcedeth: fix kexec regression akpm
@ 2008-08-27 9:48 ` Jeff Garzik
2008-08-27 10:52 ` Rafael J. Wysocki
0 siblings, 1 reply; 3+ messages in thread
From: Jeff Garzik @ 2008-08-27 9:48 UTC (permalink / raw)
To: akpm; +Cc: netdev, rjw, aabdulla, yhlu.kernel
akpm@linux-foundation.org wrote:
> From: Rafael J. Wysocki <rjw@sisk.pl>
>
> Fix regression tracked as http://bugzilla.kernel.org/show_bug.cgi?id=11361
> and caused by commit f735a2a1a4f2a0f5cd823ce323e82675990469e2 ("[netdrvr]
> forcedeth: setup wake-on-lan before shutting down") that makes network
> adapters integrated into the NVidia MCP55 chipsets fail to work in kexeced
> kernels. The problem appears to be that if the adapter is put into D3_hot
> during ->shutdown(), it cannot be brought back into D0 after kexec (ref.
> http://marc.info/?l=linux-kernel&m=121900062814967&w=4). Therefore, only
> put forcedeth into D3 during ->shutdown() if the system is to be powered
> off.
>
> Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> Tested-by: Yinghai Lu <yhlu.kernel@gmail.com>
> Cc: Ayaz Abdulla <aabdulla@nvidia.com>
> Cc: Jeff Garzik <jeff@garzik.org>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
>
> drivers/net/forcedeth.c | 8 +++++---
> 1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff -puN drivers/net/forcedeth.c~forcedeth-fix-kexec-regression drivers/net/forcedeth.c
> --- a/drivers/net/forcedeth.c~forcedeth-fix-kexec-regression
> +++ a/drivers/net/forcedeth.c
> @@ -5990,10 +5990,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);
> + }
> }
All,
Is this the final version of this patch?
Jeff
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [patch for 2.6.27? 5/5] forcedeth: fix kexec regression
2008-08-27 9:48 ` Jeff Garzik
@ 2008-08-27 10:52 ` Rafael J. Wysocki
0 siblings, 0 replies; 3+ messages in thread
From: Rafael J. Wysocki @ 2008-08-27 10:52 UTC (permalink / raw)
To: Jeff Garzik; +Cc: akpm, netdev, aabdulla, yhlu.kernel
On Wednesday, 27 of August 2008, Jeff Garzik wrote:
> akpm@linux-foundation.org wrote:
> > From: Rafael J. Wysocki <rjw@sisk.pl>
> >
> > Fix regression tracked as http://bugzilla.kernel.org/show_bug.cgi?id=11361
> > and caused by commit f735a2a1a4f2a0f5cd823ce323e82675990469e2 ("[netdrvr]
> > forcedeth: setup wake-on-lan before shutting down") that makes network
> > adapters integrated into the NVidia MCP55 chipsets fail to work in kexeced
> > kernels. The problem appears to be that if the adapter is put into D3_hot
> > during ->shutdown(), it cannot be brought back into D0 after kexec (ref.
> > http://marc.info/?l=linux-kernel&m=121900062814967&w=4). Therefore, only
> > put forcedeth into D3 during ->shutdown() if the system is to be powered
> > off.
> >
> > Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
> > Tested-by: Yinghai Lu <yhlu.kernel@gmail.com>
> > Cc: Ayaz Abdulla <aabdulla@nvidia.com>
> > Cc: Jeff Garzik <jeff@garzik.org>
> > Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> > ---
> >
> > drivers/net/forcedeth.c | 8 +++++---
> > 1 file changed, 5 insertions(+), 3 deletions(-)
> >
> > diff -puN drivers/net/forcedeth.c~forcedeth-fix-kexec-regression drivers/net/forcedeth.c
> > --- a/drivers/net/forcedeth.c~forcedeth-fix-kexec-regression
> > +++ a/drivers/net/forcedeth.c
> > @@ -5990,10 +5990,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);
> > + }
> > }
>
> All,
>
> Is this the final version of this patch?
Yes, it is.
Thanks,
Rafael
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-08-27 10:48 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-20 23:34 [patch for 2.6.27? 5/5] forcedeth: fix kexec regression akpm
2008-08-27 9:48 ` Jeff Garzik
2008-08-27 10:52 ` Rafael J. Wysocki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).