summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2015-06-09 09:26:44 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2015-06-09 09:26:44 +0200
commit7a429bfb3b11a4af5ab0a328a22c354b3838a7a7 (patch)
treeba8f6854c8a267c1ea6a5a591456de52ca45e02e /common
parent760e652a7aca15c3ba67f3e7ad4488d49f7a629a (diff)
parent79eba3029f330682d9ba1f5d248720c761de14a7 (diff)
downloadbarebox-7a429bfb3b11a4af5ab0a328a22c354b3838a7a7.tar.gz
barebox-7a429bfb3b11a4af5ab0a328a22c354b3838a7a7.tar.xz
Merge branch 'for-next/misc'
Diffstat (limited to 'common')
-rw-r--r--common/console_common.c14
-rw-r--r--common/startup.c28
-rw-r--r--common/tlsfbits.h6
3 files changed, 34 insertions, 14 deletions
diff --git a/common/console_common.c b/common/console_common.c
index 1e362ab4e4..2c82c6fd46 100644
--- a/common/console_common.c
+++ b/common/console_common.c
@@ -106,15 +106,23 @@ static void pr_puts(int level, const char *str)
log_clean(barebox_log_max_messages - 1);
if (barebox_log_max_messages >= 0) {
- log = xzalloc(sizeof(*log));
- log->msg = xstrdup(str);
+ log = malloc(sizeof(*log));
+ if (!log)
+ goto nolog;
+
+ log->msg = strdup(str);
+ if (!log->msg) {
+ free(log);
+ goto nolog;
+ }
+
log->timestamp = get_time_ns();
log->level = level;
list_add_tail(&log->list, &barebox_logbuf);
barebox_logbuf_num_messages++;
}
}
-
+nolog:
if (level > barebox_loglevel)
return;
diff --git a/common/startup.c b/common/startup.c
index e59b06d533..6178fc5353 100644
--- a/common/startup.c
+++ b/common/startup.c
@@ -62,6 +62,24 @@ static int mount_root(void)
fs_initcall(mount_root);
#endif
+#ifdef CONFIG_ENV_HANDLING
+static int load_environment(void)
+{
+ const char *default_environment_path;
+
+ default_environment_path = default_environment_path_get();
+
+ if (IS_ENABLED(CONFIG_DEFAULT_ENVIRONMENT))
+ defaultenv_load("/env", 0);
+
+ envfs_load(default_environment_path, "/env", 0);
+ nvvar_load();
+
+ return 0;
+}
+environment_initcall(load_environment);
+#endif
+
int (*barebox_main)(void);
void __noreturn start_barebox(void)
@@ -84,16 +102,6 @@ void __noreturn start_barebox(void)
pr_debug("initcalls done\n");
- if (IS_ENABLED(CONFIG_ENV_HANDLING)) {
- char *default_environment_path = default_environment_path_get();
-
- if (IS_ENABLED(CONFIG_DEFAULT_ENVIRONMENT))
- defaultenv_load("/env", 0);
-
- envfs_load(default_environment_path, "/env", 0);
- nvvar_load();
- }
-
if (IS_ENABLED(CONFIG_COMMAND_SUPPORT)) {
pr_info("running /env/bin/init...\n");
diff --git a/common/tlsfbits.h b/common/tlsfbits.h
index 93466e46a8..edbac80636 100644
--- a/common/tlsfbits.h
+++ b/common/tlsfbits.h
@@ -3,6 +3,10 @@
#include <linux/bitops.h>
+#ifdef CONFIG_64BIT
+#define TLSF_64BIT
+#endif
+
/*
** Architecture-specific bit manipulation routines.
**
@@ -33,7 +37,7 @@ static int tlsf_fls(unsigned int word)
/* Possibly 64-bit version of tlsf_fls. */
#if defined (TLSF_64BIT)
-tlsf_decl int tlsf_fls_sizet(size_t size)
+static int tlsf_fls_sizet(size_t size)
{
int high = (int)(size >> 32);
int bits = 0;