On Monday, 16 October 2006 21:21, Stefan Seyfried wrote:
> On Mon, Oct 16, 2006 at 09:06:07PM +0200, R. J. Wysocki wrote:
> > On Monday, 16 October 2006 20:55, Stefan Seyfried wrote:
> > > Hi,
> > >
> > > If nobody objects, i'd send this to LKML:
> > > Maybe somebody with a recent -mm kernel can test if it still applies
> > > there :-)
> >
> > I have a very similar patch, but with two differences, that applies to -mm
> > and has been tested (on one box):
>
> ok, even better. My patch is still compiling, but i have no machine here where
> i can test its effectiveness (on a thinkpad, you see the moon blink after
> pm_ops->prepare(), but i only get to one tomorrow ;-)
When you can, please test my patch and I'll post it to LKML if it works.
> > ---
> > kernel/power/disk.c | 24 +++++++++++++++++++++++-
> > 1 file changed, 23 insertions(+), 1 deletion(-)
> >
> > Index: linux-2.6.19-rc1-mm1/kernel/power/disk.c
> > ===================================================================
> > --- linux-2.6.19-rc1-mm1.orig/kernel/power/disk.c
> > +++ linux-2.6.19-rc1-mm1/kernel/power/disk.c
> > @@ -30,6 +30,22 @@ dev_t swsusp_resume_device;
> > sector_t swsusp_resume_block;
> >
> > /**
> > + * platform_prepare - prepare the machine for hibernation using the
> > + * platform driver if so configured and return an error code if it fails
> > + */
> > +
> > +static inline int platform_prepare(void)
> > +{
> > + int error = 0;
> > +
> > + if (pm_disk_mode == PM_DISK_PLATFORM) {
> > + if (pm_ops && pm_ops->prepare)
> > + error = pm_ops->prepare(PM_SUSPEND_DISK);
> > + }
> > + return error;
> > +}
> > +
> > +/**
> > * power_down - Shut machine down for hibernate.
> > * @mode: Suspend-to-disk mode
> > *
> > @@ -92,8 +108,14 @@ static int prepare_processes(void)
> > }
> >
> > /* Free memory before shutting down devices. */
> > - if (!(error = swsusp_shrink_memory()))
> > + error = swsusp_shrink_memory();
> > + if (error)
> > + goto thaw;
> > +
> > + error = platform_prepare();
> > + if (!error)
> > return 0;
> > +
> > thaw:
> > thaw_processes();
> > enable_cpus:
>
> I think you should do platform_finish() in the failure path also, but have
> not looked at the ACPI spec on the exact way how this should be called.
Do you mean platform_finish is also needed when platform_prepare fails?
--
You never change things by fighting the existing reality.
R. Buckminster Fuller
-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Suspend-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/suspend-devel