linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
To: Alexander Graf <agraf@suse.de>
Cc: linuxppc-dev@lists.ozlabs.org, Anton Blanchard <anton@samba.org>
Subject: Re: [PATCH] powerpc: Fix dynamic relocation
Date: Sat, 09 Mar 2013 18:29:12 +1100	[thread overview]
Message-ID: <1362814152.6977.32.camel@pasglop> (raw)
In-Reply-To: <1362790950-23065-1-git-send-email-agraf@suse.de>

On Sat, 2013-03-09 at 02:02 +0100, Alexander Graf wrote:
> Commit 5ac47f7a introduced dynamic relocation of code by manually
> relocating TOC entries. However, we need to access the TOC using
> the physical address that we have for it, not the virtual address
> that we can't even access yet.
> 
> Drop the offset from the TOC accessing pointer.
> 
> This fixes Linux 3.9 booting on OpenBIOS for me.
> 
> Signed-off-by: Alexander Graf <agraf@suse.de>
> 
> ---
> 
> I've also encountered breakage on a G5 Mac, not sure if it's related.
> I'll have to test whether this is the culprit on that one too.

That might fix the mac too.. Anton's patch assumed OF ran in real mode
in which case the top bits of the address are ignored, meaning we could
use kernel virtual addresses but that isn't the case with Apple OF which
has MMU enabled and maps memory 1:1. I suppose OpenBIOS has the same
problem ? Or is this a 32-bit issue as well ?

> Ben, please make sure that this gets into 3.9.
> ---
>  arch/powerpc/kernel/prom_init.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
> index 7f7fb7f..2bf7cc3 100644
> --- a/arch/powerpc/kernel/prom_init.c
> +++ b/arch/powerpc/kernel/prom_init.c
> @@ -2851,7 +2851,7 @@ static void reloc_toc(void)
>  		(__prom_init_toc_end - __prom_init_toc_start) / sizeof(long);
>  
>  	/* Need to add offset to get at __prom_init_toc_start */
> -	__reloc_toc(__prom_init_toc_start + offset, offset, nr_entries);
> +	__reloc_toc(__prom_init_toc_start, offset, nr_entries);
>  
>  	mb();
>  }

  reply	other threads:[~2013-03-09  7:29 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-09  1:02 [PATCH] powerpc: Fix dynamic relocation Alexander Graf
2013-03-09  7:29 ` Benjamin Herrenschmidt [this message]
2013-03-09 10:12   ` Alexander Graf
     [not found] ` <1362814152.6977.32.camel__2059.78525705195$1362814216$gmane$org@pasglop>
2013-03-09  9:30   ` Andreas Schwab

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1362814152.6977.32.camel@pasglop \
    --to=benh@kernel.crashing.org \
    --cc=agraf@suse.de \
    --cc=anton@samba.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).