aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/boot/compressed
diff options
context:
space:
mode:
authorNicolas Pitre <nicolas.pitre@linaro.org>2011-04-19 16:13:23 -0400
committerNicolas Pitre <nico@fluxnic.net>2011-05-07 00:08:00 -0400
commite40f1e9fb342a2e38fae164861a8cff248ceb87b (patch)
tree90f68e7bed7a21aee4cc3bfcf8916053a62aaf6b /arch/arm/boot/compressed
parent34cc1a8fe0d3f89f3602b49f1121a99d2bfc5efc (diff)
ARM: zImage: simplify decompress_kernel()
The return value for decompress_kernel() is no longer used. Furthermore, this was obtained and stored in a variable called output_ptr which is a complete misnomer for what is actually the size of the decompressed kernel image. Let's get rid of it. Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org> Tested-by: Shawn Guo <shawn.guo@linaro.org> Tested-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/boot/compressed')
-rw-r--r--arch/arm/boot/compressed/misc.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c
index 4657e877bf8f..51b87b54a7ef 100644
--- a/arch/arm/boot/compressed/misc.c
+++ b/arch/arm/boot/compressed/misc.c
@@ -26,8 +26,6 @@ unsigned int __machine_arch_type;
26#include <linux/linkage.h> 26#include <linux/linkage.h>
27#include <asm/string.h> 27#include <asm/string.h>
28 28
29#include <asm/unaligned.h>
30
31 29
32static void putstr(const char *ptr); 30static void putstr(const char *ptr);
33extern void error(char *x); 31extern void error(char *x);
@@ -149,13 +147,12 @@ void *memcpy(void *__dest, __const void *__src, size_t __n)
149} 147}
150 148
151/* 149/*
152 * gzip delarations 150 * gzip declarations
153 */ 151 */
154extern char input_data[]; 152extern char input_data[];
155extern char input_data_end[]; 153extern char input_data_end[];
156 154
157unsigned char *output_data; 155unsigned char *output_data;
158unsigned long output_ptr;
159 156
160unsigned long free_mem_ptr; 157unsigned long free_mem_ptr;
161unsigned long free_mem_end_ptr; 158unsigned long free_mem_end_ptr;
@@ -183,13 +180,11 @@ asmlinkage void __div0(void)
183extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x)); 180extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x));
184 181
185 182
186unsigned long 183void
187decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, 184decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
188 unsigned long free_mem_ptr_end_p, 185 unsigned long free_mem_ptr_end_p,
189 int arch_id) 186 int arch_id)
190{ 187{
191 unsigned char *tmp;
192
193 output_data = (unsigned char *)output_start; 188 output_data = (unsigned char *)output_start;
194 free_mem_ptr = free_mem_ptr_p; 189 free_mem_ptr = free_mem_ptr_p;
195 free_mem_end_ptr = free_mem_ptr_end_p; 190 free_mem_end_ptr = free_mem_ptr_end_p;
@@ -197,12 +192,8 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
197 192
198 arch_decomp_setup(); 193 arch_decomp_setup();
199 194
200 tmp = (unsigned char *) (((unsigned long)input_data_end) - 4);
201 output_ptr = get_unaligned_le32(tmp);
202
203 putstr("Uncompressing Linux..."); 195 putstr("Uncompressing Linux...");
204 do_decompress(input_data, input_data_end - input_data, 196 do_decompress(input_data, input_data_end - input_data,
205 output_data, error); 197 output_data, error);
206 putstr(" done, booting the kernel.\n"); 198 putstr(" done, booting the kernel.\n");
207 return output_ptr;
208} 199}