Subject: Re: [patch 23/33] powerpc: Localize mmu_off

From: Milton Miller <[email-masked]>
Date: Mon, 18 Jun 2007 09:08:56 -0500

On Sat Jun 16 08:06:19 EST 2007, Geoff Levand wrote:
> This just removes the dependency __mmu_off has on the symbol
> __after_prom_start.  I found the current code inconvenient when I
> wanted to put some debugging code between the call to __mmu_off
> and the branch to __after_prom_start.

You are entering this code with the mmu on?

My first thought was that is unexpected, but aparently Apple machines 
do that, so its supported for the master -- not the slaves.

> Signed-off-by: Geoff Levand <geoffrey.levand at am.sony.com>
> ---
>  arch/powerpc/kernel/head_64.S |    4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> --- a/arch/powerpc/kernel/head_64.S
> +++ b/arch/powerpc/kernel/head_64.S
> @@ -1695,9 +1695,11 @@ _GLOBAL(__start_initialization_multiplat
>  2:
>
>         /* Switch off MMU if not already */
> -       LOAD_REG_IMMEDIATE(r4, .__after_prom_start - KERNELBASE)
> +       LOAD_REG_IMMEDIATE(r4, __mmu_off_return - KERNELBASE)
>         add     r4,r4,r30
>         bl      .__mmu_off
> +__mmu_off_return:
> +
>         b       .__after_prom_start
>
>  _STATIC(__boot_from_prom)
>
> -- 

That seems like a long label.

I could stand a 1: there (ie a local numeric label).

Hmm... how about always going directly there:

-       bl      .__mmu_off
-       b       .__after_prom_start
+       mtlr    r4
+       b       .__mmu_off

So that there is no space to add code that is skipped if the mmu was on?

milton