diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2020-07-27 21:58:41 +0200 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2020-07-27 21:58:41 +0200 |
commit | 8b0bf1ee077715ceb0535fbda799038ea62baef8 (patch) | |
tree | 2ef39a48cc78e4b2ec9d37643d4f7c6c320f0341 /common | |
parent | 67f0e7aedefcb06b38ef50ddd32b0a280bbb10e8 (diff) | |
parent | a66ffa8dab14b82f9f9edddb03d6358b861ff5c0 (diff) | |
download | barebox-8b0bf1ee077715ceb0535fbda799038ea62baef8.tar.gz barebox-8b0bf1ee077715ceb0535fbda799038ea62baef8.tar.xz |
Merge branch 'for-next/misc'
Diffstat (limited to 'common')
-rw-r--r-- | common/Kconfig | 7 | ||||
-rw-r--r-- | common/globalvar.c | 5 | ||||
-rw-r--r-- | common/serdev.c | 5 | ||||
-rw-r--r-- | common/startup.c | 31 |
4 files changed, 27 insertions, 21 deletions
diff --git a/common/Kconfig b/common/Kconfig index b59dc39d4c..642ff15d32 100644 --- a/common/Kconfig +++ b/common/Kconfig @@ -312,6 +312,13 @@ config MALLOC_DUMMY memory is never freed. This is suitable for well tested noninteractive environments only. +config MALLOC_LIBC + bool "libc malloc" + depends on SANDBOX + help + select this option to use the libc malloc implementation in the sandbox. + This is benefecial for testing with external memory integrity tools. + endchoice config MODULES diff --git a/common/globalvar.c b/common/globalvar.c index c87f2c9339..98a028a68a 100644 --- a/common/globalvar.c +++ b/common/globalvar.c @@ -563,10 +563,7 @@ int globalvar_add_simple_bitmask(const char *name, unsigned long *value, p = dev_add_param_bitmask(&global_device, name, NULL, NULL, value, names, max, NULL); - if (IS_ERR(p)) - return PTR_ERR(p); - - return 0; + return PTR_ERR_OR_ZERO(p); } int globalvar_add_simple_ip(const char *name, IPaddr_t *ip) diff --git a/common/serdev.c b/common/serdev.c index c50b3bd26a..4bf11b1618 100644 --- a/common/serdev.c +++ b/common/serdev.c @@ -84,10 +84,7 @@ int serdev_device_open(struct serdev_device *serdev) p = dev_add_param_uint64(serdev->dev, "polling_interval", serdev_device_set_polling_interval, NULL, &serdev->polling_interval, "%llu", serdev); - if (IS_ERR(p)) - return PTR_ERR(p); - - return 0; + return PTR_ERR_OR_ZERO(p); } unsigned int serdev_device_set_baudrate(struct serdev_device *serdev, diff --git a/common/startup.c b/common/startup.c index 511675ed55..71a28a7be8 100644 --- a/common/startup.c +++ b/common/startup.c @@ -235,7 +235,7 @@ void set_autoboot_state(enum autoboot_state autoboot) */ enum autoboot_state do_autoboot_countdown(void) { - enum autoboot_state autoboot_state; + static enum autoboot_state autoboot_state = AUTOBOOT_UNKNOWN; unsigned flags = CONSOLE_COUNTDOWN_EXTERN; int ret; struct stat s; @@ -243,6 +243,9 @@ enum autoboot_state do_autoboot_countdown(void) char *abortkeys = NULL; unsigned char outkey; + if (autoboot_state != AUTOBOOT_UNKNOWN) + return autoboot_state; + if (global_autoboot_state != AUTOBOOT_COUNTDOWN) return global_autoboot_state; @@ -281,19 +284,8 @@ enum autoboot_state do_autoboot_countdown(void) return autoboot_state; } -static int run_init(void) +static int register_autoboot_vars(void) { - DIR *dir; - struct dirent *d; - const char *initdir = "/env/init"; - bool env_bin_init_exists; - enum autoboot_state autoboot; - struct stat s; - - /* - * Register autoboot variables here as they might be altered by - * init scripts. - */ globalvar_add_simple_enum("autoboot_abort_key", &global_autoboot_abort_key, global_autoboot_abort_keys, @@ -305,6 +297,19 @@ static int run_init(void) global_autoboot_states, ARRAY_SIZE(global_autoboot_states)); + return 0; +} +postcore_initcall(register_autoboot_vars); + +static int run_init(void) +{ + DIR *dir; + struct dirent *d; + const char *initdir = "/env/init"; + bool env_bin_init_exists; + enum autoboot_state autoboot; + struct stat s; + setenv("PATH", "/env/bin"); /* Run legacy /env/bin/init if it exists */ |