Commit 0936d4f3 authored by Masami Hiramatsu's avatar Masami Hiramatsu Committed by Richard Weinberger

um: Use os_warn to print out pre-boot warning/error messages

Use os_warn() instead of printf/fprintf to print out
pre-boot warning/error messages to stderr.
Note that the help message and version message are
kept to print out to stdout, because user explicitly
specifies those options to get such information.
Signed-off-by: default avatarMasami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: default avatarRichard Weinberger <richard@nod.at>
parent 721ccae8
...@@ -89,7 +89,7 @@ void __init setup_physmem(unsigned long start, unsigned long reserve_end, ...@@ -89,7 +89,7 @@ void __init setup_physmem(unsigned long start, unsigned long reserve_end,
offset = uml_reserved - uml_physmem; offset = uml_reserved - uml_physmem;
map_size = len - offset; map_size = len - offset;
if(map_size <= 0) { if(map_size <= 0) {
printf("Too few physical memory! Needed=%d, given=%d\n", os_warn("Too few physical memory! Needed=%lu, given=%lu\n",
offset, len); offset, len);
exit(1); exit(1);
} }
...@@ -99,7 +99,7 @@ void __init setup_physmem(unsigned long start, unsigned long reserve_end, ...@@ -99,7 +99,7 @@ void __init setup_physmem(unsigned long start, unsigned long reserve_end,
err = os_map_memory((void *) uml_reserved, physmem_fd, offset, err = os_map_memory((void *) uml_reserved, physmem_fd, offset,
map_size, 1, 1, 1); map_size, 1, 1, 1);
if (err < 0) { if (err < 0) {
printf("setup_physmem - mapping %ld bytes of memory at 0x%p " os_warn("setup_physmem - mapping %ld bytes of memory at 0x%p "
"failed - errno = %d\n", map_size, "failed - errno = %d\n", map_size,
(void *) uml_reserved, err); (void *) uml_reserved, err);
exit(1); exit(1);
......
...@@ -34,7 +34,7 @@ static char __initdata command_line[COMMAND_LINE_SIZE] = { 0 }; ...@@ -34,7 +34,7 @@ static char __initdata command_line[COMMAND_LINE_SIZE] = { 0 };
static void __init add_arg(char *arg) static void __init add_arg(char *arg)
{ {
if (strlen(command_line) + strlen(arg) + 1 > COMMAND_LINE_SIZE) { if (strlen(command_line) + strlen(arg) + 1 > COMMAND_LINE_SIZE) {
printf("add_arg: Too many command line arguments!\n"); os_warn("add_arg: Too many command line arguments!\n");
exit(1); exit(1);
} }
if (strlen(command_line) > 0) if (strlen(command_line) > 0)
...@@ -126,6 +126,7 @@ static const char *usage_string = ...@@ -126,6 +126,7 @@ static const char *usage_string =
static int __init uml_version_setup(char *line, int *add) static int __init uml_version_setup(char *line, int *add)
{ {
/* Explicitly use printf() to show version in stdout */
printf("%s\n", init_utsname()->release); printf("%s\n", init_utsname()->release);
exit(0); exit(0);
...@@ -154,8 +155,8 @@ __uml_setup("root=", uml_root_setup, ...@@ -154,8 +155,8 @@ __uml_setup("root=", uml_root_setup,
static int __init no_skas_debug_setup(char *line, int *add) static int __init no_skas_debug_setup(char *line, int *add)
{ {
printf("'debug' is not necessary to gdb UML in skas mode - run \n"); os_warn("'debug' is not necessary to gdb UML in skas mode - run\n");
printf("'gdb linux'\n"); os_warn("'gdb linux'\n");
return 0; return 0;
} }
...@@ -171,6 +172,7 @@ static int __init Usage(char *line, int *add) ...@@ -171,6 +172,7 @@ static int __init Usage(char *line, int *add)
printf(usage_string, init_utsname()->release); printf(usage_string, init_utsname()->release);
p = &__uml_help_start; p = &__uml_help_start;
/* Explicitly use printf() to show help in stdout */
while (p < &__uml_help_end) { while (p < &__uml_help_end) {
printf("%s", *p); printf("%s", *p);
p++; p++;
......
...@@ -16,14 +16,14 @@ static int __init set_umid_arg(char *name, int *add) ...@@ -16,14 +16,14 @@ static int __init set_umid_arg(char *name, int *add)
int err; int err;
if (umid_inited) { if (umid_inited) {
printf("umid already set\n"); os_warn("umid already set\n");
return 0; return 0;
} }
*add = 0; *add = 0;
err = set_umid(name); err = set_umid(name);
if (err == -EEXIST) if (err == -EEXIST)
printf("umid '%s' already in use\n", name); os_warn("umid '%s' already in use\n", name);
else if (!err) else if (!err)
umid_inited = 1; umid_inited = 1;
......
...@@ -136,7 +136,7 @@ int main(int argc, char**argv) ...@@ -136,7 +136,7 @@ int main(int argc, char**argv)
int ret; int ret;
argc--; argc--;
if (!argc) { if (!argc) {
fprintf(stderr, "Not enough arguments\n"); os_warn("Not enough arguments\n");
return 1; return 1;
} }
argv++; argv++;
......
...@@ -74,8 +74,8 @@ static void install_fatal_handler(int sig) ...@@ -74,8 +74,8 @@ static void install_fatal_handler(int sig)
action.sa_restorer = NULL; action.sa_restorer = NULL;
action.sa_handler = last_ditch_exit; action.sa_handler = last_ditch_exit;
if (sigaction(sig, &action, NULL) < 0) { if (sigaction(sig, &action, NULL) < 0) {
printf("failed to install handler for signal %d - errno = %d\n", os_warn("failed to install handler for signal %d "
sig, errno); "- errno = %d\n", sig, errno);
exit(1); exit(1);
} }
} }
...@@ -175,7 +175,7 @@ int __init main(int argc, char **argv, char **envp) ...@@ -175,7 +175,7 @@ int __init main(int argc, char **argv, char **envp)
/* disable SIGIO for the fds and set SIGIO to be ignored */ /* disable SIGIO for the fds and set SIGIO to be ignored */
err = deactivate_all_fds(); err = deactivate_all_fds();
if (err) if (err)
printf("deactivate_all_fds failed, errno = %d\n", -err); os_warn("deactivate_all_fds failed, errno = %d\n", -err);
/* /*
* Let any pending signals fire now. This ensures * Let any pending signals fire now. This ensures
......
...@@ -82,7 +82,7 @@ static char * __init choose_tempdir(void) ...@@ -82,7 +82,7 @@ static char * __init choose_tempdir(void)
dir = fallback_dir; dir = fallback_dir;
warn: warn:
printf("Warning: tempdir %s is not on tmpfs\n", dir); os_warn("Warning: tempdir %s is not on tmpfs\n", dir);
done: done:
/* Make a copy since getenv results may not remain valid forever. */ /* Make a copy since getenv results may not remain valid forever. */
return strdup(dir); return strdup(dir);
...@@ -100,7 +100,7 @@ static int __init make_tempfile(const char *template) ...@@ -100,7 +100,7 @@ static int __init make_tempfile(const char *template)
if (tempdir == NULL) { if (tempdir == NULL) {
tempdir = choose_tempdir(); tempdir = choose_tempdir();
if (tempdir == NULL) { if (tempdir == NULL) {
fprintf(stderr, "Failed to choose tempdir: %s\n", os_warn("Failed to choose tempdir: %s\n",
strerror(errno)); strerror(errno));
return -1; return -1;
} }
...@@ -125,7 +125,7 @@ static int __init make_tempfile(const char *template) ...@@ -125,7 +125,7 @@ static int __init make_tempfile(const char *template)
strcat(tempname, template); strcat(tempname, template);
fd = mkstemp(tempname); fd = mkstemp(tempname);
if (fd < 0) { if (fd < 0) {
fprintf(stderr, "open - cannot create %s: %s\n", tempname, os_warn("open - cannot create %s: %s\n", tempname,
strerror(errno)); strerror(errno));
goto out; goto out;
} }
...@@ -197,10 +197,10 @@ void __init check_tmpexec(void) ...@@ -197,10 +197,10 @@ void __init check_tmpexec(void)
os_info("Checking PROT_EXEC mmap in %s...", tempdir); os_info("Checking PROT_EXEC mmap in %s...", tempdir);
if (addr == MAP_FAILED) { if (addr == MAP_FAILED) {
err = errno; err = errno;
printf("%s\n", strerror(err)); os_warn("%s\n", strerror(err));
close(fd); close(fd);
if (err == EPERM) if (err == EPERM)
printf("%s must be not mounted noexec\n", tempdir); os_warn("%s must be not mounted noexec\n", tempdir);
exit(1); exit(1);
} }
os_info("OK\n"); os_info("OK\n");
......
...@@ -351,7 +351,7 @@ int __init parse_iomem(char *str, int *add) ...@@ -351,7 +351,7 @@ int __init parse_iomem(char *str, int *add)
driver = str; driver = str;
file = strchr(str,','); file = strchr(str,',');
if (file == NULL) { if (file == NULL) {
fprintf(stderr, "parse_iomem : failed to parse iomem\n"); os_warn("parse_iomem : failed to parse iomem\n");
goto out; goto out;
} }
*file = '\0'; *file = '\0';
......
...@@ -354,7 +354,7 @@ char *get_umid(void) ...@@ -354,7 +354,7 @@ char *get_umid(void)
static int __init set_uml_dir(char *name, int *add) static int __init set_uml_dir(char *name, int *add)
{ {
if (*name == '\0') { if (*name == '\0') {
printf("uml_dir can't be an empty string\n"); os_warn("uml_dir can't be an empty string\n");
return 0; return 0;
} }
...@@ -365,7 +365,7 @@ static int __init set_uml_dir(char *name, int *add) ...@@ -365,7 +365,7 @@ static int __init set_uml_dir(char *name, int *add)
uml_dir = malloc(strlen(name) + 2); uml_dir = malloc(strlen(name) + 2);
if (uml_dir == NULL) { if (uml_dir == NULL) {
printf("Failed to malloc uml_dir - error = %d\n", errno); os_warn("Failed to malloc uml_dir - error = %d\n", errno);
/* /*
* Return 0 here because do_initcalls doesn't look at * Return 0 here because do_initcalls doesn't look at
...@@ -390,8 +390,8 @@ static void remove_umid_dir(void) ...@@ -390,8 +390,8 @@ static void remove_umid_dir(void)
sprintf(dir, "%s%s", uml_dir, umid); sprintf(dir, "%s%s", uml_dir, umid);
err = remove_files_and_dir(dir); err = remove_files_and_dir(dir);
if (err) if (err)
printf("remove_umid_dir - remove_files_and_dir failed with " os_warn("%s - remove_files_and_dir failed with err = %d\n",
"err = %d\n", err); __func__, err);
} }
__uml_exitcall(remove_umid_dir); __uml_exitcall(remove_umid_dir);
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment