Benjamin Herrenschmidt <b...@kernel.crashing.org> writes:

> Make it part of early_setup() as we really want the feature fixups
> to be applied before we turn on the MMU since they can have an impact
> on the various assembly path related to MMU management and interrupts.
>
> This makes 64-bit match what 32-bit does.
>
> Signed-off-by: Benjamin Herrenschmidt <b...@kernel.crashing.org>
> ---
>  arch/powerpc/kernel/setup_64.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/kernel/setup_64.c b/arch/powerpc/kernel/setup_64.c
> index 996bed2..e79cf1b 100644
> --- a/arch/powerpc/kernel/setup_64.c
> +++ b/arch/powerpc/kernel/setup_64.c
> @@ -286,6 +286,9 @@ void __init early_setup(unsigned long dt_ptr)
>       /* Initialize the hash table or TLB handling */
>       early_init_mmu();
>  
> +     /* Apply all the dynamic patching */
> +     apply_feature_fixups();
> +
>       /*
>        * At this point, we can let interrupts switch to virtual mode
>        * (the MMU has been setup), so adjust the MSR in the PACA to
> @@ -468,8 +471,6 @@ void __init setup_system(void)
>  {
>       DBG(" -> setup_system()\n");
>  
> -     apply_feature_fixups();
> -
>       /*
>        * Unflatten the device-tree passed by prom_init or kexec
>        */

Why not move it immediately after we finish all the device tress scan.

ie,
        early_init_devtree(__va(dt_ptr));

        epapr_paravirt_early_init();

  +      apply_feature_fixups();
        /* Now we know the logical id of our boot cpu, setup the paca. */
        setup_paca(&paca[boot_cpuid]);
        fixup_boot_paca();

Also with a comment explaining why we can't move it further up ?


-aneesh

_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to