forked from Minki/linux
dc425a6e14
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>
23 lines
429 B
C
23 lines
429 B
C
/*
|
|
* Callers outside of misc.c need access to the error reporting routines,
|
|
* but the *_putstr() functions need to stay in misc.c because of how
|
|
* memcpy() and memmove() are defined for the compressed boot environment.
|
|
*/
|
|
#include "misc.h"
|
|
|
|
void warn(char *m)
|
|
{
|
|
error_putstr("\n\n");
|
|
error_putstr(m);
|
|
error_putstr("\n\n");
|
|
}
|
|
|
|
void error(char *m)
|
|
{
|
|
warn(m);
|
|
error_putstr(" -- System halted");
|
|
|
|
while (1)
|
|
asm("hlt");
|
|
}
|