Subject: Re: [PATCH] powerpc: fix compile error on 64K pages on 40x, 44x

From: Christian Lamparter <[email-masked]>
Date: Tue, 26 Sep 2017 22:11:01 +0200

On Tuesday, September 26, 2017 9:25:30 PM CEST Christophe LEROY wrote:
> 
> Le 26/09/2017 à 21:03, Christian Lamparter a écrit :
> > The mmu context on the 40x, 44x does not define pte_frag
> > entry. This causes gcc abort the compilation due to:
> > 
> > setup-common.c: In function ‘setup_arch’:
> > setup-common.c:908: error: ‘mm_context_t’ has no ‘pte_frag’
> > 
> > This patch fixes the issue by adding additional guard
> > conditions, that limit the initialization to just
> > platforms that define the pte_frag variable in the
> > mmu context.
> > 
> > Signed-off-by: Christian Lamparter <[email-masked]>
> > ---
> >   arch/powerpc/kernel/setup-common.c | 4 +++-
> >   1 file changed, 3 insertions(+), 1 deletion(-)
> > 
> > diff --git a/arch/powerpc/kernel/setup-common.c b/arch/powerpc/kernel/setup-common.c
> > index 0ac741fae90e..436d42a7d761 100644
> > --- a/arch/powerpc/kernel/setup-common.c
> > +++ b/arch/powerpc/kernel/setup-common.c
> > @@ -904,7 +904,9 @@ void __init setup_arch(char **cmdline_p)
> >   #endif
> >   #endif
> >   
> > -#ifdef CONFIG_PPC_64K_PAGES
> > +#if defined(CONFIG_PPC_64K_PAGES) && \
> > +    defined(CONFIG_PPC_BOOK3S_64) && \
> > +    defined(CONFIG_PPC_BOOK3E_MMU)
> 
> There must be something wrong here.
> BOOK3E_MMU is defined if BOOK3E_64 or FSL_BOOKE
> BOOK3S_64 and BOOK3E_64 are mutually exclusive
> FSL_BOOKE is PPC32 which is mutually exclusive from PPC64.
> 
> Therefore you can't have both BOOK3S_64 and BOOK3E_MMU at the same time
Oops, yes. I guess it should be:

#if defined(CONFIG_PPC_64K_PAGES) && \
    (defined(CONFIG_PPC_BOOK3S_64) || defined(CONFIG_PPC_BOOK3E_MMU))

right?