[PATCH] arm64: asm: Explicitly include linux/personality.h in asm/page.h

Andrew Morton akpm at linux-foundation.org
Tue Feb 2 11:39:08 PST 2016


On Tue, 2 Feb 2016 16:48:18 +0000 Will Deacon <will.deacon at arm.com> wrote:

> On Thu, Jan 28, 2016 at 03:46:10PM +0100, Thierry Reding wrote:
> > On Thu, Jan 28, 2016 at 02:14:26PM +0000, Catalin Marinas wrote:
> > > On Thu, Jan 28, 2016 at 12:44:17PM +0000, Mark Brown wrote:
> > > > On Thu, Jan 28, 2016 at 12:18:28PM +0000, Mark Brown wrote:
> > > > > asm/page.h uses READ_IMPLIES_EXEC from linux/personality.h but does not
> > > > > explicitly include it causing build failures in -next where whatever was
> > > > > causing it to be implicitly included has changed to remove that
> > > > > inclusion.  Add an explicit inclusion to fix this.
> > > > 
> > > > Argh, sorry - this causes problems further down the line with linking
> > > > vdso.lds due to enums getting into the linker script and upsetting the
> > > > linker (there are several compile errors today so it was masked).
> > > 
> > > You can move the include further down after the #ifndef __ASSEMBLY__
> > 
> > Indeed, here's what I've been using to successfully complete ARM64 test
> > builds:
> > 
> > --- >8 ---
> > diff --git a/arch/arm64/include/asm/page.h b/arch/arm64/include/asm/page.h
> > index 9b2f5a9d019d..ae615b9d9a55 100644
> > --- a/arch/arm64/include/asm/page.h
> > +++ b/arch/arm64/include/asm/page.h
> > @@ -39,6 +39,7 @@
> >  
> >  #ifndef __ASSEMBLY__
> >  
> > +#include <linux/personality.h> /* for READ_IMPLIES_EXEC */
> >  #include <asm/pgtable-types.h>
> >  
> >  extern void __cpu_clear_user_page(void *p, unsigned long user);
> 
> I see this has ended up in linux-next, but I'm not sure whether or not
> it's actually queued someplace for 4.6. Any ideas?
> 
> If not, I can take it (or some derivative) through arm64 as a fix for
> -rc3.

It's not actually needed any more because Kirill has tweaked the patch
which triggered this build error.

However I think the change still makes sense as a standalone thing -
your call.


From: Andrew Morton <akpm at linux-foundation.org>
Subject: arm: arch/arm/include/asm/page.h needs personality.h

VM_DATA_DEFAULT_FLAGS uses READ_IMPLIES_EXEC, so page.h should include
personality.h to provide this.

This was needed for "mm: warn about VmData over RLIMIT_DATA".

Cc: Russell King <linux at arm.linux.org.uk>
Cc: Will Deacon <will.deacon at arm.com>
Cc: Konstantin Khlebnikov <koct9i at gmail.com>
Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
---

 arch/arm/include/asm/page.h |    2 ++
 1 file changed, 2 insertions(+)

diff -puN arch/arm/include/asm/page.h~arm-arch-arm-include-asm-pageh-needs-personalityh arch/arm/include/asm/page.h
--- a/arch/arm/include/asm/page.h~arm-arch-arm-include-asm-pageh-needs-personalityh
+++ a/arch/arm/include/asm/page.h
@@ -17,6 +17,8 @@
 
 #ifndef __ASSEMBLY__
 
+#include <linux/personality.h>	/* For READ_IMPLIES_EXEC */
+
 #ifndef CONFIG_MMU
 
 #include <asm/page-nommu.h>
_




More information about the linux-arm-kernel mailing list