• Suresh Siddha's avatar
    x86: fix compat-vdso · f61f1b57
    Suresh Siddha authored
    Jeff Chua reported that this patch:
    
    > -#define PTE_IDENT_ATTR  0x007          /* PRESENT+RW+USER */
    > -#define PDE_IDENT_ATTR  0x067          /* PRESENT+RW+USER+DIRTY+ACCESSED */
    > +#define PTE_IDENT_ATTR  0x003          /* PRESENT+RW */
    > +#define PDE_IDENT_ATTR  0x063          /* PRESENT+RW+DIRTY+ACCESSED */
    
    broke kernels with CONFIG_COMPAT_VDSO set with this init segfault:
    
    init[1]: segfault at ffffe01c up b7f0dc28 sp bfc26628 error 5 in ld-2.7.90.so[b7f0b000+1c000]
    
    Include USER bit in the PDE_IDENT_ATTR only, as the protection bits
    are combined from the PDE and PTE entries. This will allow the high
    mapped VDSO page in the case of CONFIG_COMPAT_VDSO to be user
    readable.
    Reported-by: default avatarJeff Chua <jeff.chua.linux@gmail.com>
    Signed-off-by: default avatarSuresh Siddha <suresh.b.siddha@intel.com>
    Tested-by: default avatarJeff Chua <jeff.chua.linux@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
    f61f1b57
pgtable.h 16.5 KB