Messages in this thread | | | From | Maximilian Engelhardt <> | Subject | Re: software suspend doesn't work with 2.6.22-rc3 | Date | Sun, 27 May 2007 18:01:26 +0200 |
| |
On Saturday 26 May 2007, Nigel Cunningham wrote: > Hi. > > On Sat, 2007-05-26 at 14:49 +0200, Maximilian Engelhardt wrote: > > On Saturday 26 May 2007, Nigel Cunningham wrote: > > > Hi. > > > > > > On Sat, 2007-05-26 at 11:28 +0200, Maximilian Engelhardt wrote: > > > > Hello, > > > > > > > > When I try software suspend on my laptop it always returns to my > > > > running system after some time. > > > > This is what's logged by the kernel: > > > > > > > > swsusp: Basic memory bitmaps created > > > > Stopping tasks ... > > > > Stopping kernel threads timed out after 20 seconds (1 tasks refusing > > > > to freeze): > > > > cryptd > > > > Restarting tasks ... done. > > > > swsusp: Basic memory bitmaps freed > > > > > > > > I have no idea what's the problem, but if you tell me what I should > > > > do I can create debugging information and/or test patches. > > > > > > Could you try this patch, please? It should help. > > > > > > Herbert, is this right? If cryptd is going to be used for block devs, > > > the task should probably be PF_NOFREEZE (or whatever it is today) > > > instead. > > > > > > Regards, > > > > > > Nigel > > > > > > crypto/cryptd.c | 1 + > > > include/linux/freezer.h | 3 +++ > > > kernel/power/process.c | 2 +- > > > 3 files changed, 5 insertions(+), 1 deletion(-) > > > diff -ruNp 991-fix-cryptd.patch-old/crypto/cryptd.c > > > 991-fix-cryptd.patch-new/crypto/cryptd.c --- > > > 991-fix-cryptd.patch-old/crypto/cryptd.c 2007-05-19 18:16:47.000000000 > > > +1000 +++ 991-fix-cryptd.patch-new/crypto/cryptd.c 2007-05-26 > > > 19:45:42.000000000 +1000 @@ -341,6 +341,7 @@ static int > > > cryptd_thread(void *data) > > > > > > mutex_unlock(&state->mutex); > > > > > > + try_to_freeze(); > > > schedule(); > > > } while (!stop); > > > > I tried your patch, but when I apply it my kernel doesn't compile any > > more. I get these warnings/errors: > > > > [...] > > CC crypto/cryptd.o > > crypto/cryptd.c: In function ‘cryptd_thread’: > > crypto/cryptd.c:344: warning: implicit declaration of function > > ‘try_to_freeze’ [...] > > LD init/built-in.o > > LD .tmp_vmlinux1 > > crypto/built-in.o: In function `cryptd_thread': > > cryptd.c:(.text+0xd7f5): undefined reference to `try_to_freeze' > > make: *** [.tmp_vmlinux1] Error 1 > > Ah. You'll need to add #include <linux/freezer.h> near that start of > crypto/cryptd.c. Sorry for forgetting that. > > Nigel
I added the include line and now I could compile the kernel, but suspending still doesn't work.
swsusp: Basic memory bitmaps created Stopping tasks ... Stopping kernel threads timed out after 20 seconds (1 tasks refusing to freeze): cryptd Restarting tasks ... done. swsusp: Basic memory bitmaps freed
Maxi [unhandled content-type:application/pgp-signature] | |