lkml.org 
[lkml]   [2006]   [Aug]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH RFP-V4 03/13] RFP prot support: add needed macros
    Date
    From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>

    Add pte_to_pgprot() and pgoff_prot_to_pte() macros, in generic versions; so we
    can safely use it and keep the kernel compiling. For some architectures real
    definitions of the macros are actually provided.

    Also, add the MAP_CHGPROT flag to all arch headers (was MAP_NOINHERIT, changed on
    Hugh Dickins' suggestion).

    Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
    ---

    include/asm-alpha/mman.h | 3 +++
    include/asm-arm/mman.h | 3 +++
    include/asm-arm26/mman.h | 3 +++
    include/asm-cris/mman.h | 3 +++
    include/asm-frv/mman.h | 3 +++
    include/asm-generic/pgtable.h | 13 +++++++++++++
    include/asm-h8300/mman.h | 3 +++
    include/asm-i386/mman.h | 3 +++
    include/asm-ia64/mman.h | 3 +++
    include/asm-m32r/mman.h | 3 +++
    include/asm-m68k/mman.h | 3 +++
    include/asm-mips/mman.h | 3 +++
    include/asm-parisc/mman.h | 3 +++
    include/asm-powerpc/mman.h | 3 +++
    include/asm-s390/mman.h | 3 +++
    include/asm-sh/mman.h | 3 +++
    include/asm-sparc/mman.h | 3 +++
    include/asm-sparc64/mman.h | 3 +++
    include/asm-x86_64/mman.h | 3 +++
    include/asm-xtensa/mman.h | 3 +++
    20 files changed, 70 insertions(+), 0 deletions(-)

    diff --git a/include/asm-alpha/mman.h b/include/asm-alpha/mman.h
    index 5f24c75..30f4694 100644
    --- a/include/asm-alpha/mman.h
    +++ b/include/asm-alpha/mman.h
    @@ -28,6 +28,9 @@ #define MAP_LOCKED 0x08000 /* lock the
    #define MAP_NORESERVE 0x10000 /* don't check for reservations */
    #define MAP_POPULATE 0x20000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x40000 /* do not block on IO */
    +#define MAP_CHGPROT 0x80000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MS_ASYNC 1 /* sync memory asynchronously */
    #define MS_SYNC 2 /* synchronous memory sync */
    diff --git a/include/asm-arm/mman.h b/include/asm-arm/mman.h
    index 54570d2..a5b3c37 100644
    --- a/include/asm-arm/mman.h
    +++ b/include/asm-arm/mman.h
    @@ -10,6 +10,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) page tables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-arm26/mman.h b/include/asm-arm26/mman.h
    index 4000a6c..de73e1b 100644
    --- a/include/asm-arm26/mman.h
    +++ b/include/asm-arm26/mman.h
    @@ -10,6 +10,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) page tables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-cris/mman.h b/include/asm-cris/mman.h
    index 1c35e1b..a75ee61 100644
    --- a/include/asm-cris/mman.h
    +++ b/include/asm-cris/mman.h
    @@ -12,6 +12,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-frv/mman.h b/include/asm-frv/mman.h
    index b4371e9..320816d 100644
    --- a/include/asm-frv/mman.h
    +++ b/include/asm-frv/mman.h
    @@ -10,6 +10,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
    index c2059a3..2796f63 100644
    --- a/include/asm-generic/pgtable.h
    +++ b/include/asm-generic/pgtable.h
    @@ -232,4 +232,17 @@ static inline int pmd_none_or_clear_bad(
    }
    #endif /* !__ASSEMBLY__ */

    +#ifndef __HAVE_ARCH_PTE_TO_PGPROT
    +/* Wrappers for architectures which don't support yet page protections for
    + * remap_file_pages. */
    +
    +/* Dummy define - if the architecture has no special support, access is denied
    + * in VM_MANYPROTS vma's. */
    +#define pte_to_pgprot(pte) __P000
    +#define pte_file_to_pgprot(pte) __P000
    +
    +#define pgoff_prot_to_pte(off, prot) pgoff_to_pte(off)
    +
    +#endif
    +
    #endif /* _ASM_GENERIC_PGTABLE_H */
    diff --git a/include/asm-h8300/mman.h b/include/asm-h8300/mman.h
    index b9f104f..3ae27ca 100644
    --- a/include/asm-h8300/mman.h
    +++ b/include/asm-h8300/mman.h
    @@ -10,6 +10,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-i386/mman.h b/include/asm-i386/mman.h
    index 8fd9d7a..182452b 100644
    --- a/include/asm-i386/mman.h
    +++ b/include/asm-i386/mman.h
    @@ -10,6 +10,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-ia64/mman.h b/include/asm-ia64/mman.h
    index 6ba179f..e7ca36f 100644
    --- a/include/asm-ia64/mman.h
    +++ b/include/asm-ia64/mman.h
    @@ -18,6 +18,9 @@ #define MAP_LOCKED 0x02000 /* pages are
    #define MAP_NORESERVE 0x04000 /* don't check for reservations */
    #define MAP_POPULATE 0x08000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-m32r/mman.h b/include/asm-m32r/mman.h
    index 695a860..a65374b 100644
    --- a/include/asm-m32r/mman.h
    +++ b/include/asm-m32r/mman.h
    @@ -12,6 +12,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-m68k/mman.h b/include/asm-m68k/mman.h
    index 1626d37..2ff6ae2 100644
    --- a/include/asm-m68k/mman.h
    +++ b/include/asm-m68k/mman.h
    @@ -10,6 +10,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-mips/mman.h b/include/asm-mips/mman.h
    index 046cf68..f4d670f 100644
    --- a/include/asm-mips/mman.h
    +++ b/include/asm-mips/mman.h
    @@ -46,6 +46,9 @@ #define MAP_EXECUTABLE 0x4000 /* mark i
    #define MAP_LOCKED 0x8000 /* pages are locked */
    #define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x20000 /* do not block on IO */
    +#define MAP_CHGPROT 0x40000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    /*
    * Flags for msync
    diff --git a/include/asm-parisc/mman.h b/include/asm-parisc/mman.h
    index 0ef15ee..0e25591 100644
    --- a/include/asm-parisc/mman.h
    +++ b/include/asm-parisc/mman.h
    @@ -22,6 +22,9 @@ #define MAP_NORESERVE 0x4000 /* don't c
    #define MAP_GROWSDOWN 0x8000 /* stack-like segment */
    #define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x20000 /* do not block on IO */
    +#define MAP_CHGPROT 0x40000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MS_SYNC 1 /* synchronous memory sync */
    #define MS_ASYNC 2 /* sync memory asynchronously */
    diff --git a/include/asm-powerpc/mman.h b/include/asm-powerpc/mman.h
    index 24cf664..56a76bb 100644
    --- a/include/asm-powerpc/mman.h
    +++ b/include/asm-powerpc/mman.h
    @@ -23,5 +23,8 @@ #define MCL_FUTURE 0x4000

    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #endif /* _ASM_POWERPC_MMAN_H */
    diff --git a/include/asm-s390/mman.h b/include/asm-s390/mman.h
    index 7839767..a8ff4f4 100644
    --- a/include/asm-s390/mman.h
    +++ b/include/asm-s390/mman.h
    @@ -18,6 +18,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-sh/mman.h b/include/asm-sh/mman.h
    index 156eb02..29eb229 100644
    --- a/include/asm-sh/mman.h
    +++ b/include/asm-sh/mman.h
    @@ -10,6 +10,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) page tables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-sparc/mman.h b/include/asm-sparc/mman.h
    index 88d1886..4aeabaa 100644
    --- a/include/asm-sparc/mman.h
    +++ b/include/asm-sparc/mman.h
    @@ -21,6 +21,9 @@ #define MCL_FUTURE 0x4000

    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    /* XXX Need to add flags to SunOS's mctl, mlockall, and madvise system
    * XXX calls.
    diff --git a/include/asm-sparc64/mman.h b/include/asm-sparc64/mman.h
    index 6fd878e..572adec 100644
    --- a/include/asm-sparc64/mman.h
    +++ b/include/asm-sparc64/mman.h
    @@ -21,6 +21,9 @@ #define MCL_FUTURE 0x4000

    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    /* XXX Need to add flags to SunOS's mctl, mlockall, and madvise system
    * XXX calls.
    diff --git a/include/asm-x86_64/mman.h b/include/asm-x86_64/mman.h
    index dd5cb05..ceffa4f 100644
    --- a/include/asm-x86_64/mman.h
    +++ b/include/asm-x86_64/mman.h
    @@ -12,6 +12,9 @@ #define MAP_LOCKED 0x2000 /* pages are
    #define MAP_NORESERVE 0x4000 /* don't check for reservations */
    #define MAP_POPULATE 0x8000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x10000 /* do not block on IO */
    +#define MAP_CHGPROT 0x20000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    #define MCL_CURRENT 1 /* lock all current mappings */
    #define MCL_FUTURE 2 /* lock all future mappings */
    diff --git a/include/asm-xtensa/mman.h b/include/asm-xtensa/mman.h
    index ba394cb..5342c78 100644
    --- a/include/asm-xtensa/mman.h
    +++ b/include/asm-xtensa/mman.h
    @@ -53,6 +53,9 @@ #define MAP_EXECUTABLE 0x4000 /* mark i
    #define MAP_LOCKED 0x8000 /* pages are locked */
    #define MAP_POPULATE 0x10000 /* populate (prefault) pagetables */
    #define MAP_NONBLOCK 0x20000 /* do not block on IO */
    +#define MAP_CHGPROT 0x40000 /* don't inherit the protection bits of
    + the underlying vma, to be passed to
    + remap_file_pages() only */

    /*
    * Flags for msync
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2006-08-26 19:57    [W:0.047 / U:3.580 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site