summaryrefslogtreecommitdiffstats
path: root/arch/x86/boot/compressed/misc.c
diff options
context:
space:
mode:
authorKees Cook <keescook@chromium.org>2016-05-03 00:51:00 +0200
committerIngo Molnar <mingo@kernel.org>2016-05-03 08:15:58 +0200
commitdc425a6e140bca99bdb4823e9909c9d9b8ba36b6 (patch)
treeb8d0da2590a05c1afe45492277bfb5bb729e0e65 /arch/x86/boot/compressed/misc.c
parentx86/boot: Correctly bounds-check relocations (diff)
downloadlinux-dc425a6e140bca99bdb4823e9909c9d9b8ba36b6.tar.xz
linux-dc425a6e140bca99bdb4823e9909c9d9b8ba36b6.zip
x86/boot: Extract error reporting functions
Currently to use warn(), a caller would need to include misc.h. However, this means they would get the (unavailable during compressed boot) gcc built-in memcpy family of functions. But since string.c is defining these memcpy functions for use by misc.c, we end up in a weird circular dependency. To break this loop, move the error reporting functions outside of misc.c with their own header so that they can be independently included by other sources. Since the screen-writing routines use memmove(), keep the low-level *_putstr() functions in misc.c. Signed-off-by: Kees Cook <keescook@chromium.org> Cc: Andy Lutomirski <luto@amacapital.net> Cc: Baoquan He <bhe@redhat.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Borislav Petkov <bp@suse.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Lasse Collin <lasse.collin@tukaani.org> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: One Thousand Gnomes <gnomes@lxorguk.ukuu.org.uk> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Yinghai Lu <yinghai@kernel.org> Link: http://lkml.kernel.org/r/1462229461-3370-2-git-send-email-keescook@chromium.org Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/boot/compressed/misc.c')
-rw-r--r--arch/x86/boot/compressed/misc.c18
1 files changed, 1 insertions, 17 deletions
diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
index 8f0253d8c7ff..9536d778149e 100644
--- a/arch/x86/boot/compressed/misc.c
+++ b/arch/x86/boot/compressed/misc.c
@@ -12,6 +12,7 @@
*/
#include "misc.h"
+#include "error.h"
#include "../string.h"
#include "../voffset.h"
@@ -36,7 +37,6 @@
#define memmove memmove
/* Functions used by the included decompressor code below. */
-static void error(char *m);
void *memmove(void *dest, const void *src, size_t n);
/*
@@ -169,22 +169,6 @@ void __puthex(unsigned long value)
}
}
-void warn(char *m)
-{
- error_putstr("\n\n");
- error_putstr(m);
- error_putstr("\n\n");
-}
-
-static void error(char *m)
-{
- warn(m);
- error_putstr(" -- System halted");
-
- while (1)
- asm("hlt");
-}
-
#if CONFIG_X86_NEED_RELOCS
static void handle_relocations(void *output, unsigned long output_len)
{