summaryrefslogtreecommitdiffstats
path: root/arch/s390/boot
diff options
context:
space:
mode:
authorVasily Gorbik <gor@linux.ibm.com>2018-07-25 15:01:11 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2018-10-09 11:21:05 +0200
commit7516fc11e44e73f1fcf8a3808dd88f82142e6585 (patch)
tree61d2831bd787831b2bd91ed1c3f9e0b248b46e6d /arch/s390/boot
parents390: rescue initrd as early as possible (diff)
downloadlinux-7516fc11e44e73f1fcf8a3808dd88f82142e6585.tar.xz
linux-7516fc11e44e73f1fcf8a3808dd88f82142e6585.zip
s390/decompressor: clean up and rename compressed/misc.c
Since compressed/misc.c is conditionally compiled move error reporting code to boot/main.c. With that being done compressed/misc.c has no "miscellaneous" functions left and is all about plain decompression now. Rename it accordingly. Reviewed-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/boot')
-rw-r--r--arch/s390/boot/compressed/Makefile2
-rw-r--r--arch/s390/boot/compressed/decompressor.c (renamed from arch/s390/boot/compressed/misc.c)25
-rw-r--r--arch/s390/boot/compressed/decompressor.h1
-rw-r--r--arch/s390/boot/startup.c10
4 files changed, 14 insertions, 24 deletions
diff --git a/arch/s390/boot/compressed/Makefile b/arch/s390/boot/compressed/Makefile
index a69746cd83be..fd7cfc7b93a5 100644
--- a/arch/s390/boot/compressed/Makefile
+++ b/arch/s390/boot/compressed/Makefile
@@ -9,7 +9,7 @@ KCOV_INSTRUMENT := n
GCOV_PROFILE := n
UBSAN_SANITIZE := n
-obj-y := $(if $(CONFIG_KERNEL_UNCOMPRESSED),,misc.o) piggy.o info.o
+obj-y := $(if $(CONFIG_KERNEL_UNCOMPRESSED),,decompressor.o) piggy.o info.o
targets := vmlinux.lds vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2
targets += vmlinux.bin.xz vmlinux.bin.lzma vmlinux.bin.lzo vmlinux.bin.lz4
targets += info.bin $(obj-y)
diff --git a/arch/s390/boot/compressed/misc.c b/arch/s390/boot/compressed/decompressor.c
index b773f81f5bff..45046630c56a 100644
--- a/arch/s390/boot/compressed/misc.c
+++ b/arch/s390/boot/compressed/decompressor.c
@@ -7,11 +7,9 @@
* Author(s): Martin Schwidefsky <schwidefsky@de.ibm.com>
*/
-#include <linux/uaccess.h>
+#include <linux/kernel.h>
+#include <linux/string.h>
#include <asm/page.h>
-#include <asm/sclp.h>
-#include <asm/ipl.h>
-#include <asm/sections.h>
#include "decompressor.h"
/*
@@ -31,8 +29,6 @@ extern char _end[];
extern unsigned char _compressed_start[];
extern unsigned char _compressed_end[];
-static void error(char *m);
-
#ifdef CONFIG_HAVE_KERNEL_BZIP2
#define HEAP_SIZE 0x400000
#else
@@ -66,23 +62,6 @@ static unsigned long free_mem_end_ptr = (unsigned long) _end + HEAP_SIZE;
#include "../../../../lib/decompress_unxz.c"
#endif
-static int puts(const char *s)
-{
- sclp_early_printk(s);
- return 0;
-}
-
-static void error(char *x)
-{
- unsigned long long psw = 0x000a0000deadbeefULL;
-
- puts("\n\n");
- puts(x);
- puts("\n\n -- System halted");
-
- asm volatile("lpsw %0" : : "Q" (psw));
-}
-
#define decompress_offset ALIGN((unsigned long)_end + HEAP_SIZE, PAGE_SIZE)
unsigned long mem_safe_offset(void)
diff --git a/arch/s390/boot/compressed/decompressor.h b/arch/s390/boot/compressed/decompressor.h
index 90d382d501d7..b774425dcb5f 100644
--- a/arch/s390/boot/compressed/decompressor.h
+++ b/arch/s390/boot/compressed/decompressor.h
@@ -8,6 +8,7 @@ static inline void *decompress_kernel(void) {}
void *decompress_kernel(void);
#endif
unsigned long mem_safe_offset(void);
+void error(char *m);
struct vmlinux_info {
unsigned long default_lma;
diff --git a/arch/s390/boot/startup.c b/arch/s390/boot/startup.c
index 5aeac7564e67..81199ca4a513 100644
--- a/arch/s390/boot/startup.c
+++ b/arch/s390/boot/startup.c
@@ -1,9 +1,19 @@
// SPDX-License-Identifier: GPL-2.0
#include <linux/string.h>
#include <asm/setup.h>
+#include <asm/sclp.h>
#include "compressed/decompressor.h"
#include "boot.h"
+void error(char *x)
+{
+ sclp_early_printk("\n\n");
+ sclp_early_printk(x);
+ sclp_early_printk("\n\n -- System halted");
+
+ disabled_wait(0xdeadbeef);
+}
+
#ifdef CONFIG_KERNEL_UNCOMPRESSED
unsigned long mem_safe_offset(void)
{