Author: sparky                       Date: Fri Jun 30 22:24:42 2006 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- updated to 2.2.6-for-2.6.17
- no more conflicts with preempt-rt and ck patchsets, (no)rt.patch outdated

---- Files affected:
SOURCES:
   kernel-desktop-suspend2.patch (1.5 -> 1.6) , 
kernel-desktop-suspend2-nort.patch (1.1 -> NONE)  (REMOVED), 
kernel-desktop-suspend2-rt.patch (1.1 -> NONE)  (REMOVED)

---- Diffs:

================================================================
Index: SOURCES/kernel-desktop-suspend2.patch
diff -u SOURCES/kernel-desktop-suspend2.patch:1.5 
SOURCES/kernel-desktop-suspend2.patch:1.6
--- SOURCES/kernel-desktop-suspend2.patch:1.5   Fri Jun 23 21:19:32 2006
+++ SOURCES/kernel-desktop-suspend2.patch       Sat Jul  1 00:24:36 2006
@@ -1,7 +1,505 @@
-diff -Nur linux-2.6.17-rc6/Documentation/kernel-parameters.txt 
linux-2.6.17-rc6.suspend2/Documentation/kernel-parameters.txt
---- linux-2.6.17-rc6/Documentation/kernel-parameters.txt       2006-06-12 
16:22:31.000000000 +0000
-+++ linux-2.6.17-rc6.suspend2/Documentation/kernel-parameters.txt      
2006-06-12 16:42:02.000000000 +0000
-@@ -81,6 +81,7 @@
+diff -Nur linux-2.6.17/arch/i386/kernel/vmlinux.lds.S 
linux-2.6.17.suspend2/arch/i386/kernel/vmlinux.lds.S
+--- linux-2.6.17/arch/i386/kernel/vmlinux.lds.S        2006-06-18 
03:49:35.000000000 +0200
++++ linux-2.6.17.suspend2/arch/i386/kernel/vmlinux.lds.S       2006-06-30 
23:37:30.000000000 +0200
+@@ -37,6 +37,13 @@
+ 
+   RODATA
+ 
++  . =ALIGN(4);
++  __tracedata_start =.;
++  .tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) {
++      *(.tracedata)
++  }
++  __tracedata_end =.;
++
+   /* writeable */
+   .data : AT(ADDR(.data) - LOAD_OFFSET) {     /* Data */
+       *(.data)
+diff -Nur linux-2.6.17/arch/i386/mm/init.c 
linux-2.6.17.suspend2/arch/i386/mm/init.c
+--- linux-2.6.17/arch/i386/mm/init.c   2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.17.suspend2/arch/i386/mm/init.c  2006-06-30 23:37:14.000000000 
+0200
+@@ -384,7 +384,7 @@
+ #endif
+ }
+ 
+-#ifdef CONFIG_SOFTWARE_SUSPEND
++#ifdef CONFIG_SUSPEND_SHARED
+ /*
+  * Swap suspend & friends need this for resume because things like the 
intel-agp
+  * driver might have split up a kernel 4MB mapping.
+diff -Nur linux-2.6.17/arch/i386/power/Makefile 
linux-2.6.17.suspend2/arch/i386/power/Makefile
+--- linux-2.6.17/arch/i386/power/Makefile      2006-06-18 03:49:35.000000000 
+0200
++++ linux-2.6.17.suspend2/arch/i386/power/Makefile     2006-06-30 
23:37:14.000000000 +0200
+@@ -1,2 +1,2 @@
+ obj-$(CONFIG_PM)              += cpu.o
+-obj-$(CONFIG_SOFTWARE_SUSPEND)        += swsusp.o
++obj-$(CONFIG_SUSPEND_SHARED)  += swsusp.o
+diff -Nur linux-2.6.17/arch/powerpc/kernel/Makefile 
linux-2.6.17.suspend2/arch/powerpc/kernel/Makefile
+--- linux-2.6.17/arch/powerpc/kernel/Makefile  2006-06-18 03:49:35.000000000 
+0200
++++ linux-2.6.17.suspend2/arch/powerpc/kernel/Makefile 2006-06-30 
23:37:14.000000000 +0200
+@@ -36,7 +36,7 @@
+ obj-$(CONFIG_CRASH_DUMP)      += crash_dump.o
+ obj-$(CONFIG_6xx)             += idle_6xx.o l2cr_6xx.o cpu_setup_6xx.o
+ obj-$(CONFIG_TAU)             += tau_6xx.o
+-obj32-$(CONFIG_SOFTWARE_SUSPEND) += swsusp_32.o
++obj32-$(CONFIG_SUSPEND_SHARED)        += swsusp_32.o
+ obj32-$(CONFIG_MODULES)               += module_32.o
+ obj-$(CONFIG_E500)            += perfmon_fsl_booke.o
+ 
+diff -Nur linux-2.6.17/arch/powerpc/kernel/vmlinux.lds.S 
linux-2.6.17.suspend2/arch/powerpc/kernel/vmlinux.lds.S
+--- linux-2.6.17/arch/powerpc/kernel/vmlinux.lds.S     2006-06-18 
03:49:35.000000000 +0200
++++ linux-2.6.17.suspend2/arch/powerpc/kernel/vmlinux.lds.S    2006-06-30 
23:37:30.000000000 +0200
+@@ -68,6 +68,12 @@
+               __stop___bug_table = .;
+       }
+ 
++      __tracedata : {
++              __tracedata_start = .;
++              *(.tracedata)
++              __tracedata_end = .;
++      }
++
+ /*
+  * Init sections discarded at runtime
+  */
+diff -Nur linux-2.6.17/arch/x86_64/kernel/Makefile 
linux-2.6.17.suspend2/arch/x86_64/kernel/Makefile
+--- linux-2.6.17/arch/x86_64/kernel/Makefile   2006-06-18 03:49:35.000000000 
+0200
++++ linux-2.6.17.suspend2/arch/x86_64/kernel/Makefile  2006-06-30 
23:37:14.000000000 +0200
+@@ -25,7 +25,7 @@
+ obj-$(CONFIG_KEXEC)           += machine_kexec.o relocate_kernel.o crash.o
+ obj-$(CONFIG_CRASH_DUMP)      += crash_dump.o
+ obj-$(CONFIG_PM)              += suspend.o
+-obj-$(CONFIG_SOFTWARE_SUSPEND)        += suspend_asm.o
++obj-$(CONFIG_SUSPEND_SHARED)  += suspend_asm.o
+ obj-$(CONFIG_CPU_FREQ)                += cpufreq/
+ obj-$(CONFIG_EARLY_PRINTK)    += early_printk.o
+ obj-$(CONFIG_GART_IOMMU)      += pci-gart.o aperture.o
+diff -Nur linux-2.6.17/arch/x86_64/kernel/suspend.c 
linux-2.6.17.suspend2/arch/x86_64/kernel/suspend.c
+--- linux-2.6.17/arch/x86_64/kernel/suspend.c  2006-06-18 03:49:35.000000000 
+0200
++++ linux-2.6.17.suspend2/arch/x86_64/kernel/suspend.c 2006-06-30 
23:37:14.000000000 +0200
+@@ -141,7 +141,7 @@
+ 
+ }
+ 
+-#ifdef CONFIG_SOFTWARE_SUSPEND
++#ifdef CONFIG_SUSPEND_SHARED
+ /* Defined in arch/x86_64/kernel/suspend_asm.S */
+ extern int restore_image(void);
+ 
+@@ -220,4 +220,4 @@
+       restore_image();
+       return 0;
+ }
+-#endif /* CONFIG_SOFTWARE_SUSPEND */
++#endif /* CONFIG_SUSPEND_SHARED */
+diff -Nur linux-2.6.17/arch/x86_64/kernel/vmlinux.lds.S 
linux-2.6.17.suspend2/arch/x86_64/kernel/vmlinux.lds.S
+--- linux-2.6.17/arch/x86_64/kernel/vmlinux.lds.S      2006-06-18 
03:49:35.000000000 +0200
++++ linux-2.6.17.suspend2/arch/x86_64/kernel/vmlinux.lds.S     2006-06-30 
23:37:30.000000000 +0200
+@@ -45,6 +45,13 @@
+ 
+   RODATA
+ 
++  . =ALIGN(4);
++  __tracedata_start =.;
++  .tracedata : AT(ADDR(.tracedata) - LOAD_OFFSET) {
++      *(.tracedata)
++  }
++  __tracedata_end =.;
++
+                               /* Data */
+   .data : AT(ADDR(.data) - LOAD_OFFSET) {
+       *(.data)
+diff -Nur linux-2.6.17/crypto/deflate.c linux-2.6.17.suspend2/crypto/deflate.c
+--- linux-2.6.17/crypto/deflate.c      2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.17.suspend2/crypto/deflate.c     2006-06-30 23:35:01.000000000 
+0200
+@@ -142,8 +142,15 @@
+ 
+       ret = zlib_deflate(stream, Z_FINISH);
+       if (ret != Z_STREAM_END) {
+-              ret = -EINVAL;
+-              goto out;
++              if (!(ret == Z_OK && !stream->avail_in && !stream->avail_out)) {
++                      ret = -EINVAL;
++                      goto out;
++              } else {
++                      u8 zerostuff = 0;
++                      stream->next_out = &zerostuff;
++                      stream->avail_out = 1; 
++                      ret = zlib_deflate(stream, Z_FINISH);
++              }
+       }
+       ret = 0;
+       *dlen = stream->total_out;
+diff -Nur linux-2.6.17/crypto/Kconfig linux-2.6.17.suspend2/crypto/Kconfig
+--- linux-2.6.17/crypto/Kconfig        2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.17.suspend2/crypto/Kconfig       2006-06-30 23:34:56.000000000 
+0200
+@@ -316,6 +316,13 @@
+         
+         You will most probably want this if using IPSec.
+ 
++config CRYPTO_LZF
++      tristate "LZF compression algorithm"
++      depends on CRYPTO
++      help
++        This is the LZF algorithm. It is especially useful for Suspend2,
++        because it achieves good compression quickly.
++
+ config CRYPTO_MICHAEL_MIC
+       tristate "Michael MIC keyed digest algorithm"
+       depends on CRYPTO
+diff -Nur linux-2.6.17/crypto/lzf.c linux-2.6.17.suspend2/crypto/lzf.c
+--- linux-2.6.17/crypto/lzf.c  1970-01-01 01:00:00.000000000 +0100
++++ linux-2.6.17.suspend2/crypto/lzf.c 2006-06-30 23:34:56.000000000 +0200
+@@ -0,0 +1,335 @@
++/* 
++ * Cryptoapi LZF compression module.
++ *
++ * Copyright (c) 2004-2005 Nigel Cunningham <[EMAIL PROTECTED]>
++ *
++ * based on the deflate.c file:
++ * 
++ * Copyright (c) 2003 James Morris <[EMAIL PROTECTED]>
++ * 
++ * and upon the LZF compression module donated to the Suspend2 project with
++ * the following copyright:
++ *
++ * This program is free software; you can redistribute it and/or modify it
++ * under the terms of the GNU General Public License as published by the Free
++ * Software Foundation; either version 2 of the License, or (at your option) 
++ * any later version.
++ * Copyright (c) 2000-2003 Marc Alexander Lehmann <[EMAIL PROTECTED]>
++ * 
++ * Redistribution and use in source and binary forms, with or without 
modifica-
++ * tion, are permitted provided that the following conditions are met:
++ * 
++ *   1.  Redistributions of source code must retain the above copyright 
notice,
++ *       this list of conditions and the following disclaimer.
++ * 
++ *   2.  Redistributions in binary form must reproduce the above copyright
++ *       notice, this list of conditions and the following disclaimer in the
++ *       documentation and/or other materials provided with the distribution.
++ * 
++ *   3.  The name of the author may not be used to endorse or promote products
++ *       derived from this software without specific prior written permission.
++ * 
++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 
IMPLIED
++ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MER-
++ * CHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO
++ * EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPE-
++ * CIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
++ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
++ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
OTH-
++ * ERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
++ * OF THE POSSIBILITY OF SUCH DAMAGE.
++ *
++ * Alternatively, the contents of this file may be used under the terms of
++ * the GNU General Public License version 2 (the "GPL"), in which case the
++ * provisions of the GPL are applicable instead of the above. If you wish to
++ * allow the use of your version of this file only under the terms of the
++ * GPL and not to allow others to use your version of this file under the
++ * BSD license, indicate your decision by deleting the provisions above and
++ * replace them with the notice and other provisions required by the GPL. If
++ * you do not delete the provisions above, a recipient may use your version
++ * of this file under either the BSD or the GPL.
++ */
++
++#include <linux/kernel.h>
++#include <linux/module.h>
++#include <linux/init.h>
++#include <linux/module.h>
++#include <linux/crypto.h>
++#include <linux/err.h>
++#include <linux/vmalloc.h>
++#include <asm/string.h>
++
++struct lzf_ctx {
++      void *hbuf;
++      unsigned int bufofs;
++};
++
++/*
++ * size of hashtable is (1 << hlog) * sizeof (char *)
++ * decompression is independent of the hash table size
++ * the difference between 15 and 14 is very small
++ * for small blocks (and 14 is also faster).
++ * For a low-memory configuration, use hlog == 13;
++ * For best compression, use 15 or 16.
++ */
++static const int hlog = 14;
++
++/*
++ * don't play with this unless you benchmark!
++ * decompression is not dependent on the hash function
++ * the hashing function might seem strange, just believe me
++ * it works ;)
++ */
++static inline u16 first(const u8 *p)
++{
++      return ((p[0]) << 8) + p[1];
++}
++
++static inline u16 next(u8 v, const u8 *p)
++{
++      return ((v) << 8) + p[2];
++}
++
++static inline u32 idx(unsigned int h)
++{
++      return (((h ^ (h << 5)) >> (3*8 - hlog)) + h*3) & ((1 << hlog) - 1);
++}
++
++/*
++ * IDX works because it is very similar to a multiplicative hash, e.g.
++ * (h * 57321 >> (3*8 - hlog))
++ * the next one is also quite good, albeit slow ;)
++ * (int)(cos(h & 0xffffff) * 1e6)
++ */
++
++static const int max_lit = (1 <<  5);
++static const int max_off = (1 << 13);
++static const int max_ref = ((1 <<  8) + (1 << 3));
++
++/*
++ * compressed format
++ *
++ * 000LLLLL <L+1>    ; literal
++ * LLLOOOOO oooooooo ; backref L
++ * 111OOOOO LLLLLLLL oooooooo ; backref L+7
++ *
++ */
++
++static void lzf_compress_exit(void *context)
++{
++      struct lzf_ctx *ctx = (struct lzf_ctx *)context;
++
++      if (ctx->hbuf) {
++              vfree(ctx->hbuf);
++              ctx->hbuf = NULL;
++      }
++}
++
++static int lzf_compress_init(void *context)
++{
++      struct lzf_ctx *ctx = (struct lzf_ctx *)context;
++
++      /* Get LZF ready to go */
++      ctx->hbuf = vmalloc_32((1 << hlog) * sizeof(char *));
++      if (!ctx->hbuf) {
++              printk(KERN_WARNING
++                     "Failed to allocate %ld bytes for lzf workspace\n",
++                     (long) ((1 << hlog) * sizeof(char *)));
++              return -ENOMEM;
++      }
++      return 0;
++}
++
++static int lzf_compress(void *context, const u8 *in_data, unsigned int in_len,
++                      u8 *out_data, unsigned int *out_len)
++{
++      struct lzf_ctx *ctx = (struct lzf_ctx *)context;
++      const u8 **htab = ctx->hbuf;
++      const u8 **hslot;
++      const u8 *ip = in_data;
++      u8 *op = out_data;
++      const u8 *in_end = ip + in_len;
++      u8 *out_end = op + *out_len - 3;
++      const u8 *ref;
++
++      unsigned int hval = first(ip);
++      unsigned long off;
++      int lit = 0;
++
++      memset(htab, 0, sizeof(htab));
++
++      for (;;) {
++              if (ip < in_end - 2) {
++                      hval = next(hval, ip);
++                      hslot = htab + idx(hval);
++                      ref = *hslot;
++                      *hslot = ip;
++
++                      if ((off = ip - ref - 1) < max_off
++                          && ip + 4 < in_end && ref > in_data
++                          && *(u16 *) ref == *(u16 *) ip && ref[2] == ip[2]
++                          ) {
++                              /* match found at *ref++ */
++                              unsigned int len = 2;
++                              unsigned int maxlen = in_end - ip - len;
++                              maxlen = maxlen > max_ref ? max_ref : maxlen;
++
++                              do
++                                      len++;
++                              while (len < maxlen && ref[len] == ip[len]);
++
++                              if (op + lit + 1 + 3 >= out_end) {
++                                      *out_len = PAGE_SIZE;
++                                      return 0;
++                              }
++
++                              if (lit) {
++                                      *op++ = lit - 1;
++                                      lit = -lit;
++                                      do
++                                              *op++ = ip[lit];
++                                      while (++lit);
++                              }
++
++                              len -= 2;
++                              ip++;
++
++                              if (len < 7) {
++                                      *op++ = (off >> 8) + (len << 5);
++                              } else {
++                                      *op++ = (off >> 8) + (7 << 5);
++                                      *op++ = len - 7;
++                              }
++
++                              *op++ = off;
++
++                              ip += len;
++                              hval = first(ip);
++                              hval = next(hval, ip);
++                              htab[idx(hval)] = ip;
++                              ip++;
++                              continue;
++                      }
++              } else if (ip == in_end)
++                      break;
++
++              /* one more literal byte we must copy */
++              lit++;
++              ip++;
++
++              if (lit == max_lit) {
++                      if (op + 1 + max_lit >= out_end) {
++                              *out_len = PAGE_SIZE;
++                              return 0;
++                      }
++
++                      *op++ = max_lit - 1;
++                      memcpy(op, ip - max_lit, max_lit);
++                      op += max_lit;
++                      lit = 0;
++              }
++      }
++
++      if (lit) {
++              if (op + lit + 1 >= out_end) {
++                      *out_len = PAGE_SIZE;
++                      return 0;
++              }
++
++              *op++ = lit - 1;
++              lit = -lit;
++              do
++                      *op++ = ip[lit];
++              while (++lit);
++      }
++
++      *out_len = op - out_data;
++      return 0;
++}
++
++static int lzf_decompress(void *context, const u8 *src, unsigned int slen,
++                        u8 *dst, unsigned int *dlen)
++{
++      u8 const *ip = src;
++      u8 *op = dst;
++      u8 const *const in_end = ip + slen;
++      u8 *const out_end = op + *dlen;
++
++      do {
++              unsigned int ctrl = *ip++;
++
++              if (ctrl < (1 << 5)) {  /* literal run */
++                      ctrl++;
++
++                      if (op + ctrl > out_end) {
++                              *dlen = PAGE_SIZE;
++                              return 0;
++                      }
++                      memcpy(op, ip, ctrl);
++                      op += ctrl;
++                      ip += ctrl;
++              } else {        /* back reference */
++
++                      unsigned int len = ctrl >> 5;
++
++                      u8 *ref = op - ((ctrl & 0x1f) << 8) - 1;
++
++                      if (len == 7)
++                              len += *ip++;
++
++                      ref -= *ip++;
++
++                      if (op + len + 2 > out_end) {
++                              *dlen = PAGE_SIZE;
++                              return 0;
++                      }
++
++                      if (ref < (u8 *) dst) {
++                              *dlen = PAGE_SIZE;
++                              return 0;
++                      }
++
++                      *op++ = *ref++;
++                      *op++ = *ref++;
++
++                      do
++                              *op++ = *ref++;
++                      while (--len);
++              }
++      }
++      while (op < out_end && ip < in_end);
++
++      *dlen = op - (u8 *) dst;
++      return 0;
++}
++
++static struct crypto_alg alg = {
++      .cra_name = "lzf",
++      .cra_flags = CRYPTO_ALG_TYPE_COMPRESS,
++      .cra_ctxsize = 0,
++      .cra_module = THIS_MODULE,
++      .cra_list = LIST_HEAD_INIT(alg.cra_list),
++      .cra_u = {.compress = {
++                             .coa_init = lzf_compress_init,
++                             .coa_exit = lzf_compress_exit,
++                             .coa_compress = lzf_compress,
++                             .coa_decompress = lzf_decompress}}
++};
++
++static int __init init(void)
++{
++      return crypto_register_alg(&alg);
++}
++
++static void __exit fini(void)
++{
++      crypto_unregister_alg(&alg);
++}
++
++module_init(init);
++module_exit(fini);
++
++MODULE_LICENSE("GPL");
++MODULE_DESCRIPTION("LZF Compression Algorithm");
++MODULE_AUTHOR("Marc Alexander Lehmann & Nigel Cunningham");
+diff -Nur linux-2.6.17/crypto/Makefile linux-2.6.17.suspend2/crypto/Makefile
+--- linux-2.6.17/crypto/Makefile       2006-06-18 03:49:35.000000000 +0200
++++ linux-2.6.17.suspend2/crypto/Makefile      2006-06-30 23:34:56.000000000 
+0200
+@@ -30,5 +30,6 @@
+ obj-$(CONFIG_CRYPTO_DEFLATE) += deflate.o
+ obj-$(CONFIG_CRYPTO_MICHAEL_MIC) += michael_mic.o
+ obj-$(CONFIG_CRYPTO_CRC32C) += crc32c.o
++obj-$(CONFIG_CRYPTO_LZF) += lzf.o
+ 
+ obj-$(CONFIG_CRYPTO_TEST) += tcrypt.o
+diff -Nur linux-2.6.17/Documentation/kernel-parameters.txt 
linux-2.6.17.suspend2/Documentation/kernel-parameters.txt
+--- linux-2.6.17/Documentation/kernel-parameters.txt   2006-06-18 
03:49:35.000000000 +0200
++++ linux-2.6.17.suspend2/Documentation/kernel-parameters.txt  2006-06-30 
23:37:14.000000000 +0200
+@@ -80,6 +80,7 @@
        SERIAL  Serial support is enabled.
        SMP     The kernel is an SMP kernel.
        SPARC   Sparc architecture is enabled.
@@ -9,7 +507,7 @@
        SWSUSP  Software suspend is enabled.
        TS      Appropriate touchscreen support is enabled.
        USB     USB support is enabled.
-@@ -1070,6 +1071,8 @@
+@@ -1063,6 +1064,8 @@
        noresume        [SWSUSP] Disables resume and restores original swap
                        space.
  
@@ -18,7 +516,7 @@
        no-scroll       [VGA] Disables scrollback.
                        This is required for the Braillex ib80-piezo Braille
                        reader made by F.H. Papenmeier (Germany).
-@@ -1350,6 +1353,11 @@
+@@ -1343,6 +1346,11 @@
        resume=         [SWSUSP]
                        Specify the partition device for software suspend
  
@@ -30,9 +528,9 @@
        rhash_entries=  [KNL,NET]
                        Set number of hash buckets for route cache
  
-diff -Nur linux-2.6.17-rc6/Documentation/power/internals.txt 
linux-2.6.17-rc6.suspend2/Documentation/power/internals.txt
---- linux-2.6.17-rc6/Documentation/power/internals.txt 1970-01-01 
00:00:00.000000000 +0000
-+++ linux-2.6.17-rc6.suspend2/Documentation/power/internals.txt        
2006-06-12 16:42:02.000000000 +0000
+diff -Nur linux-2.6.17/Documentation/power/internals.txt 
linux-2.6.17.suspend2/Documentation/power/internals.txt
+--- linux-2.6.17/Documentation/power/internals.txt     1970-01-01 
01:00:00.000000000 +0100
++++ linux-2.6.17.suspend2/Documentation/power/internals.txt    2006-06-30 
23:37:14.000000000 +0200
 @@ -0,0 +1,362 @@
 +              Software Suspend 2.2 Internal Documentation.
 +                              Version 1
@@ -396,10 +894,10 @@
 +      transformer_list links together page transformers, in the order in
 +      which they register, which is in turn determined by order in the
 +      Makefile.
-diff -Nur linux-2.6.17-rc6/Documentation/power/suspend2.txt 
linux-2.6.17-rc6.suspend2/Documentation/power/suspend2.txt
---- linux-2.6.17-rc6/Documentation/power/suspend2.txt  1970-01-01 
00:00:00.000000000 +0000
-+++ linux-2.6.17-rc6.suspend2/Documentation/power/suspend2.txt 2006-06-12 
16:42:02.000000000 +0000
-@@ -0,0 +1,663 @@
+diff -Nur linux-2.6.17/Documentation/power/suspend2.txt 
linux-2.6.17.suspend2/Documentation/power/suspend2.txt
+--- linux-2.6.17/Documentation/power/suspend2.txt      1970-01-01 
01:00:00.000000000 +0100
++++ linux-2.6.17.suspend2/Documentation/power/suspend2.txt     2006-06-30 
23:37:14.000000000 +0200
+@@ -0,0 +1,673 @@
 +      --- Suspend2, version 2.2 ---
 +
 +1.  What is it?
@@ -427,6 +925,16 @@
 +   applications and finding what directory you put that file in yesterday.
 +   That's what Suspend2 does.
 +
++   Suspend2 has a long heritage. It began life as work by Gabor Kuti, who,
++   with some help from Pavel Machek, got an early version going in 1999. The
++   project was then taken over by Florent Chabaud while still in alpha version
++   numbers. Nigel Cunningham came on the scene when Florent was unable to
++   continue, moving the project into betas, then 1.0, 2.0 and so on up to
++   the present 2.2 series. Pavel Machek's swsusp code, which was merged around
++   2.5.17 retains the original name, and was essentially a fork of the beta
++   code until Rafael Wysocki came on the scene in 2005 and began to improve it
++   further.
++
 +2. Why would you want it?
 +
 +   Why wouldn't you want it?
@@ -930,969 +1438,385 @@
 +   process enters one of the *_sync system calls, we set a PF_SYNCTHREAD flag 
on
 +   that process for the duration of that call. Processes that have this flag 
are
 +   frozen after processes without it, so that we can seek to ensure that dirty
-+   data is synced to disk as quickly as possible in a situation where other
-+   processes may be submitting writes at the same time. Freezing the processes
-+   that are submitting data stops new I/O from being submitted. Syncthreads 
can
-+   then cleanly finish their work. So the order is:
-+
-+   - Userspace processes without PF_SYNCTHREAD or PF_NOFREEZE;
-+   - Userspace processes with PF_SYNCTHREAD (they won't have NOFREEZE);
-+   - Kernel processes without PF_NOFREEZE.
-+
-+   b. Eating memory.
-+
-+   For a successful suspend, you need to have enough disk space to store the
-+   image and enough memory for the various limitations of Suspend2's
-+   algorithm. You can also specify a maximum image size. In order to attain
-+   to those constraints, Suspend2 may 'eat' memory. If, after freezing
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    
http://cvs.pld-linux.org/SOURCES/kernel-desktop-suspend2.patch?r1=1.5&r2=1.6&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to