[U-Boot] [PATCH 1/2] env_callback: Mark find_env_callback as static

This is not called outside of env_callback.c so mark static, remove from <env_callback.h>
Cc: Joe Hershberger joe.hershberger@ni.com Signed-off-by: Tom Rini trini@ti.com --- common/env_callback.c | 2 +- include/env_callback.h | 1 - 2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/common/env_callback.c b/common/env_callback.c index 78ca367..78aafb4 100644 --- a/common/env_callback.c +++ b/common/env_callback.c @@ -31,7 +31,7 @@ DECLARE_GLOBAL_DATA_PTR; /* * Look up a callback function pointer by name */ -struct env_clbk_tbl *find_env_callback(const char *name) +static struct env_clbk_tbl *find_env_callback(const char *name) { struct env_clbk_tbl *clbkp; int i; diff --git a/include/env_callback.h b/include/env_callback.h index 62428d1..dfc41ae 100644 --- a/include/env_callback.h +++ b/include/env_callback.h @@ -67,7 +67,6 @@ struct env_clbk_tbl { int flags); };
-struct env_clbk_tbl *find_env_callback(const char *); void env_callback_init(ENTRY *var_entry);
/*

With CONFIG_SPL_NET_SUPPORT set we bring in most of the environment related code. This in turn means that while we discard the callback saftey checks in the environment, we had still needed their __start/__end linker symbols. In most cases this had been working because we generated u-boot.lst for the main U-Boot build prior to creating u-boot-spl.lds. With a sufficiently large machine this is not the case and exposed this latent bug which is that as of f8cfcf1 there are no callback linker entries so not __start/__end symbol was generated.
As the environment is not user modifiable in this particular run-time (for any variable that had a callback associated with it) we simply provide an empty env_callback_init in SPL.
Cc: Joe Hershberger joe.hershberger@ni.com Cc: Scott Wood scottwood@freescale.com Tested-by: Tom Rini trini@ti.com (Ran with am335x_evm_usbspl build) Signed-off-by: Tom Rini trini@ti.com --- common/Makefile | 3 --- common/spl/spl.c | 12 ++++++++++++ 2 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/common/Makefile b/common/Makefile index 719fc23..0e11964 100644 --- a/common/Makefile +++ b/common/Makefile @@ -211,10 +211,7 @@ COBJS-y += cmd_nvedit.o COBJS-y += env_common.o COBJS-$(CONFIG_ENV_IS_IN_FLASH) += env_flash.o COBJS-$(CONFIG_SPL_YMODEM_SUPPORT) += xyzModem.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += cmd_nvedit.o COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_attr.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_callback.o -COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_common.o COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_flags.o COBJS-$(CONFIG_SPL_NET_SUPPORT) += env_nowhere.o COBJS-$(CONFIG_SPL_NET_SUPPORT) += miiphyutil.o diff --git a/common/spl/spl.c b/common/spl/spl.c index 6715e0d..1ac2e4b 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -32,6 +32,7 @@ #include <image.h> #include <malloc.h> #include <linux/compiler.h> +#include <env_callback.h>
DECLARE_GLOBAL_DATA_PTR;
@@ -271,3 +272,14 @@ void preloader_console_init(void) spl_display_print(); #endif } + +/* + * When CONFIG_SPL_NET_SUPPORT is set, we bring in and require a large + * subset of the environment code. However, as the environment is not + * modifable interactively in this case we remove the environment + * callback support from the binary. To do so we must provide an empty + * env_callback_init function. + */ +void env_callback_init(ENTRY *var_entry) +{ +}

Hi Tom,
On Tue, Mar 12, 2013 at 11:16 AM, Tom Rini trini@ti.com wrote:
With CONFIG_SPL_NET_SUPPORT set we bring in most of the environment related code. This in turn means that while we discard the callback saftey checks in the environment, we had still needed their __start/__end linker symbols. In most cases this had been working because we generated u-boot.lst for the main U-Boot build prior to creating u-boot-spl.lds. With a sufficiently large machine this is not the case and exposed this latent bug which is that as of f8cfcf1 there are no callback linker entries so not __start/__end symbol was generated.
As the environment is not user modifiable in this particular run-time (for any variable that had a callback associated with it) we simply provide an empty env_callback_init in SPL.
Cc: Joe Hershberger joe.hershberger@ni.com Cc: Scott Wood scottwood@freescale.com Tested-by: Tom Rini trini@ti.com (Ran with am335x_evm_usbspl build) Signed-off-by: Tom Rini trini@ti.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

On Tue, Mar 12, 2013 at 12:16:51PM -0400, Tom Rini wrote:
With CONFIG_SPL_NET_SUPPORT set we bring in most of the environment related code. This in turn means that while we discard the callback saftey checks in the environment, we had still needed their __start/__end linker symbols. In most cases this had been working because we generated u-boot.lst for the main U-Boot build prior to creating u-boot-spl.lds. With a sufficiently large machine this is not the case and exposed this latent bug which is that as of f8cfcf1 there are no callback linker entries so not __start/__end symbol was generated.
As the environment is not user modifiable in this particular run-time (for any variable that had a callback associated with it) we simply provide an empty env_callback_init in SPL.
Cc: Joe Hershberger joe.hershberger@ni.com Cc: Scott Wood scottwood@freescale.com Tested-by: Tom Rini trini@ti.com (Ran with am335x_evm_usbspl build) Signed-off-by: Tom Rini trini@ti.com
As this part is no longer needed with Albert's LG updates, I'm dropping 2/2.

Hi Tom,
On Tue, Mar 12, 2013 at 11:16 AM, Tom Rini trini@ti.com wrote:
This is not called outside of env_callback.c so mark static, remove from <env_callback.h>
Cc: Joe Hershberger joe.hershberger@ni.com Signed-off-by: Tom Rini trini@ti.com
Acked-by: Joe Hershberger joe.hershberger@ni.com

On Tue, Mar 12, 2013 at 06:16:50AM -0000, Tom Rini wrote:
This is not called outside of env_callback.c so mark static, remove from <env_callback.h>
Cc: Joe Hershberger joe.hershberger@ni.com Signed-off-by: Tom Rini trini@ti.com Acked-by: Joe Hershberger joe.hershberger@ni.com
Applied to u-boot/master, thanks!
participants (2)
-
Joe Hershberger
-
Tom Rini