Messages in this thread | | | From | Michael Ellerman <> | Subject | Re: [PATCH] powerpc/ptdump: don't entirely rebuild kernel when selecting CONFIG_PPC_DEBUG_WX | Date | Tue, 14 Jan 2020 16:01:10 +1000 |
| |
Christophe Leroy <christophe.leroy@c-s.fr> writes: > Selecting CONFIG_PPC_DEBUG_WX only impacts ptdump and pgtable_32/64 > init calls. Declaring related functions in asm/pgtable.h implies > rebuilding almost everything. > > Move ptdump_check_wx() declaration in a new dedicated header file.
Can you put it in arch/powerpc/mm/mmu_decl.h ? That already exists for things that are private to arch/powerpc/mm, which this function is AFAICT.
cheers
> arch/powerpc/include/asm/pgtable.h | 6 ------ > arch/powerpc/include/asm/ptdump.h | 15 +++++++++++++++ > arch/powerpc/mm/pgtable_32.c | 1 + > arch/powerpc/mm/pgtable_64.c | 1 + > arch/powerpc/mm/ptdump/ptdump.c | 1 + > 5 files changed, 18 insertions(+), 6 deletions(-) > create mode 100644 arch/powerpc/include/asm/ptdump.h > > diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h > index 0e4ec8cc37b7..8cc543ed114c 100644 > --- a/arch/powerpc/include/asm/pgtable.h > +++ b/arch/powerpc/include/asm/pgtable.h > @@ -94,12 +94,6 @@ void mark_initmem_nx(void); > static inline void mark_initmem_nx(void) { } > #endif > > -#ifdef CONFIG_PPC_DEBUG_WX > -void ptdump_check_wx(void); > -#else > -static inline void ptdump_check_wx(void) { } > -#endif > - > /* > * When used, PTE_FRAG_NR is defined in subarch pgtable.h > * so we are sure it is included when arriving here. > diff --git a/arch/powerpc/include/asm/ptdump.h b/arch/powerpc/include/asm/ptdump.h > new file mode 100644 > index 000000000000..246b92c21729 > --- /dev/null > +++ b/arch/powerpc/include/asm/ptdump.h > @@ -0,0 +1,15 @@ > +/* SPDX-License-Identifier: GPL-2.0 */ > +#ifndef _ASM_POWERPC_PTDUMP_H > +#define _ASM_POWERPC_PTDUMP_H > + > +#ifndef __ASSEMBLY__ > + > +#ifdef CONFIG_PPC_DEBUG_WX > +void ptdump_check_wx(void); > +#else > +static inline void ptdump_check_wx(void) { } > +#endif > + > +#endif /* __ASSEMBLY__ */ > + > +#endif /* _ASM_POWERPC_PTDUMP_H */ > diff --git a/arch/powerpc/mm/pgtable_32.c b/arch/powerpc/mm/pgtable_32.c > index 73b84166d06a..6c866f1b1eeb 100644 > --- a/arch/powerpc/mm/pgtable_32.c > +++ b/arch/powerpc/mm/pgtable_32.c > @@ -29,6 +29,7 @@ > #include <asm/fixmap.h> > #include <asm/setup.h> > #include <asm/sections.h> > +#include <asm/ptdump.h> > > #include <mm/mmu_decl.h> > > diff --git a/arch/powerpc/mm/pgtable_64.c b/arch/powerpc/mm/pgtable_64.c > index e78832dce7bb..3686cd887c2f 100644 > --- a/arch/powerpc/mm/pgtable_64.c > +++ b/arch/powerpc/mm/pgtable_64.c > @@ -45,6 +45,7 @@ > #include <asm/sections.h> > #include <asm/firmware.h> > #include <asm/dma.h> > +#include <asm/ptdump.h> > > #include <mm/mmu_decl.h> > > diff --git a/arch/powerpc/mm/ptdump/ptdump.c b/arch/powerpc/mm/ptdump/ptdump.c > index 2f9ddc29c535..d7b02bcd0691 100644 > --- a/arch/powerpc/mm/ptdump/ptdump.c > +++ b/arch/powerpc/mm/ptdump/ptdump.c > @@ -23,6 +23,7 @@ > #include <linux/const.h> > #include <asm/page.h> > #include <asm/pgalloc.h> > +#include <asm/ptdump.h> > > #include "ptdump.h" > > -- > 2.13.3
| |