X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=arch%2Fs390%2Flib%2Fuaccess_pt.c;h=a70ee84c024126ca562f8d738b52a590e4fd6a2b;hb=abf09bed3cce;hp=9017a63dda3dd21df684563770819af53a2cb370;hpb=486c0a0bc80d370471b21662bf03f04fbb37cdc6;p=deliverable%2Flinux.git diff --git a/arch/s390/lib/uaccess_pt.c b/arch/s390/lib/uaccess_pt.c index 9017a63dda3d..a70ee84c0241 100644 --- a/arch/s390/lib/uaccess_pt.c +++ b/arch/s390/lib/uaccess_pt.c @@ -50,7 +50,7 @@ static __always_inline unsigned long follow_table(struct mm_struct *mm, ptep = pte_offset_map(pmd, addr); if (!pte_present(*ptep)) return -0x11UL; - if (write && !pte_write(*ptep)) + if (write && (!pte_write(*ptep) || !pte_dirty(*ptep))) return -0x04UL; return (pte_val(*ptep) & PAGE_MASK) + (addr & ~PAGE_MASK);