lkml.org 
[lkml]   [2008]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: Lockless/Get_User_Pages_Fast causes Xorg 1.4.99.* to lock
    On Mon, 7 Jul 2008, Nick Piggin wrote:
    >
    > I think we need a similar fix for s390 too. If so, then it really should
    > get into 2.6.26, but this late in the release, I hope an s390 maintainer
    > might be able to test and verify the fix?

    Wow, yes, I hadn't realized s390 is ahead of the game there: glad you're
    back to spot that. But yes, we'd prefer maintainer to confirm and push.


    [PATCH]] s390: protect _PAGE_SPECIAL bit against mprotect

    Stop mprotect's pte_modify from wiping out the s390 pte_special bit, which
    caused oops thereafter when vm_normal_page thought X's abnormal was normal.

    Signed-off-by: Nick Piggin <npiggin@suse.de>
    Acked-by: Hugh Dickins <hugh@veritas.com>
    ---
    Index: linux-2.6/include/asm-s390/pgtable.h
    ===================================================================
    --- linux-2.6.orig/include/asm-s390/pgtable.h
    +++ linux-2.6/include/asm-s390/pgtable.h
    @@ -223,6 +223,9 @@ extern char empty_zero_page[PAGE_SIZE];
    #define _PAGE_SPECIAL 0x004 /* SW associated with special page */
    #define __HAVE_ARCH_PTE_SPECIAL

    +/* Set of bits not changed in pte_modify */
    +#define _PAGE_CHG_MASK (PAGE_MASK | _PAGE_SPECIAL)
    +
    /* Six different types of pages. */
    #define _PAGE_TYPE_EMPTY 0x400
    #define _PAGE_TYPE_NONE 0x401
    @@ -681,7 +684,7 @@ static inline void pte_clear(struct mm_s
    */
    static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
    {
    - pte_val(pte) &= PAGE_MASK;
    + pte_val(pte) &= _PAGE_CHG_MASK;
    pte_val(pte) |= pgprot_val(newprot);
    return pte;
    }

    \
     
     \ /
      Last update: 2008-07-07 12:43    [W:2.626 / U:0.488 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site