use more compatible code in special_mapping_restore
Subsystems (2)
PATCH 1/1 use more compatible code in special_mapping_restore
(Also remove some unused vars in my do_unmap helper)
Signed-off-by Serge E. Hallyn <serue-r/[email protected]>
--- mm/mmap.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-)
mm/mmap.c +5 -7
@@ -30,6 +30,7 @@#include <linux/mmu_notifier.h> #include <linux/perf_event.h> #include <linux/checkpoint.h> +#include <linux/compat.h> #include <asm/uaccess.h> #include <asm/cacheflush.h>
@@ -1960,9 +1961,6 @@ int do_munmap_nocheck(struct mm_struct *mm, unsigned long start, size_t len)int do_munmap (struct mm_struct *mm,unsigned long start,size_t len) { -unsigned long end; -struct vm_area_struct *vma, *prev, *last; -if ((start & ~PAGE_MASK ) || start >TASK_SIZE || len >TASK_SIZE -start)return -EINVAL ;
@@ -2354,10 +2352,10 @@ int special_mapping_restore(struct ckpt_ctx *ctx,* Even that, is very basic - call arch_setup_additional_pages * requiring the same mapping (start address) as before. */ -#ifdef CONFIG_X86_64 && CONFIG_COMPAT -if (test_thread_flag (TIF_IA32 )) -return syscall32_setup_pages (NULL , h->vm_start,0 ); -#endif +#ifdef CONFIG_COMPAT +if (is_compat_task ()) +return compat_arch_setup_additional_pages (NULL , h->vm_start,0 ); +#endif return arch_setup_additional_pages(NULL, h->vm_start, 0); }#else /* !CONFIG_CHECKPOINT */
Signature · 1 line
1.6.0.6
A message that is not in the archive (sent off-list or not yet received): 20100129033041.GA21071-r/[email protected]
Quoted 3 lines · Serge E. Hallyn
(Also remove some unused vars in my
do_unmaphelper)Signed-off-by Serge E. Hallyn <serue-r/[email protected]>
Please don't apply this. It wasn't supposed to change behavior, but it does, for the worse.
Quoted 48 lines
--- mm/mmap.c | 12 +++++------- 1 files changed, 5 insertions(+), 7 deletions(-)mm/mmap.c +5
-7@@ -30,6 +30,7 @@#include <linux/mmu_notifier.h> #include <linux/perf_event.h> #include <linux/checkpoint.h> +#include <linux/compat.h> #include <asm/uaccess.h> #include <asm/cacheflush.h> @@ -1960,9 +1961,6 @@ int do_munmap_nocheck(struct mm_struct *mm, unsigned long start, size_t len)int do_munmap (struct mm_struct *mm,unsigned long start,size_t len) { -unsigned long end; -struct vm_area_struct *vma, *prev, *last; -if ((start & ~PAGE_MASK ) || start >TASK_SIZE || len >TASK_SIZE -start)return -EINVAL ;@@ -2354,10 +2352,10 @@ int special_mapping_restore(struct ckpt_ctx *ctx,* Even that, is very basic - call arch_setup_additional_pages * requiring the same mapping (start address) as before. */ -#ifdef CONFIG_X86_64 && CONFIG_COMPAT -if (test_thread_flag (TIF_IA32 )) -return syscall32_setup_pages (NULL , h->vm_start,0 ); -#endif +#ifdef CONFIG_COMPAT +if (is_compat_task ()) +return compat_arch_setup_additional_pages (NULL , h->vm_start,0 ); +#endif return arch_setup_additional_pages(NULL, h->vm_start, 0); }#else /* !CONFIG_CHECKPOINT */ Signature · 6 lines
1.6.0.6 _______________________________________________ Containers mailing list Containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org https://lists.linux-foundation.org/mailman/listinfo/containers