* [PATCH] Revert "init/Kconfig: add option to disable kernel compression" @ 2013-11-15 5:43 H. Peter Anvin 2013-11-15 16:51 ` [PATCH] [FIX] init/Kconfig: fix option to disable kernel compression Christian Ruppert 0 siblings, 1 reply; 9+ messages in thread From: H. Peter Anvin @ 2013-11-15 5:43 UTC (permalink / raw) To: Linus Torvalds Cc: Linux Kernel Mailing List, Pavel Roskin, Ingo Molnar, Thomas Gleixner, H. Peter Anvin, Christian Ruppert, Andrew Morton From: "H. Peter Anvin" <hpa@zytor.com> This reverts commit 69f0554ec261fd686ac7fa1c598cc9eb27b83a80. This patch breaks randconfig on at least the x86-64 architecture, and most likely on others. There is work underway to support uncompressed kernels in a generic way, but it looks like it will amount to rewriting the support from scratch; see the LKML thread in the Link: for info. Therefore, revert this change and wait for the fix. Reported-by: Pavel Roskin <proski@gnu.org> Cc: Christian Ruppert <christian.ruppert@abilis.com> Cc: Andrew Morton <akpm@linux-foundation.org> Link: http://lkml.kernel.org/r/20131113113418.167b8ffd@IRBT4585 Signed-off-by: H. Peter Anvin <hpa@zytor.com> --- init/Kconfig | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/init/Kconfig b/init/Kconfig index 5496f307988e..bc8911fab28e 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -118,6 +118,7 @@ config HAVE_KERNEL_LZ4 choice prompt "Kernel compression mode" default KERNEL_GZIP + depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 help The linux kernel is a kind of self-extracting executable. Several compression algorithms are available, which differ @@ -136,13 +137,6 @@ choice If in doubt, select 'gzip' -config KERNEL_UNCOMPRESSED - bool "No compression" - help - No compression at all. The kernel is huge but the compression and - decompression times are zero. - This is usually not what you want. - config KERNEL_GZIP bool "Gzip" depends on HAVE_KERNEL_GZIP -- 1.8.3.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH] [FIX] init/Kconfig: fix option to disable kernel compression 2013-11-15 5:43 [PATCH] Revert "init/Kconfig: add option to disable kernel compression" H. Peter Anvin @ 2013-11-15 16:51 ` Christian Ruppert 2013-11-16 9:42 ` Vineet Gupta 0 siblings, 1 reply; 9+ messages in thread From: Christian Ruppert @ 2013-11-15 16:51 UTC (permalink / raw) To: H. Peter Anvin, Linus Torvalds Cc: Linux Kernel Mailing List, Pavel Roskin, Ingo Molnar, Thomas Gleixner, Christian Ruppert, Andrew Morton, Sam Ravnborg, Noam Camus, Joe Perches Some architectures with self-decompressing kernel images did not compile with commit 69f0554ec261fd686ac7fa1c598cc9eb27b83a80 because they don't provide a non-decompression mechanism for uncompressed kernels. Rectify this problem by allowing uncompressed kernels only for architectures which explicitly state they support them. Signed-off-by: Christian Ruppert <christian.ruppert@abilis.com> --- arch/arc/Kconfig | 2 ++ init/Kconfig | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 2ee0c9b..15f4c3d 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -21,6 +21,8 @@ config ARC select HAVE_ARCH_KGDB select HAVE_ARCH_TRACEHOOK select HAVE_IOREMAP_PROT + select HAVE_KERNEL_UNCOMPRESSED + select HAVE_KERNEL_GZIP select HAVE_KPROBES select HAVE_KRETPROBES select HAVE_MEMBLOCK diff --git a/init/Kconfig b/init/Kconfig index 5496f30..d4baf2e 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -97,6 +97,9 @@ config LOCALVERSION_AUTO which is done within the script "scripts/setlocalversion".) +config HAVE_KERNEL_UNCOMPRESSED + bool + config HAVE_KERNEL_GZIP bool @@ -118,6 +121,7 @@ config HAVE_KERNEL_LZ4 choice prompt "Kernel compression mode" default KERNEL_GZIP + depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 || HAVE_KERNEL_UNCOMPRESSED help The linux kernel is a kind of self-extracting executable. Several compression algorithms are available, which differ @@ -138,6 +142,7 @@ choice config KERNEL_UNCOMPRESSED bool "No compression" + depends on HAVE_KERNEL_UNCOMPRESSED help No compression at all. The kernel is huge but the compression and decompression times are zero. -- 1.8.4 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] [FIX] init/Kconfig: fix option to disable kernel compression 2013-11-15 16:51 ` [PATCH] [FIX] init/Kconfig: fix option to disable kernel compression Christian Ruppert @ 2013-11-16 9:42 ` Vineet Gupta 2013-11-18 9:48 ` Christian Ruppert 0 siblings, 1 reply; 9+ messages in thread From: Vineet Gupta @ 2013-11-16 9:42 UTC (permalink / raw) To: Christian Ruppert, H. Peter Anvin, Linus Torvalds Cc: Linux Kernel Mailing List, Pavel Roskin, Ingo Molnar, Thomas Gleixner, Andrew Morton, Sam Ravnborg, Noam Camus, Joe Perches On 11/15/2013 10:21 PM, Christian Ruppert wrote: > Some architectures with self-decompressing kernel images did not compile > with commit 69f0554ec261fd686ac7fa1c598cc9eb27b83a80 because they don't > provide a non-decompression mechanism for uncompressed kernels. > > Rectify this problem by allowing uncompressed kernels only for architectures > which explicitly state they support them. > > Signed-off-by: Christian Ruppert <christian.ruppert@abilis.com> Acked-by: Vineet Gupta <vgupta@synopsys.com> > --- > arch/arc/Kconfig | 2 ++ > init/Kconfig | 5 +++++ > 2 files changed, 7 insertions(+) > > diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig > index 2ee0c9b..15f4c3d 100644 > --- a/arch/arc/Kconfig > +++ b/arch/arc/Kconfig > @@ -21,6 +21,8 @@ config ARC > select HAVE_ARCH_KGDB > select HAVE_ARCH_TRACEHOOK > select HAVE_IOREMAP_PROT > + select HAVE_KERNEL_UNCOMPRESSED > + select HAVE_KERNEL_GZIP > select HAVE_KPROBES > select HAVE_KRETPROBES > select HAVE_MEMBLOCK > diff --git a/init/Kconfig b/init/Kconfig > index 5496f30..d4baf2e 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -97,6 +97,9 @@ config LOCALVERSION_AUTO > > which is done within the script "scripts/setlocalversion".) > > +config HAVE_KERNEL_UNCOMPRESSED > + bool > + > config HAVE_KERNEL_GZIP > bool > > @@ -118,6 +121,7 @@ config HAVE_KERNEL_LZ4 > choice > prompt "Kernel compression mode" > default KERNEL_GZIP > + depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 || HAVE_KERNEL_UNCOMPRESSED > help > The linux kernel is a kind of self-extracting executable. > Several compression algorithms are available, which differ > @@ -138,6 +142,7 @@ choice > > config KERNEL_UNCOMPRESSED > bool "No compression" > + depends on HAVE_KERNEL_UNCOMPRESSED > help > No compression at all. The kernel is huge but the compression and > decompression times are zero. > ^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] [FIX] init/Kconfig: fix option to disable kernel compression 2013-11-16 9:42 ` Vineet Gupta @ 2013-11-18 9:48 ` Christian Ruppert 2013-11-18 9:51 ` [PATCH 1/2] init/Kconfig: add " Christian Ruppert 2013-11-18 9:51 ` [PATCH 2/2] x86: Add support for uncompressed kernel images Christian Ruppert 0 siblings, 2 replies; 9+ messages in thread From: Christian Ruppert @ 2013-11-18 9:48 UTC (permalink / raw) To: Vineet Gupta Cc: H. Peter Anvin, Linus Torvalds, Linux Kernel Mailing List, Pavel Roskin, Ingo Molnar, Thomas Gleixner, Andrew Morton, Sam Ravnborg, Noam Camus, Joe Perches On Sat, Nov 16, 2013 at 03:12:56PM +0530, Vineet Gupta wrote: > On 11/15/2013 10:21 PM, Christian Ruppert wrote: > > Some architectures with self-decompressing kernel images did not compile > > with commit 69f0554ec261fd686ac7fa1c598cc9eb27b83a80 because they don't > > provide a non-decompression mechanism for uncompressed kernels. > > > > Rectify this problem by allowing uncompressed kernels only for architectures > > which explicitly state they support them. > > > > Signed-off-by: Christian Ruppert <christian.ruppert@abilis.com> > Acked-by: Vineet Gupta <vgupta@synopsys.com> Looks like the revert was applied to main line (and not this fix). In the follow-up the complete (fixed) patch set rebased on the latest main line: First patch for Kconfig/ARC and as requested a cleaned up second patch for x86. I could only test the second patch on one physical machine and one VM so some more testing might be required on x86. Greetings, Christian ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/2] init/Kconfig: add option to disable kernel compression 2013-11-18 9:48 ` Christian Ruppert @ 2013-11-18 9:51 ` Christian Ruppert 2013-11-18 9:51 ` [PATCH 2/2] x86: Add support for uncompressed kernel images Christian Ruppert 1 sibling, 0 replies; 9+ messages in thread From: Christian Ruppert @ 2013-11-18 9:51 UTC (permalink / raw) To: Vineet Gupta, H. Peter Anvin, Andrew Morton Cc: Linus Torvalds, Linux Kernel Mailing List, Pavel Roskin, Ingo Molnar, Thomas Gleixner, Sam Ravnborg, Noam Camus, Joe Perches, Christian Ruppert Some ARC users say they can boot faster with without kernel compression. This probably depends on things like the FLASH chip they use etc. Until now, kernel compression can only be disabled by removing "select HAVE_<compression>" lines from the architecture Kconfig. So add the Kconfig logic to permit disabling of kernel compression. Signed-off-by: Christian Ruppert <christian.ruppert@abilis.com> --- arch/arc/Kconfig | 2 ++ init/Kconfig | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletions(-) diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig index 2ee0c9b..15f4c3d 100644 --- a/arch/arc/Kconfig +++ b/arch/arc/Kconfig @@ -21,6 +21,8 @@ config ARC select HAVE_ARCH_KGDB select HAVE_ARCH_TRACEHOOK select HAVE_IOREMAP_PROT + select HAVE_KERNEL_UNCOMPRESSED + select HAVE_KERNEL_GZIP select HAVE_KPROBES select HAVE_KRETPROBES select HAVE_MEMBLOCK diff --git a/init/Kconfig b/init/Kconfig index 3fc8a2f..a21e94b 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -97,6 +97,9 @@ config LOCALVERSION_AUTO which is done within the script "scripts/setlocalversion".) +config HAVE_KERNEL_UNCOMPRESSED + bool + config HAVE_KERNEL_GZIP bool @@ -118,7 +121,7 @@ config HAVE_KERNEL_LZ4 choice prompt "Kernel compression mode" default KERNEL_GZIP - depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 + depends on HAVE_KERNEL_GZIP || HAVE_KERNEL_BZIP2 || HAVE_KERNEL_LZMA || HAVE_KERNEL_XZ || HAVE_KERNEL_LZO || HAVE_KERNEL_LZ4 || HAVE_KERNEL_UNCOMPRESSED help The linux kernel is a kind of self-extracting executable. Several compression algorithms are available, which differ @@ -137,6 +140,14 @@ choice If in doubt, select 'gzip' +config KERNEL_UNCOMPRESSED + bool "No compression" + depends on HAVE_KERNEL_UNCOMPRESSED + help + No compression at all. The kernel is huge but the compression and + decompression times are zero. + This is usually not what you want. + config KERNEL_GZIP bool "Gzip" depends on HAVE_KERNEL_GZIP -- 1.7.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/2] x86: Add support for uncompressed kernel images 2013-11-18 9:48 ` Christian Ruppert 2013-11-18 9:51 ` [PATCH 1/2] init/Kconfig: add " Christian Ruppert @ 2013-11-18 9:51 ` Christian Ruppert 2013-11-18 11:25 ` Borislav Petkov 1 sibling, 1 reply; 9+ messages in thread From: Christian Ruppert @ 2013-11-18 9:51 UTC (permalink / raw) To: Vineet Gupta, H. Peter Anvin, Andrew Morton Cc: Linus Torvalds, Linux Kernel Mailing List, Pavel Roskin, Ingo Molnar, Thomas Gleixner, Sam Ravnborg, Noam Camus, Joe Perches, Christian Ruppert Signed-off-by: Christian Ruppert <christian.ruppert@abilis.com> --- arch/x86/Kconfig | 1 + arch/x86/boot/compressed/Makefile | 14 ++++++------ arch/x86/boot/compressed/misc.c | 4 +++ lib/decompress_copy.c | 44 +++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 lib/decompress_copy.c diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index e903c71..009349f 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -62,6 +62,7 @@ config X86 select USER_STACKTRACE_SUPPORT select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_DMA_API_DEBUG + select HAVE_KERNEL_UNCOMPRESSED select HAVE_KERNEL_GZIP select HAVE_KERNEL_BZIP2 select HAVE_KERNEL_LZMA diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile index dcd90df..f65e444 100644 --- a/arch/x86/boot/compressed/Makefile +++ b/arch/x86/boot/compressed/Makefile @@ -67,16 +67,16 @@ $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE $(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE $(call if_changed,lz4) -suffix-$(CONFIG_KERNEL_GZIP) := gz -suffix-$(CONFIG_KERNEL_BZIP2) := bz2 -suffix-$(CONFIG_KERNEL_LZMA) := lzma -suffix-$(CONFIG_KERNEL_XZ) := xz -suffix-$(CONFIG_KERNEL_LZO) := lzo -suffix-$(CONFIG_KERNEL_LZ4) := lz4 +suffix-$(CONFIG_KERNEL_GZIP) := .gz +suffix-$(CONFIG_KERNEL_BZIP2) := .bz2 +suffix-$(CONFIG_KERNEL_LZMA) := .lzma +suffix-$(CONFIG_KERNEL_XZ) := .xz +suffix-$(CONFIG_KERNEL_LZO) := .lzo +suffix-$(CONFIG_KERNEL_LZ4) := .lz4 quiet_cmd_mkpiggy = MKPIGGY $@ cmd_mkpiggy = $(obj)/mkpiggy $< > $@ || ( rm -f $@ ; false ) targets += piggy.S -$(obj)/piggy.S: $(obj)/vmlinux.bin.$(suffix-y) $(obj)/mkpiggy FORCE +$(obj)/piggy.S: $(obj)/vmlinux.bin$(suffix-y) $(obj)/mkpiggy FORCE $(call if_changed,mkpiggy) diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c index 434f077..c210314 100644 --- a/arch/x86/boot/compressed/misc.c +++ b/arch/x86/boot/compressed/misc.c @@ -149,6 +149,10 @@ static int lines, cols; #include "../../../../lib/decompress_unlz4.c" #endif +#ifdef CONFIG_KERNEL_UNCOMPRESSED +#include "../../../../lib/decompress_copy.c" +#endif + static void scroll(void) { int i; diff --git a/lib/decompress_copy.c b/lib/decompress_copy.c new file mode 100644 index 0000000..109ef22 --- /dev/null +++ b/lib/decompress_copy.c @@ -0,0 +1,44 @@ +#include <linux/decompress/mm.h> + +#define NOZIP_BUFSZ (16 * 1024) +STATIC int INIT nozip(unsigned char *buf, int len, + int(*fill)(void*, unsigned int), + int(*flush)(void*, unsigned int), + unsigned char *outbuf, + int *pos, + void(*error)(char *x)) +{ + char *b; + + if (buf) + b = buf; + else + b = malloc(NOZIP_BUFSZ); + + if (!b) { + error("Out of memory while allocating buffer"); + return -1; + } + + if (flush) { + if (!len) + len = fill(b, NOZIP_BUFSZ); + + len = flush(b, len); + } else { + if (!len) + len = fill(outbuf, NOZIP_BUFSZ); + else + memcpy(outbuf, b, len); + } + + if (pos) + *pos = len; + + if (!buf) + free(b); + + return 0; +} + +#define decompress nozip -- 1.7.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2] x86: Add support for uncompressed kernel images 2013-11-18 9:51 ` [PATCH 2/2] x86: Add support for uncompressed kernel images Christian Ruppert @ 2013-11-18 11:25 ` Borislav Petkov 2013-11-18 13:48 ` [PATCH 2/2 v2] " Christian Ruppert 0 siblings, 1 reply; 9+ messages in thread From: Borislav Petkov @ 2013-11-18 11:25 UTC (permalink / raw) To: Christian Ruppert Cc: Vineet Gupta, H. Peter Anvin, Andrew Morton, Linus Torvalds, Linux Kernel Mailing List, Pavel Roskin, Ingo Molnar, Thomas Gleixner, Sam Ravnborg, Noam Camus, Joe Perches On Mon, Nov 18, 2013 at 10:51:51AM +0100, Christian Ruppert wrote: How about a commit message ... somewhere around here would be nice, for example :) > Signed-off-by: Christian Ruppert <christian.ruppert@abilis.com> > --- > arch/x86/Kconfig | 1 + > arch/x86/boot/compressed/Makefile | 14 ++++++------ > arch/x86/boot/compressed/misc.c | 4 +++ > lib/decompress_copy.c | 44 +++++++++++++++++++++++++++++++++++++ > 4 files changed, 56 insertions(+), 7 deletions(-) > create mode 100644 lib/decompress_copy.c -- Regards/Gruss, Boris. Sent from a fat crate under my desk. Formatting is fine. -- ^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 2/2 v2] x86: Add support for uncompressed kernel images 2013-11-18 11:25 ` Borislav Petkov @ 2013-11-18 13:48 ` Christian Ruppert 2013-12-16 8:59 ` Christian Ruppert 0 siblings, 1 reply; 9+ messages in thread From: Christian Ruppert @ 2013-11-18 13:48 UTC (permalink / raw) To: Borislav Petkov, Vineet Gupta, H. Peter Anvin, Andrew Morton Cc: Linus Torvalds, Linux Kernel Mailing List, Pavel Roskin, Ingo Molnar, Thomas Gleixner, Sam Ravnborg, Noam Camus, Joe Perches, Christian Ruppert There seems to be some interest to enable uncompressed kernels also for x86 in addition to (embedded) ARC platforms. Add the code to support uncompressed kernels to lib/, select the respective Kconfig options for the x86 architecture and use this code in the x86 kernel self-decompressor. Signed-off-by: Christian Ruppert <christian.ruppert@abilis.com> --- arch/x86/Kconfig | 1 + arch/x86/boot/compressed/Makefile | 14 ++++++------ arch/x86/boot/compressed/misc.c | 4 +++ lib/decompress_copy.c | 44 +++++++++++++++++++++++++++++++++++++ 4 files changed, 56 insertions(+), 7 deletions(-) create mode 100644 lib/decompress_copy.c diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig index e903c71..009349f 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig @@ -62,6 +62,7 @@ config X86 select USER_STACKTRACE_SUPPORT select HAVE_REGS_AND_STACK_ACCESS_API select HAVE_DMA_API_DEBUG + select HAVE_KERNEL_UNCOMPRESSED select HAVE_KERNEL_GZIP select HAVE_KERNEL_BZIP2 select HAVE_KERNEL_LZMA diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile index dcd90df..f65e444 100644 --- a/arch/x86/boot/compressed/Makefile +++ b/arch/x86/boot/compressed/Makefile @@ -67,16 +67,16 @@ $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) FORCE $(obj)/vmlinux.bin.lz4: $(vmlinux.bin.all-y) FORCE $(call if_changed,lz4) -suffix-$(CONFIG_KERNEL_GZIP) := gz -suffix-$(CONFIG_KERNEL_BZIP2) := bz2 -suffix-$(CONFIG_KERNEL_LZMA) := lzma -suffix-$(CONFIG_KERNEL_XZ) := xz -suffix-$(CONFIG_KERNEL_LZO) := lzo -suffix-$(CONFIG_KERNEL_LZ4) := lz4 +suffix-$(CONFIG_KERNEL_GZIP) := .gz +suffix-$(CONFIG_KERNEL_BZIP2) := .bz2 +suffix-$(CONFIG_KERNEL_LZMA) := .lzma +suffix-$(CONFIG_KERNEL_XZ) := .xz +suffix-$(CONFIG_KERNEL_LZO) := .lzo +suffix-$(CONFIG_KERNEL_LZ4) := .lz4 quiet_cmd_mkpiggy = MKPIGGY $@ cmd_mkpiggy = $(obj)/mkpiggy $< > $@ || ( rm -f $@ ; false ) targets += piggy.S -$(obj)/piggy.S: $(obj)/vmlinux.bin.$(suffix-y) $(obj)/mkpiggy FORCE +$(obj)/piggy.S: $(obj)/vmlinux.bin$(suffix-y) $(obj)/mkpiggy FORCE $(call if_changed,mkpiggy) diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c index 434f077..c210314 100644 --- a/arch/x86/boot/compressed/misc.c +++ b/arch/x86/boot/compressed/misc.c @@ -149,6 +149,10 @@ static int lines, cols; #include "../../../../lib/decompress_unlz4.c" #endif +#ifdef CONFIG_KERNEL_UNCOMPRESSED +#include "../../../../lib/decompress_copy.c" +#endif + static void scroll(void) { int i; diff --git a/lib/decompress_copy.c b/lib/decompress_copy.c new file mode 100644 index 0000000..109ef22 --- /dev/null +++ b/lib/decompress_copy.c @@ -0,0 +1,44 @@ +#include <linux/decompress/mm.h> + +#define NOZIP_BUFSZ (16 * 1024) +STATIC int INIT nozip(unsigned char *buf, int len, + int(*fill)(void*, unsigned int), + int(*flush)(void*, unsigned int), + unsigned char *outbuf, + int *pos, + void(*error)(char *x)) +{ + char *b; + + if (buf) + b = buf; + else + b = malloc(NOZIP_BUFSZ); + + if (!b) { + error("Out of memory while allocating buffer"); + return -1; + } + + if (flush) { + if (!len) + len = fill(b, NOZIP_BUFSZ); + + len = flush(b, len); + } else { + if (!len) + len = fill(outbuf, NOZIP_BUFSZ); + else + memcpy(outbuf, b, len); + } + + if (pos) + *pos = len; + + if (!buf) + free(b); + + return 0; +} + +#define decompress nozip -- 1.7.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH 2/2 v2] x86: Add support for uncompressed kernel images 2013-11-18 13:48 ` [PATCH 2/2 v2] " Christian Ruppert @ 2013-12-16 8:59 ` Christian Ruppert 0 siblings, 0 replies; 9+ messages in thread From: Christian Ruppert @ 2013-12-16 8:59 UTC (permalink / raw) To: Borislav Petkov, Vineet Gupta, H. Peter Anvin, Andrew Morton Cc: Linus Torvalds, Linux Kernel Mailing List, Pavel Roskin, Ingo Molnar, Thomas Gleixner, Sam Ravnborg, Noam Camus, Joe Perches On Mon, Nov 18, 2013 at 02:48:30PM +0100, Christian Ruppert wrote: > There seems to be some interest to enable uncompressed kernels also for x86 > in addition to (embedded) ARC platforms. > > Add the code to support uncompressed kernels to lib/, select the respective > Kconfig options for the x86 architecture and use this code in the x86 kernel > self-decompressor. Any news on this? Was someone able to take a look at / test this patch? I have given it some more testing and encountered no issues so far. Greetings, Christian ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2013-12-16 9:00 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-11-15 5:43 [PATCH] Revert "init/Kconfig: add option to disable kernel compression" H. Peter Anvin 2013-11-15 16:51 ` [PATCH] [FIX] init/Kconfig: fix option to disable kernel compression Christian Ruppert 2013-11-16 9:42 ` Vineet Gupta 2013-11-18 9:48 ` Christian Ruppert 2013-11-18 9:51 ` [PATCH 1/2] init/Kconfig: add " Christian Ruppert 2013-11-18 9:51 ` [PATCH 2/2] x86: Add support for uncompressed kernel images Christian Ruppert 2013-11-18 11:25 ` Borislav Petkov 2013-11-18 13:48 ` [PATCH 2/2 v2] " Christian Ruppert 2013-12-16 8:59 ` Christian Ruppert
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).