Author: hawk                         Date: Wed Oct 29 08:19:32 2008 GMT
Module: SOURCES                       Tag: CRI
---- Log message:
- new patch from LKML, now with LZMA ramdisk too

---- Files affected:
SOURCES:
   kernel-CRI-lzma-vmlinuz.patch (1.1.2.4 -> 1.1.2.5) 

---- Diffs:

================================================================
Index: SOURCES/kernel-CRI-lzma-vmlinuz.patch
diff -u SOURCES/kernel-CRI-lzma-vmlinuz.patch:1.1.2.4 
SOURCES/kernel-CRI-lzma-vmlinuz.patch:1.1.2.5
--- SOURCES/kernel-CRI-lzma-vmlinuz.patch:1.1.2.4       Thu May  8 20:49:31 2008
+++ SOURCES/kernel-CRI-lzma-vmlinuz.patch       Wed Oct 29 09:19:26 2008
@@ -1,1221 +1,2971 @@
-diff -urNp linux-2.6.25.orig/arch/x86/boot/compressed/Makefile 
linux-2.6.25/arch/x86/boot/compressed/Makefile
---- linux-2.6.25.orig/arch/x86/boot/compressed/Makefile        2008-05-08 
14:47:45.000000000 +0200
-+++ linux-2.6.25/arch/x86/boot/compressed/Makefile     2008-05-08 
20:42:22.000000000 +0200
+diff -urNp linux-2.6.27.orig/arch/x86/boot/compressed/Makefile 
linux-2.6.27/arch/x86/boot/compressed/Makefile
+--- linux-2.6.27.orig/arch/x86/boot/compressed/Makefile        2008-10-29 
08:48:23.000000000 +0100
++++ linux-2.6.27/arch/x86/boot/compressed/Makefile     2008-10-29 
08:59:01.000000000 +0100
 @@ -4,7 +4,7 @@
  # create a compressed vmlinux image from the original vmlinux
  #
  
 -targets := vmlinux vmlinux.bin vmlinux.bin.gz head_$(BITS).o misc.o piggy.o
-+targets := vmlinux vmlinux.bin head_$(BITS).o piggy.o
++targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 
vmlinux.bin.lzma head_$(BITS).o misc.o piggy.o
  
  KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2
  KBUILD_CFLAGS += -fno-strict-aliasing -fPIC
