summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGraeme Russ <graeme.russ@gmail.com>2010-04-24 00:05:39 +1000
committerWolfgang Denk <wd@denx.de>2010-05-06 00:14:08 +0200
commit9e08efcfee22570bb3a9ea384bf4d60b378f6092 (patch)
tree33c142ddca26b1696f894e3ce2aa11c8b6a47581
parent433ff2bdbccc5190189528305e4ed6f7205dbafd (diff)
x86: Fix do_go_exec()
This was broken a long time ago by a49864593e083a5d0779fb9ca98e5a0f2053183d which munged the NIOS and x86 do_go_exec() Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
-rw-r--r--arch/i386/lib/board.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/i386/lib/board.c b/arch/i386/lib/board.c
index af81cd5b23..5e28c6f7df 100644
--- a/arch/i386/lib/board.c
+++ b/arch/i386/lib/board.c
@@ -422,10 +422,10 @@ void hang (void)
unsigned long do_go_exec (ulong (*entry)(int, char *[]), int argc, char *argv[])
{
/*
- * TODO: Test this function - changed to fix compiler error.
- * Original code was:
- * return (entry >> 1) (argc, argv);
- * with a comment about Nios function pointers are address >> 1
+ * x86 does not use a dedicated register to pass the pointer
+ * to the global_data
*/
+ argv[-1] = (char *)gd;
+
return (entry) (argc, argv);
}