Patchwork powerpc: Make RTAS instantiation depend on CONFIG_PPC_RTAS

login
register
mail settings
Submitter Michael Ellerman
Date June 12, 2009, 4:08 a.m.
Message ID <56982642b8954ea193ae48c5d02e8dbd84d72f17.1244779685.git.michael@ellerman.id.au>
Download mbox | patch
Permalink /patch/28616/
State Rejected, archived
Delegated to: Benjamin Herrenschmidt
Headers show

Comments

Michael Ellerman - June 12, 2009, 4:08 a.m.
Currently prom_init.c always instantiates RTAS, even if the kernel
is built without RTAS support - that seems wrong.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
---
 arch/powerpc/kernel/prom_init.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)
Benjamin Herrenschmidt - June 15, 2009, 1:49 a.m.
On Fri, 2009-06-12 at 14:08 +1000, Michael Ellerman wrote:
> Currently prom_init.c always instantiates RTAS, even if the kernel
> is built without RTAS support - that seems wrong.

Nak :-)

We want to always instantiate it from prom_init.c because we can't do
it any more later. There's the vague possibility that you may want to
boot a non-RTAS kernel which then kexec's into an RTAS kernel, and that
isn't possible if the initial prom_init.c didn't instanciate RTAS and
put a reference to it in the flat device-tree.

Cheers,
Ben.

> Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
> ---
>  arch/powerpc/kernel/prom_init.c |    4 ++++
>  1 files changed, 4 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
> index 2f0e64b..6c2dc59 100644
> --- a/arch/powerpc/kernel/prom_init.c
> +++ b/arch/powerpc/kernel/prom_init.c
> @@ -1052,6 +1052,7 @@ static void __init prom_init_mem(void)
>  }
>  
> 
> +#ifdef CONFIG_PPC_RTAS
>  /*
>   * Allocate room for and instantiate RTAS
>   */
> @@ -1109,6 +1110,9 @@ static void __init prom_instantiate_rtas(void)
>  
>  	prom_debug("prom_instantiate_rtas: end...\n");
>  }
> +#else
> +static inline void prom_instantiate_rtas(void) { }
> +#endif /* CONFIG_PPC_RTAS */
>  
>  #ifdef CONFIG_PPC64
>  /*

Patch

diff --git a/arch/powerpc/kernel/prom_init.c b/arch/powerpc/kernel/prom_init.c
index 2f0e64b..6c2dc59 100644
--- a/arch/powerpc/kernel/prom_init.c
+++ b/arch/powerpc/kernel/prom_init.c
@@ -1052,6 +1052,7 @@  static void __init prom_init_mem(void)
 }
 
 
+#ifdef CONFIG_PPC_RTAS
 /*
  * Allocate room for and instantiate RTAS
  */
@@ -1109,6 +1110,9 @@  static void __init prom_instantiate_rtas(void)
 
 	prom_debug("prom_instantiate_rtas: end...\n");
 }
+#else
+static inline void prom_instantiate_rtas(void) { }
+#endif /* CONFIG_PPC_RTAS */
 
 #ifdef CONFIG_PPC64
 /*