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
prev parent 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).