-@@ -17,10 +17,11 @@ KBUILD_AFLAGS  := $(KBUILD_CFLAGS) -D__A
- 
- LDFLAGS := -m elf_$(UTS_MACHINE)
- LDFLAGS_vmlinux := -T
--
--$(obj)/vmlinux: $(src)/vmlinux_$(BITS).lds $(obj)/head_$(BITS).o 
$(obj)/misc.o $(obj)/piggy.o FORCE
--      $(call if_changed,ld)
--      @:
-+ifeq ($(CONFIG_X86_32),y)
-+LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T
-+else
-+LDFLAGS_piggy.o := -r --format binary --oformat elf64-x86-64 -T
-+endif
- 
- OBJCOPYFLAGS_vmlinux.bin := -O binary -R .note -R .comment -S
- $(obj)/vmlinux.bin: vmlinux FORCE
-@@ -42,7 +43,16 @@ quiet_cmd_relocbin = BUILD   $@
-       cmd_relocbin = cat $(filter-out FORCE,$^) > $@
- $(obj)/vmlinux.bin.all: $(vmlinux.bin.all-y) FORCE
-       $(call if_changed,relocbin)
-+endif
-+
-+ifeq ($(CONFIG_KERNEL_GZIP),y)
-+targets += vmlinux.bin.gz misc.o
-+
-+$(obj)/vmlinux: $(src)/vmlinux_$(BITS).lds $(obj)/head_$(BITS).o 
$(obj)/misc.o $(obj)/piggy.o FORCE
-+      $(call if_changed,ld)
-+      @:
- 
-+ifeq ($(CONFIG_X86_32),y)
+@@ -46,19 +46,34 @@ $(obj)/vmlinux.bin.all: $(vmlinux.bin.al
  ifdef CONFIG_RELOCATABLE
  $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin.all FORCE
        $(call if_changed,gzip)
-@@ -50,15 +60,35 @@ else
++$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin.all FORCE
++      $(call if_changed,bzip2)
++$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin.all FORCE
++      $(call if_changed,lzma)
+ else
  $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
        $(call if_changed,gzip)
++$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
++      $(call if_changed,bzip2)
++$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
++      $(call if_changed,lzma)
  endif
--LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T
--
+ LDFLAGS_piggy.o := -r --format binary --oformat elf32-i386 -T
+ 
  else
  $(obj)/vmlinux.bin.gz: $(obj)/vmlinux.bin FORCE
        $(call if_changed,gzip)
-+endif
++$(obj)/vmlinux.bin.bz2: $(obj)/vmlinux.bin FORCE
++      $(call if_changed,bzip2)
++$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
++      $(call if_changed,lzma)
  
--LDFLAGS_piggy.o := -r --format binary --oformat elf64-x86-64 -T
-+$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
-+      $(call if_changed,ld)
+ LDFLAGS_piggy.o := -r --format binary --oformat elf64-x86-64 -T
  endif
  
-+ifeq ($(CONFIG_KERNEL_LZMA),y)
-+targets += vmlinux.bin.lzma misc_lzma.o
++suffix_$(CONFIG_KERNEL_GZIP)  = gz
++suffix_$(CONFIG_KERNEL_BZIP2) = bz2
++suffix_$(CONFIG_KERNEL_LZMA)  = lzma
  
 -$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.gz FORCE
-+$(obj)/vmlinux: $(src)/vmlinux_$(BITS).lds $(obj)/head_$(BITS).o 
$(obj)/misc_lzma.o $(obj)/piggy.o FORCE
++$(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix_y) FORCE
        $(call if_changed,ld)
-+      @:
+diff -urNp linux-2.6.27.orig/arch/x86/boot/compressed/misc.c 
linux-2.6.27/arch/x86/boot/compressed/misc.c
+--- linux-2.6.27.orig/arch/x86/boot/compressed/misc.c  2008-10-29 
08:48:23.000000000 +0100
++++ linux-2.6.27/arch/x86/boot/compressed/misc.c       2008-10-29 
08:59:22.000000000 +0100
+@@ -116,71 +116,13 @@
+ /*
+  * gzip declarations
+  */
+-
+-#define OF(args)      args
+ #define STATIC                static
+ 
+ #undef memset
+ #undef memcpy
+ #define memzero(s, n) memset((s), 0, (n))
+ 
+-typedef unsigned char uch;
+-typedef unsigned short        ush;
+-typedef unsigned long ulg;
+-
+-/*
+- * Window size must be at least 32k, and a power of two.
+- * We don't actually have a window just a huge output buffer,
+- * so we report a 2G window size, as that should always be
+- * larger than our output buffer:
+- */
+-#define WSIZE         0x80000000
+-
+-/* Input buffer: */
+-static unsigned char  *inbuf;
+-
+-/* Sliding window buffer (and final output buffer): */
+-static unsigned char  *window;
+ 
+-/* Valid bytes in inbuf: */
+-static unsigned               insize;
+-
+-/* Index of next byte to be processed in inbuf: */
+-static unsigned               inptr;
+-
+-/* Bytes in output buffer: */
+-static unsigned               outcnt;
+-
+-/* gzip flag byte */
+-#define ASCII_FLAG    0x01 /* bit 0 set: file probably ASCII text */
+-#define CONTINUATION  0x02 /* bit 1 set: continuation of multi-part gz file */
+-#define EXTRA_FIELD   0x04 /* bit 2 set: extra field present */
+-#define ORIG_NAM      0x08 /* bit 3 set: original file name present */
+-#define COMMENT               0x10 /* bit 4 set: file comment present */
+-#define ENCRYPTED     0x20 /* bit 5 set: file is encrypted */
+-#define RESERVED      0xC0 /* bit 6, 7:  reserved */
+-
+-#define get_byte()    (inptr < insize ? inbuf[inptr++] : fill_inbuf())
+-
+-/* Diagnostic functions */
+-#ifdef DEBUG
+-#  define Assert(cond, msg) do { if (!(cond)) error(msg); } while (0)
+-#  define Trace(x)    do { fprintf x; } while (0)
+-#  define Tracev(x)   do { if (verbose) fprintf x ; } while (0)
+-#  define Tracevv(x)  do { if (verbose > 1) fprintf x ; } while (0)
+-#  define Tracec(c, x)        do { if (verbose && (c)) fprintf x ; } while (0)
+-#  define Tracecv(c, x)       do { if (verbose > 1 && (c)) fprintf x ; } 
while (0)
+-#else
+-#  define Assert(cond, msg)
+-#  define Trace(x)
+-#  define Tracev(x)
+-#  define Tracevv(x)
+-#  define Tracec(c, x)
+-#  define Tracecv(c, x)
+-#endif
+-
+-static int  fill_inbuf(void);
+-static void flush_window(void);
+ static void error(char *m);
+ 
+ /*
+@@ -189,11 +131,6 @@ static void error(char *m);
+ static struct boot_params *real_mode;         /* Pointer to real-mode data */
+ static int quiet;
+ 
+-extern unsigned char input_data[];
+-extern int input_len;
+-
+-static long bytes_out;
+-
+ static void *memset(void *s, int c, unsigned n);
+ static void *memcpy(void *dest, const void *src, unsigned n);
+ 
+@@ -213,7 +150,17 @@ static char *vidmem;
+ static int vidport;
+ static int lines, cols;
+ 
++#ifdef CONFIG_KERNEL_GZIP
+ #include "../../../../lib/inflate.c"
++#endif
 +
-+ifeq ($(CONFIG_X86_32),y)
-+ifdef CONFIG_RELOCATABLE
-+$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin.all FORCE
-+      $(call if_changed,lzma)
-+else
-+$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
-+      $(call if_changed,lzma)
-+endif
-+else
-+$(obj)/vmlinux.bin.lzma: $(obj)/vmlinux.bin FORCE
-+      $(call if_changed,lzma)
-+endif
++#ifdef CONFIG_KERNEL_BZIP2
++#include "../../../../lib/decompress_bunzip2.c"
++#endif
 +
-+$(obj)/piggy.o: $(obj)/vmlinux_lzma.scr $(obj)/vmlinux.bin.lzma FORCE
-+      $(call if_changed,ld)
-+endif
-diff -urNp linux-2.6.25.orig/arch/x86/boot/compressed/misc_lzma.c 
linux-2.6.25/arch/x86/boot/compressed/misc_lzma.c
---- linux-2.6.25.orig/arch/x86/boot/compressed/misc_lzma.c     1970-01-01 
01:00:00.000000000 +0100
-+++ linux-2.6.25/arch/x86/boot/compressed/misc_lzma.c  2008-05-08 
17:02:10.000000000 +0200
-@@ -0,0 +1,311 @@
-+/*
-+ * misc_lzma.c
-+ * 
-+ * Support for lzma compressed vmlinuz.
-+ * Based on original misc.c and GPL lzma patches found on internet.
++#ifdef CONFIG_KERNEL_LZMA
++#include "../../../../lib/decompress_unlzma.c"
++#endif
+ 
+ static void scroll(void)
+ {
+@@ -291,38 +238,6 @@ static void *memcpy(void *dest, const vo
+       return dest;
+ }
+ 
+-/* ===========================================================================
+- * Fill the input buffer. This is called only when the buffer is empty
+- * and at least one byte is really needed.
+- */
+-static int fill_inbuf(void)
+-{
+-      error("ran out of input data");
+-      return 0;
+-}
+-
+-/* ===========================================================================
+- * Write the output window window[0..outcnt-1] and update crc and bytes_out.
+- * (Used for the decompressed data only.)
+- */
+-static void flush_window(void)
+-{
+-      /* With my window equal to my output buffer
+-       * I only need to compute the crc here.
+-       */
+-      unsigned long c = crc;         /* temporary variable */
+-      unsigned n;
+-      unsigned char *in, ch;
+-
+-      in = window;
+-      for (n = 0; n < outcnt; n++) {
+-              ch = *in++;
+-              c = crc_32_tab[((int)c ^ ch) & 0xff] ^ (c >> 8);
+-      }
+-      crc = c;
+-      bytes_out += (unsigned long)outcnt;
+-      outcnt = 0;
+-}
+ 
+ static void error(char *x)
+ {
+@@ -405,12 +320,8 @@ asmlinkage void decompress_kernel(void *
+       lines = real_mode->screen_info.orig_video_lines;
+       cols = real_mode->screen_info.orig_video_cols;
+ 
+-      window = output;                /* Output buffer (Normally at 1M) */
+       free_mem_ptr     = heap;        /* Heap */
+       free_mem_end_ptr = heap + BOOT_HEAP_SIZE;
+-      inbuf  = input_data;            /* Input buffer */
+-      insize = input_len;
+-      inptr  = 0;
+ 
+ #ifdef CONFIG_X86_64
+       if ((unsigned long)output & (__KERNEL_ALIGN - 1))
+@@ -428,10 +339,9 @@ asmlinkage void decompress_kernel(void *
+ #endif
+ #endif
+ 
+-      makecrc();
+       if (!quiet)
+               putstr("\nDecompressing Linux... ");
+-      gunzip();
++      decompress(input_data, input_len, NULL, NULL, output, NULL, error);
+       parse_elf(output);
+       if (!quiet)
+               putstr("done.\nBooting the kernel.\n");
+diff -urNp linux-2.6.27.orig/drivers/block/Kconfig 
linux-2.6.27/drivers/block/Kconfig
+--- linux-2.6.27.orig/drivers/block/Kconfig    2008-10-29 08:48:02.000000000 
+0100
++++ linux-2.6.27/drivers/block/Kconfig 2008-10-29 08:54:14.000000000 +0100
+@@ -357,6 +357,30 @@ config BLK_DEV_XIP
+         will prevent RAM block device backing store memory from being
+         allocated from highmem (only a problem for highmem systems).
+ 
++config RD_BZIP2
++      bool "Initial ramdisk compressed using bzip2"
++      default n
++      depends on BLK_DEV_INITRD=y
++      help
++        Support loading of a bzip2 encoded initial ramdisk or cpio buffer
++        If unsure, say N.
++
++config RD_LZMA
++      bool "Initial ramdisk compressed using lzma"
++      default n
++      depends on BLK_DEV_INITRD=y
++      help
++        Support loading of a lzma encoded initial ramdisk or cpio buffer
++        If unsure, say N.
++
++config RD_GZIP
++      bool "Initial ramdisk compressed using gzip"
++      default y
++      depends on BLK_DEV_INITRD=y
++      help
++        Support loading of a gzip encoded initial ramdisk or cpio buffer.
++        If unsure, say Y.
++
+ config CDROM_PKTCDVD
+       tristate "Packet writing on CD/DVD media"
+       depends on !UML
+diff -urNp linux-2.6.27.orig/include/asm-x86/boot.h 
linux-2.6.27/include/asm-x86/boot.h
+--- linux-2.6.27.orig/include/asm-x86/boot.h   2008-10-29 08:47:54.000000000 
+0100
++++ linux-2.6.27/include/asm-x86/boot.h        2008-10-29 08:54:19.000000000 
+0100
+@@ -17,11 +17,21 @@
+                               + (CONFIG_PHYSICAL_ALIGN - 1)) \
+                               & ~(CONFIG_PHYSICAL_ALIGN - 1))
+ 
++#if (defined CONFIG_KERNEL_BZIP2)
++#define BOOT_HEAP_SIZE             0x400000
++#else
++
+ #ifdef CONFIG_X86_64
+ #define BOOT_HEAP_SIZE        0x7000
+-#define BOOT_STACK_SIZE       0x4000
+ #else
+ #define BOOT_HEAP_SIZE        0x4000
++#endif
++
++#endif
++
++#ifdef CONFIG_X86_64
++#define BOOT_STACK_SIZE       0x4000
++#else
+ #define BOOT_STACK_SIZE       0x1000
+ #endif
+ 
+diff -urNp linux-2.6.27.orig/include/linux/decompress/bunzip2.h 
linux-2.6.27/include/linux/decompress/bunzip2.h
+--- linux-2.6.27.orig/include/linux/decompress/bunzip2.h       1970-01-01 
01:00:00.000000000 +0100
++++ linux-2.6.27/include/linux/decompress/bunzip2.h    2008-10-29 
08:54:07.000000000 +0100
+@@ -0,0 +1,10 @@
++#ifndef DECOMPRESS_BUNZIP2_H
++#define DECOMPRESS_BUNZIP2_H
++
++int bunzip2(unsigned char *inbuf, int len,
++          int(*fill)(void*, unsigned int),
++          int(*flush)(void*, unsigned int),
++          unsigned char *output,
++          int *pos,
++          void(*error)(char *x));
++#endif
+diff -urNp linux-2.6.27.orig/include/linux/decompress/generic.h 
linux-2.6.27/include/linux/decompress/generic.h
+--- linux-2.6.27.orig/include/linux/decompress/generic.h       1970-01-01 
01:00:00.000000000 +0100
++++ linux-2.6.27/include/linux/decompress/generic.h    2008-10-29 
08:54:07.000000000 +0100
+@@ -0,0 +1,30 @@
++#ifndef DECOMPRESS_GENERIC_H
++#define DECOMPRESS_GENERIC_H
++
++/* Minimal chunksize to be read.
++ *Bzip2 prefers at least 4096
++ *Lzma prefers 0x10000 */
++#define COMPR_IOBUF_SIZE      4096
++
++typedef int (*decompress_fn) (unsigned char *inbuf, int len,
++                            int(*fill)(void*, unsigned int),
++                            int(*writebb)(void*, unsigned int),
++                            unsigned char *output,
++                            int *posp,
++                            void(*error)(char *x));
++
++/* inbuf   - input buffer
++ *len     - len of pre-read data in inbuf
++ *fill    - function to fill inbuf if empty
++ *writebb - function to write out outbug
++ *posp    - if non-null, input position (number of bytes read) will be
++ *      returned here
 + *
++ *If len != 0, the inbuf is initialized (with as much data), and fill
++ *should not be called
++ *If len = 0, the inbuf is allocated, but empty. Its size is IOBUF_SIZE
++ *fill should be called (repeatedly...) to read data, at most IOBUF_SIZE
 + */
 +
-+#undef CONFIG_PARAVIRT
-+#ifdef CONFIG_X86_64
-+#define _LINUX_STRING_H_ 1
-+#define __LINUX_BITMAP_H 1
++
++#endif
+diff -urNp linux-2.6.27.orig/include/linux/decompress/inflate.h 
linux-2.6.27/include/linux/decompress/inflate.h
+--- linux-2.6.27.orig/include/linux/decompress/inflate.h       1970-01-01 
01:00:00.000000000 +0100
++++ linux-2.6.27/include/linux/decompress/inflate.h    2008-10-29 
08:54:07.000000000 +0100
+@@ -0,0 +1,13 @@
++#ifndef INFLATE_H
++#define INFLATE_H
++
++/* Other housekeeping constants */
++#define INBUFSIZ 4096
++
++int gunzip(unsigned char *inbuf, int len,
++         int(*fill)(void*, unsigned int),
++         int(*flush)(void*, unsigned int),
++         unsigned char *output,
++         int *pos,
++         void(*error_fn)(char *x));
 +#endif
+diff -urNp linux-2.6.27.orig/include/linux/decompress/mm.h 
linux-2.6.27/include/linux/decompress/mm.h
+--- linux-2.6.27.orig/include/linux/decompress/mm.h    1970-01-01 
01:00:00.000000000 +0100
++++ linux-2.6.27/include/linux/decompress/mm.h 2008-10-29 08:59:22.000000000 
+0100
+@@ -0,0 +1,88 @@
++/*
++ * linux/compr_mm.h
++ *
++ * Memory management for pre-boot and ramdisk uncompressors
++ *
++ * Authors: Alain Knaff <[EMAIL PROTECTED]>
++ *
++ */
++
++#ifndef DECOMPR_MM_H
++#define DECOMPR_MM_H
++
++#ifdef STATIC
++
++/* Code active when included from pre-boot environment: */
 +
-+#include <linux/linkage.h>
-+#include <linux/screen_info.h>
-+#include <asm/io.h>
-+#include <asm/page.h>
-+#include <asm/boot.h>
-+
-+/* WARNING!!
-+ * This code is compiled with -fPIC and it is relocated dynamically
-+ * at run time, but no relocation processing is performed.
-+ * This means that it is not safe to place pointers in static structures.
++/* A trivial malloc implementation, adapted from
++ *  malloc by Hannu Savolainen 1993 and Matthias Urlichs 1994
 + */
++static unsigned long malloc_ptr;
++static int malloc_count;
 +
-+#define OF(args)  args
-+#define STATIC static
++static void *malloc(int size)
++{
++      void *p;
 +
-+#undef memcpy
++      if (size < 0)
++              error("Malloc error");
++      if (!malloc_ptr)
++              malloc_ptr = free_mem_ptr;
 +
-+typedef unsigned char  uch;
-+typedef unsigned short ush;
-+typedef unsigned long  ulg;
-+
-+#define WSIZE 0x80000000      /* Window size must be at least 32k,
-+                               * and a power of two
-+                               * We don't actually have a window just
-+                               * a huge output buffer so I report
-+                               * a 2G windows size, as that should
-+                               * always be larger than our output buffer.
-+                               */
++      malloc_ptr = (malloc_ptr + 3) & ~3;     /* Align */
 +
-+static uch *inbuf;    /* input buffer */
-+static uch *window;   /* Sliding window buffer, (and final output buffer) */
++      p = (void *)malloc_ptr;
++      malloc_ptr += size;
 +
-+static unsigned insize;  /* valid bytes in inbuf */
-+static unsigned inptr;   /* index of next byte to be processed in inbuf */
++      if (free_mem_end_ptr && malloc_ptr >= free_mem_end_ptr)
++              error("Out of memory");
 +
-+/* gzip flag byte */
-+#define ASCII_FLAG   0x01 /* bit 0 set: file probably ASCII text */
-+#define CONTINUATION 0x02 /* bit 1 set: continuation of multi-part gzip file 
*/
-+#define EXTRA_FIELD  0x04 /* bit 2 set: extra field present */
-+#define ORIG_NAME    0x08 /* bit 3 set: original file name present */
-+#define COMMENT      0x10 /* bit 4 set: file comment present */
-+#define ENCRYPTED    0x20 /* bit 5 set: file is encrypted */
-+#define RESERVED     0xC0 /* bit 6,7:   reserved */
++      malloc_count++;
++      return p;
++}
 +
-+#define get_byte()  (inptr < insize ? inbuf[inptr++] : fill_inbuf())
-+              
-+/* Diagnostic functions */
-+#ifdef DEBUG
-+#  define Assert(cond,msg) {if(!(cond)) error(msg);}
-+#  define Trace(x) fprintf x
-+#  define Tracev(x) {if (verbose) fprintf x ;}
-+#  define Tracevv(x) {if (verbose>1) fprintf x ;}
-+#  define Tracec(c,x) {if (verbose && (c)) fprintf x ;}
-+#  define Tracecv(c,x) {if (verbose>1 && (c)) fprintf x ;}
-+#else
-+#  define Assert(cond,msg)
-+#  define Trace(x)
-+#  define Tracev(x)
-+#  define Tracevv(x)
-+#  define Tracec(c,x)
-+#  define Tracecv(c,x)
-+#endif
++static void free(void *where)
++{
++      malloc_count--;
++      if (!malloc_count)
++              malloc_ptr = free_mem_ptr;
++}
 +
-+static int  fill_inbuf(void);
-+static void error(char *m);
-+  
-+/*
-+ * This is set up by the setup-routine at boot-time
-+ */
-+static unsigned char *real_mode; /* Pointer to real-mode data */
++#define large_malloc(a) malloc(a)
++#define large_free(a) free(a)
++
++#define set_error_fn(x)
++#define panic error
++
++#define INIT
++
++#else /* STATIC */
++
++/* Code active when compiled standalone for use when loading ramdisk: */
++
++#include <linux/kernel.h>
++#include <linux/fs.h>
++#include <linux/string.h>
++#include <linux/vmalloc.h>
++
++/* Use defines rather than static inline in order to avoid spurious
++ * warnings when not needed (indeed large_malloc / large_free are not
++ * needed by inflate */
++
++#define malloc(a) kmalloc(a, GFP_KERNEL)
++#define free(a) kfree(a)
++
++#define large_malloc(a) vmalloc(a)
++#define large_free(a) vfree(a)
++
++static void(*error)(char *m);
++#define set_error_fn(x) error = x;
++
++#define INIT __init
++#define STATIC
++
++#include <linux/init.h>
++
++#endif /* STATIC */
++
++#endif /* DECOMPR_MM_H */
+diff -urNp linux-2.6.27.orig/include/linux/decompress/unlzma.h 
linux-2.6.27/include/linux/decompress/unlzma.h
+--- linux-2.6.27.orig/include/linux/decompress/unlzma.h        1970-01-01 
01:00:00.000000000 +0100
++++ linux-2.6.27/include/linux/decompress/unlzma.h     2008-10-29 
08:54:07.000000000 +0100
+@@ -0,0 +1,12 @@
++#ifndef DECOMPRESS_UNLZMA_H
++#define DECOMPRESS_UNLZMA_H
++
++int unlzma(unsigned char *, int,
++         int(*fill)(void*, unsigned int),
++         int(*flush)(void*, unsigned int),
++         unsigned char *output,
++         int *posp,
++         void(*error)(char *x)
++      );
 +
-+#define RM_EXT_MEM_K   (*(unsigned short *)(real_mode + 0x2))
-+#ifndef STANDARD_MEMORY_BIOS_CALL
-+#define RM_ALT_MEM_K   (*(unsigned long *)(real_mode + 0x1e0))
 +#endif
-+#define RM_SCREEN_INFO (*(struct screen_info *)(real_mode+0))
+diff -urNp linux-2.6.27.orig/init/do_mounts_rd.c 
linux-2.6.27/init/do_mounts_rd.c
+--- linux-2.6.27.orig/init/do_mounts_rd.c      2008-10-29 08:48:10.000000000 
+0100
++++ linux-2.6.27/init/do_mounts_rd.c   2008-10-29 08:54:14.000000000 +0100
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/kernel-CRI-lzma-vmlinuz.patch?r1=1.1.2.4&r2=1.1.2.5&f=u

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

Reply via email to