]> git.hungrycats.org Git - linux/commitdiff
[PATCH] pass "page" pointer to clear_user_page()/copy_user_page()
authorDavid Mosberger <davidm@napali.hpl.hp.com>
Fri, 31 May 2002 04:13:27 +0000 (21:13 -0700)
committerLinus Torvalds <torvalds@penguin.transmeta.com>
Fri, 31 May 2002 04:13:27 +0000 (21:13 -0700)
Hi Linus,

Are you willing to change the interfaces of clear_user_page() and
copy_user_page() so that they can receive the relevant page pointer as
a separate argument?  I need this on ia64 to implement the lazy-cache
flushing scheme.

I believe PPC would also benefit from this.

--david

include/asm-i386/page.h
include/linux/highmem.h

index 0089c8a9739f6682f5102f875760c96925b0e9a3..4737ef69ae1841475b431da5b6548991ccada42d 100644 (file)
@@ -30,8 +30,8 @@
 
 #endif
 
-#define clear_user_page(page, vaddr)   clear_page(page)
-#define copy_user_page(to, from, vaddr)        copy_page(to, from)
+#define clear_user_page(page, vaddr, pg)       clear_page(page)
+#define copy_user_page(to, from, vaddr, pg)    copy_page(to, from)
 
 /*
  * These are used to make use of C type-checking..
index 1f99e950f5d5312a8fef539d99ec83eccd410444..da66723d62c526a16907a64d37ab7145f44a0229 100644 (file)
@@ -77,7 +77,7 @@ static inline void *kmap(struct page *page) { return page_address(page); }
 static inline void clear_user_highpage(struct page *page, unsigned long vaddr)
 {
        void *addr = kmap_atomic(page, KM_USER0);
-       clear_user_page(addr, vaddr);
+       clear_user_page(addr, vaddr, page);
        kunmap_atomic(addr, KM_USER0);
 }
 
@@ -111,7 +111,7 @@ static inline void copy_user_highpage(struct page *to, struct page *from, unsign
 
        vfrom = kmap_atomic(from, KM_USER0);
        vto = kmap_atomic(to, KM_USER1);
-       copy_user_page(vto, vfrom, vaddr);
+       copy_user_page(vto, vfrom, vaddr, to);
        kunmap_atomic(vfrom, KM_USER0);
        kunmap_atomic(vto, KM_USER1);
 }