#else
  
- #define __cpu_clear_user_page __glue(_USER,_clear_user_page)
- #define __cpu_copy_user_page  __glue(_USER,_copy_user_page)
+ #define __cpu_clear_user_highpage     __glue(_USER,_clear_user_highpage)
+ #define __cpu_copy_user_highpage      __glue(_USER,_copy_user_highpage)
  
- extern void __cpu_clear_user_page(void *p, unsigned long user);
- extern void __cpu_copy_user_page(void *to, const void *from,
-                                unsigned long user);
+ extern void __cpu_clear_user_highpage(struct page *page, unsigned long vaddr);
+ extern void __cpu_copy_user_highpage(struct page *to, struct page *from,
+                       unsigned long vaddr);
  #endif
  
- #define clear_user_page(addr,vaddr,pg)         __cpu_clear_user_page(addr, vaddr)
- #define copy_user_page(to,from,vaddr,pg) __cpu_copy_user_page(to, from, vaddr)
+ #define clear_user_highpage(page,vaddr)               \
+        __cpu_clear_user_highpage(page, vaddr)
+ 
+ #define __HAVE_ARCH_COPY_USER_HIGHPAGE
+ #define copy_user_highpage(to,from,vaddr,vma) \
+       __cpu_copy_user_highpage(to, from, vaddr)
  
 -#define clear_page(page)      memzero((void *)(page), PAGE_SIZE)
 +#define clear_page(page)      memset((void *)(page), 0, PAGE_SIZE)
  extern void copy_page(void *to, const void *from);
  
  #undef STRICT_MM_TYPECHECKS