Fix incorrect use of getenv() before relocation
A large number of boards incorrectly used getenv() in their board init code running before relocation. In some cases this caused U-Boot to hang when certain environment variables grew too long. Fix the code to use getenv_r(). Signed-off-by: Wolfgang Denk <wd@denx.de> Cc: Stefan Roese <sr@denx.de> Cc: The LEOX team <team@leox.org> Cc: Michael Schwingen <michael@schwingen.org> Cc: Georg Schardt <schardt@team-ctech.de> Cc: Werner Pfister <Pfister_Werner@intercontrol.de> Cc: Dirk Eibach <eibach@gdsys.de> Cc: Peter De Schrijver <p2@mind.be> Cc: John Zhan <zhanz@sinovee.com> Cc: Rishi Bhattacharya <rishi@ti.com> Cc: Peter Tyser <ptyser@xes-inc.com>
This commit is contained in:
@@ -133,12 +133,13 @@ static int board_rev(void)
|
||||
|
||||
int checkboard (void)
|
||||
{
|
||||
char *s = getenv ("serial#");
|
||||
char buf[64];
|
||||
int i = getenv_f("serial#", buf, sizeof(buf));
|
||||
|
||||
printf ("Board: ALPR");
|
||||
if (s != NULL) {
|
||||
puts (", serial# ");
|
||||
puts (s);
|
||||
if (i > 0) {
|
||||
puts(", serial# ");
|
||||
puts(buf);
|
||||
}
|
||||
printf(" (Rev. %d)\n", board_rev());
|
||||
|
||||
|
||||
@@ -335,13 +335,14 @@ void after_reloc (ulong dest_addr, gd_t * gd)
|
||||
|
||||
int checkboard (void)
|
||||
{
|
||||
char *s = getenv("serial#");
|
||||
char buf[64];
|
||||
int i = getenv_f("serial#", buf, sizeof(buf));
|
||||
|
||||
printf("Board: %s", CONFIG_SYS_BOARD_NAME);
|
||||
|
||||
if (s != NULL) {
|
||||
if (i > 0) {
|
||||
puts(", serial# ");
|
||||
puts(s);
|
||||
puts(buf);
|
||||
}
|
||||
putc('\n');
|
||||
|
||||
|
||||
@@ -122,12 +122,13 @@ int board_early_init_f(void)
|
||||
|
||||
int checkboard(void)
|
||||
{
|
||||
char *s = getenv("serial#");
|
||||
char buf[64];
|
||||
int i = getenv_f("serial#", buf, sizeof(buf));
|
||||
|
||||
printf("Board: P3P440");
|
||||
if (s != NULL) {
|
||||
if (i > 0) {
|
||||
puts(", serial# ");
|
||||
puts(s);
|
||||
puts(buf);
|
||||
}
|
||||
|
||||
if (is_monarch()) {
|
||||
|
||||
@@ -101,13 +101,14 @@ int board_init(void)
|
||||
*/
|
||||
int checkboard(void)
|
||||
{
|
||||
char *s = getenv("serial#");
|
||||
char buf[64];
|
||||
int i = getenv_f("serial#", buf, sizeof(buf));
|
||||
|
||||
puts("Board: PDNB3");
|
||||
|
||||
if (s != NULL) {
|
||||
if (i > 0) {
|
||||
puts(", serial# ");
|
||||
puts(s);
|
||||
puts(buf);
|
||||
}
|
||||
putc('\n');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user