diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /arch/s390/boot/compressed | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'arch/s390/boot/compressed')
-rw-r--r-- | arch/s390/boot/compressed/Makefile | 6 | ||||
-rw-r--r-- | arch/s390/boot/compressed/misc.c | 10 |
2 files changed, 13 insertions, 3 deletions
diff --git a/arch/s390/boot/compressed/Makefile b/arch/s390/boot/compressed/Makefile index 1c999f726a58..10e22c4ec4a7 100644 --- a/arch/s390/boot/compressed/Makefile +++ b/arch/s390/boot/compressed/Makefile | |||
@@ -7,7 +7,8 @@ | |||
7 | BITS := $(if $(CONFIG_64BIT),64,31) | 7 | BITS := $(if $(CONFIG_64BIT),64,31) |
8 | 8 | ||
9 | targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \ | 9 | targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 \ |
10 | vmlinux.bin.lzma vmlinux.bin.lzo misc.o piggy.o sizes.h head$(BITS).o | 10 | vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo misc.o piggy.o \ |
11 | sizes.h head$(BITS).o | ||
11 | 12 | ||
12 | KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2 | 13 | KBUILD_CFLAGS := -m$(BITS) -D__KERNEL__ $(LINUX_INCLUDE) -O2 |
13 | KBUILD_CFLAGS += $(cflags-y) | 14 | KBUILD_CFLAGS += $(cflags-y) |
@@ -48,6 +49,7 @@ suffix-$(CONFIG_KERNEL_GZIP) := gz | |||
48 | suffix-$(CONFIG_KERNEL_BZIP2) := bz2 | 49 | suffix-$(CONFIG_KERNEL_BZIP2) := bz2 |
49 | suffix-$(CONFIG_KERNEL_LZMA) := lzma | 50 | suffix-$(CONFIG_KERNEL_LZMA) := lzma |
50 | suffix-$(CONFIG_KERNEL_LZO) := lzo | 51 | suffix-$(CONFIG_KERNEL_LZO) := lzo |
52 | suffix-$(CONFIG_KERNEL_XZ) := xz | ||
51 | 53 | ||
52 | $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) | 54 | $(obj)/vmlinux.bin.gz: $(vmlinux.bin.all-y) |
53 | $(call if_changed,gzip) | 55 | $(call if_changed,gzip) |
@@ -57,6 +59,8 @@ $(obj)/vmlinux.bin.lzma: $(vmlinux.bin.all-y) | |||
57 | $(call if_changed,lzma) | 59 | $(call if_changed,lzma) |
58 | $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) | 60 | $(obj)/vmlinux.bin.lzo: $(vmlinux.bin.all-y) |
59 | $(call if_changed,lzo) | 61 | $(call if_changed,lzo) |
62 | $(obj)/vmlinux.bin.xz: $(vmlinux.bin.all-y) | ||
63 | $(call if_changed,xzkern) | ||
60 | 64 | ||
61 | LDFLAGS_piggy.o := -r --format binary --oformat $(LD_BFD) -T | 65 | LDFLAGS_piggy.o := -r --format binary --oformat $(LD_BFD) -T |
62 | $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) | 66 | $(obj)/piggy.o: $(obj)/vmlinux.scr $(obj)/vmlinux.bin.$(suffix-y) |
diff --git a/arch/s390/boot/compressed/misc.c b/arch/s390/boot/compressed/misc.c index 0851eb1e919e..028f23ea81d1 100644 --- a/arch/s390/boot/compressed/misc.c +++ b/arch/s390/boot/compressed/misc.c | |||
@@ -19,6 +19,7 @@ | |||
19 | #undef memset | 19 | #undef memset |
20 | #undef memcpy | 20 | #undef memcpy |
21 | #undef memmove | 21 | #undef memmove |
22 | #define memmove memmove | ||
22 | #define memzero(s, n) memset((s), 0, (n)) | 23 | #define memzero(s, n) memset((s), 0, (n)) |
23 | 24 | ||
24 | /* Symbols defined by linker scripts */ | 25 | /* Symbols defined by linker scripts */ |
@@ -54,6 +55,10 @@ static unsigned long free_mem_end_ptr; | |||
54 | #include "../../../../lib/decompress_unlzo.c" | 55 | #include "../../../../lib/decompress_unlzo.c" |
55 | #endif | 56 | #endif |
56 | 57 | ||
58 | #ifdef CONFIG_KERNEL_XZ | ||
59 | #include "../../../../lib/decompress_unxz.c" | ||
60 | #endif | ||
61 | |||
57 | extern _sclp_print_early(const char *); | 62 | extern _sclp_print_early(const char *); |
58 | 63 | ||
59 | int puts(const char *s) | 64 | int puts(const char *s) |
@@ -133,11 +138,12 @@ unsigned long decompress_kernel(void) | |||
133 | unsigned long output_addr; | 138 | unsigned long output_addr; |
134 | unsigned char *output; | 139 | unsigned char *output; |
135 | 140 | ||
136 | check_ipl_parmblock((void *) 0, (unsigned long) output + SZ__bss_start); | 141 | output_addr = ((unsigned long) &_end + HEAP_SIZE + 4095UL) & -4096UL; |
142 | check_ipl_parmblock((void *) 0, output_addr + SZ__bss_start); | ||
137 | memset(&_bss, 0, &_ebss - &_bss); | 143 | memset(&_bss, 0, &_ebss - &_bss); |
138 | free_mem_ptr = (unsigned long)&_end; | 144 | free_mem_ptr = (unsigned long)&_end; |
139 | free_mem_end_ptr = free_mem_ptr + HEAP_SIZE; | 145 | free_mem_end_ptr = free_mem_ptr + HEAP_SIZE; |
140 | output = (unsigned char *) ((free_mem_end_ptr + 4095UL) & -4096UL); | 146 | output = (unsigned char *) output_addr; |
141 | 147 | ||
142 | #ifdef CONFIG_BLK_DEV_INITRD | 148 | #ifdef CONFIG_BLK_DEV_INITRD |
143 | /* | 149 | /* |