提交 e40f1e9f 编写于 作者: N Nicolas Pitre 提交者: Nicolas Pitre

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: NNicolas Pitre <nicolas.pitre@linaro.org>
Tested-by: NShawn Guo <shawn.guo@linaro.org>
Tested-by: NTony Lindgren <tony@atomide.com>
上级 34cc1a8f
...@@ -26,8 +26,6 @@ unsigned int __machine_arch_type; ...@@ -26,8 +26,6 @@ unsigned int __machine_arch_type;
#include <linux/linkage.h> #include <linux/linkage.h>
#include <asm/string.h> #include <asm/string.h>
#include <asm/unaligned.h>
static void putstr(const char *ptr); static void putstr(const char *ptr);
extern void error(char *x); extern void error(char *x);
...@@ -149,13 +147,12 @@ void *memcpy(void *__dest, __const void *__src, size_t __n) ...@@ -149,13 +147,12 @@ void *memcpy(void *__dest, __const void *__src, size_t __n)
} }
/* /*
* gzip delarations * gzip declarations
*/ */
extern char input_data[]; extern char input_data[];
extern char input_data_end[]; extern char input_data_end[];
unsigned char *output_data; unsigned char *output_data;
unsigned long output_ptr;
unsigned long free_mem_ptr; unsigned long free_mem_ptr;
unsigned long free_mem_end_ptr; unsigned long free_mem_end_ptr;
...@@ -183,13 +180,11 @@ asmlinkage void __div0(void) ...@@ -183,13 +180,11 @@ asmlinkage void __div0(void)
extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x)); extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x));
unsigned long void
decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
unsigned long free_mem_ptr_end_p, unsigned long free_mem_ptr_end_p,
int arch_id) int arch_id)
{ {
unsigned char *tmp;
output_data = (unsigned char *)output_start; output_data = (unsigned char *)output_start;
free_mem_ptr = free_mem_ptr_p; free_mem_ptr = free_mem_ptr_p;
free_mem_end_ptr = free_mem_ptr_end_p; 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,12 +192,8 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p,
arch_decomp_setup(); arch_decomp_setup();
tmp = (unsigned char *) (((unsigned long)input_data_end) - 4);
output_ptr = get_unaligned_le32(tmp);
putstr("Uncompressing Linux..."); putstr("Uncompressing Linux...");
do_decompress(input_data, input_data_end - input_data, do_decompress(input_data, input_data_end - input_data,
output_data, error); output_data, error);
putstr(" done, booting the kernel.\n"); putstr(" done, booting the kernel.\n");
return output_ptr;
} }
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册