The patch to make process.c work for 32-bit and 64-bit
(
06d67d54741a5bfefa31945ef195dfa748c29025) broke some 64-bit binaries.
We were blowing away load_addr in gpr[2], so we weren't properly relocating
the entry point.
Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  */
 void start_thread(struct pt_regs *regs, unsigned long start, unsigned long sp)
 {
+#ifdef CONFIG_PPC64
+       unsigned long load_addr = regs->gpr[2]; /* saved by ELF_PLAT_INIT */
+#endif
+
        set_fs(USER_DS);
 
        /*
        regs->msr = MSR_USER;
 #else
        if (!test_thread_flag(TIF_32BIT)) {
-               unsigned long entry, toc, load_addr = regs->gpr[2];
+               unsigned long entry, toc;
 
                /* start is a relocated pointer to the function descriptor for
                 * the elf _start routine.  The first entry in the function