Index: linux-2.6.17-rc6-mm2/kernel/compat.c =================================================================== --- linux-2.6.17-rc6-mm2.orig/kernel/compat.c 2006-06-21 13:29:32.722139297 -0700 +++ linux-2.6.17-rc6-mm2/kernel/compat.c 2006-06-21 13:33:57.750622521 -0700 @@ -931,7 +931,7 @@ asmlinkage long compat_sys_adjtimex(stru #ifdef CONFIG_NUMA asmlinkage long compat_sys_move_pages(pid_t pid, unsigned long nr_pages, - void __user *pages32, + compat_uptr_t __user *pages32, const int __user *nodes, int __user *status, int flags) @@ -943,7 +943,7 @@ asmlinkage long compat_sys_move_pages(pi for (i = 0; i < nr_pages; i++) { compat_uptr_t p; - if (get_user(p, (compat_uptr_t *)(pages32 + i)) || + if (get_user(p, pages32 + i) || put_user(compat_ptr(p), pages + i)) return -EFAULT; } Index: linux-2.6.17-rc6-mm2/include/linux/syscalls.h =================================================================== --- linux-2.6.17-rc6-mm2.orig/include/linux/syscalls.h 2006-06-16 11:48:52.335699978 -0700 +++ linux-2.6.17-rc6-mm2/include/linux/syscalls.h 2006-06-21 13:31:25.497370669 -0700 @@ -522,7 +522,7 @@ asmlinkage long sys_move_pages(pid_t pid int __user *status, int flags); asmlinkage long compat_sys_move_pages(pid_t pid, unsigned long nr_page, - void __user *pages, + compat_uptr_t __user *pages, const int __user *nodes, int __user *status, int flags);