linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Michael Ellerman <patch-notifications@ellerman.id.au>
To: Michael Ellerman <mpe@ellerman.id.au>, linuxppc-dev@ozlabs.org
Subject: Re: [PATCH] powerpc/64s: Fix section mismatch warnings from boot code
Date: Thu, 26 Mar 2020 23:06:33 +1100 (AEDT)	[thread overview]
Message-ID: <48p3cT3BXLz9sSb@ozlabs.org> (raw)
In-Reply-To: <20200225031328.14676-1-mpe@ellerman.id.au>

On Tue, 2020-02-25 at 03:13:28 UTC, Michael Ellerman wrote:
> We currently have two section mismatch warnings:
> 
>   The function __boot_from_prom() references
>   the function __init prom_init().
> 
>   The function start_here_common() references
>   the function __init start_kernel().
> 
> The warnings are correct, we do have branches from non-init code into
> init code, which is freed after boot. But we don't expect to ever
> execute any of that early boot code after boot, if we did that would
> be a bug. In particular calling into OF after boot would be fatal
> because OF is no longer resident.
> 
> So for now fix the warnings by marking the relevant functions as
> __REF, which puts them in the ".ref.text" section.
> 
> This causes some reordering of the functions in the final link:
> 
>   @@ -217,10 +217,9 @@
>    c00000000000b088 t generic_secondary_common_init
>    c00000000000b124 t __mmu_off
>    c00000000000b14c t __start_initialization_multiplatform
>   -c00000000000b1ac t __boot_from_prom
>   -c00000000000b1ec t __after_prom_start
>   -c00000000000b260 t p_end
>   -c00000000000b27c T copy_and_flush
>   +c00000000000b1ac t __after_prom_start
>   +c00000000000b220 t p_end
>   +c00000000000b23c T copy_and_flush
>    c00000000000b300 T __secondary_start
>    c00000000000b300 t copy_to_here
>    c00000000000b344 t start_secondary_prolog
>   @@ -228,8 +227,9 @@
>    c00000000000b36c t enable_64b_mode
>    c00000000000b388 T relative_toc
>    c00000000000b3a8 t p_toc
>   -c00000000000b3b0 t start_here_common
>   -c00000000000b3d0 t start_here_multiplatform
>   +c00000000000b3b0 t __boot_from_prom
>   +c00000000000b3f0 t start_here_multiplatform
>   +c00000000000b480 t start_here_common
>    c00000000000b880 T system_call_common
>    c00000000000b974 t system_call
>    c00000000000b9dc t system_call_exit
> 
> In particular __boot_from_prom moves after copy_to_here, which means
> it's not copied to zero in the first stage of copy of the kernel to
> zero.
> 
> But that's OK, because we only call __boot_from_prom before we do the
> copy, so it makes no difference when it's copied. The call sequence
> is:
>   __start
>   -> __start_initialization_multiplatform
>      -> __boot_from_prom
>         -> __start
>            -> __start_initialization_multiplatform
>               -> __after_prom_start
>                  -> copy_and_flush
>                  -> copy_and_flush (relocated to 0)
>                     -> start_here_multiplatform
>                        -> early_setup
> 
> Reported-by: Mauricio Faria de Oliveira <mauricfo@linux.ibm.com>
> Reported-by: Roman Bolshakov <r.bolshakov@yadro.com>
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>

Applied to powerpc next.

https://git.kernel.org/powerpc/c/6eeb9b3b9ce588f14a697737a30d0702b5a20293

cheers

      reply	other threads:[~2020-03-26 12:23 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-25  3:13 [PATCH] powerpc/64s: Fix section mismatch warnings from boot code Michael Ellerman
2020-03-26 12:06 ` Michael Ellerman [this message]

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=48p3cT3BXLz9sSb@ozlabs.org \
    --to=patch-notifications@ellerman.id.au \
    --cc=linuxppc-dev@ozlabs.org \
    --cc=mpe@ellerman.id.au \
    /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).