|
@@ -1441,7 +1441,7 @@ static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma)
|
|
|
return pte;
|
|
|
}
|
|
|
|
|
|
-static inline void cow_user_page(struct page *dst, struct page *src, unsigned long va)
|
|
|
+static inline void cow_user_page(struct page *dst, struct page *src, unsigned long va, struct vm_area_struct *vma)
|
|
|
{
|
|
|
/*
|
|
|
* If the source page was a PFN mapping, we don't have
|
|
@@ -1464,9 +1464,9 @@ static inline void cow_user_page(struct page *dst, struct page *src, unsigned lo
|
|
|
kunmap_atomic(kaddr, KM_USER0);
|
|
|
flush_dcache_page(dst);
|
|
|
return;
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
- copy_user_highpage(dst, src, va);
|
|
|
+ copy_user_highpage(dst, src, va, vma);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -1577,7 +1577,7 @@ gotten:
|
|
|
new_page = alloc_page_vma(GFP_HIGHUSER, vma, address);
|
|
|
if (!new_page)
|
|
|
goto oom;
|
|
|
- cow_user_page(new_page, old_page, address);
|
|
|
+ cow_user_page(new_page, old_page, address, vma);
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -2200,7 +2200,7 @@ retry:
|
|
|
page = alloc_page_vma(GFP_HIGHUSER, vma, address);
|
|
|
if (!page)
|
|
|
goto oom;
|
|
|
- copy_user_highpage(page, new_page, address);
|
|
|
+ copy_user_highpage(page, new_page, address, vma);
|
|
|
page_cache_release(new_page);
|
|
|
new_page = page;
|
|
|
anon = 1;
|