diff options
Diffstat (limited to 'arch/arm/boot/compressed/misc.c')
-rw-r--r-- | arch/arm/boot/compressed/misc.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/arm/boot/compressed/misc.c b/arch/arm/boot/compressed/misc.c index 51b87b54a7ef..65871a7ba0d7 100644 --- a/arch/arm/boot/compressed/misc.c +++ b/arch/arm/boot/compressed/misc.c | |||
@@ -177,7 +177,7 @@ asmlinkage void __div0(void) | |||
177 | error("Attempting division by 0!"); | 177 | error("Attempting division by 0!"); |
178 | } | 178 | } |
179 | 179 | ||
180 | extern void do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x)); | 180 | extern int do_decompress(u8 *input, int len, u8 *output, void (*error)(char *x)); |
181 | 181 | ||
182 | 182 | ||
183 | void | 183 | void |
@@ -185,6 +185,8 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, | |||
185 | unsigned long free_mem_ptr_end_p, | 185 | unsigned long free_mem_ptr_end_p, |
186 | int arch_id) | 186 | int arch_id) |
187 | { | 187 | { |
188 | int ret; | ||
189 | |||
188 | output_data = (unsigned char *)output_start; | 190 | output_data = (unsigned char *)output_start; |
189 | free_mem_ptr = free_mem_ptr_p; | 191 | free_mem_ptr = free_mem_ptr_p; |
190 | free_mem_end_ptr = free_mem_ptr_end_p; | 192 | free_mem_end_ptr = free_mem_ptr_end_p; |
@@ -193,7 +195,10 @@ decompress_kernel(unsigned long output_start, unsigned long free_mem_ptr_p, | |||
193 | arch_decomp_setup(); | 195 | arch_decomp_setup(); |
194 | 196 | ||
195 | putstr("Uncompressing Linux..."); | 197 | putstr("Uncompressing Linux..."); |
196 | do_decompress(input_data, input_data_end - input_data, | 198 | ret = do_decompress(input_data, input_data_end - input_data, |
197 | output_data, error); | 199 | output_data, error); |
198 | putstr(" done, booting the kernel.\n"); | 200 | if (ret) |
201 | error("decompressor returned an error"); | ||
202 | else | ||
203 | putstr(" done, booting the kernel.\n"); | ||
199 | } | 204 | } |