init: fix bug where environment vars can't be passed via boot args
authorChris Metcalf <cmetcalf@tilera.com>
Fri, 6 Apr 2012 16:53:50 +0000 (12:53 -0400)
committerChris Metcalf <cmetcalf@tilera.com>
Wed, 25 Apr 2012 15:47:29 +0000 (11:47 -0400)
commita99cd1125189aaf31a7ee505d6208143482119eb
treea950082dce0d04b0448210f590d5bbb2c357cf55
parent66f75a5d028beaf67c931435fdc3e7823125730c
init: fix bug where environment vars can't be passed via boot args

Commit 026cee0086f had the side-effect of dropping the '=' from
the unknown boot arguments that are passed to init as environment
variables.  This is because parse_args() puts a NUL in the string
where the '=' was when it passes the "param" and "val" pointers
to the parsing subfunctions.  Previously, unknown_bootoption() was
the last parse_args() subfunction to run, and it carefully put back
the '=' character.  Now the ignore_unknown_bootoption() is the last
one to run, and it wasn't doing the necessary repair, so the
envp params ended up with the embedded NUL and were no longer
seen as valid environment variables by init.

Tested-by: Woody Suwalski <terraluna977@gmail.com>
Acked-by: Pawel Moll <pawel.moll@arm.com>
Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
init/main.c