X-Git-Url: http://git.monstr.eu/?a=blobdiff_plain;f=mm%2Fmprotect.c;h=e3309fcf586bbf89207a468d57517ac3dcbb9ddd;hb=9c897096bbabaca1ad042a35cc1ef441d809ddc8;hp=58b629bb70de3024aba118000f83f52dd92e6d95;hpb=ee95f4059a833839bf52972191b2d4c3d3cec552;p=linux-2.6-microblaze.git diff --git a/mm/mprotect.c b/mm/mprotect.c index 58b629bb70de..e3309fcf586b 100644 --- a/mm/mprotect.c +++ b/mm/mprotect.c @@ -84,6 +84,11 @@ static unsigned long change_pte_range(struct vm_area_struct *vma, pmd_t *pmd, if (!page || PageKsm(page)) continue; + /* Also skip shared copy-on-write pages */ + if (is_cow_mapping(vma->vm_flags) && + page_mapcount(page) != 1) + continue; + /* Avoid TLB flush if possible */ if (pte_protnone(oldpte)) continue;