On 10/04, jeffxu@xxxxxxxxxxxx wrote: > > It is important to note that the CHECKPOINT_RESTORE feature (CRIU) may > alter the mapping of vdso, vvar, and sigpage during restore > operations. Consequently, this feature cannot be universally enabled > across all systems. Can't review. But as for uprobes, I'd prefer a simpler patch which doesn't need the new CONFIG_ and/or kernel boot options, something like the patch below. And I don't really like the fact that this patch changes the behaviour of the "generic" _install_special_mapping() helper, but I won't argue. Oleg. --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -430,6 +430,8 @@ extern unsigned int kobjsize(const void *objp); #ifdef CONFIG_64BIT /* VM is sealed, in vm_flags */ #define VM_SEALED _BITUL(63) +#else +#define VM_SEALED 0 #endif /* Bits set in the VMA until the stack is in its final location */ diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index 40ecab0971ff..388373c11593 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -1510,7 +1510,7 @@ static int xol_add_vma(struct mm_struct *mm, struct xol_area *area) } vma = _install_special_mapping(mm, area->vaddr, PAGE_SIZE, - VM_EXEC|VM_MAYEXEC|VM_DONTCOPY|VM_IO, + VM_EXEC|VM_MAYEXEC|VM_DONTCOPY|VM_IO|VM_SEALED, &xol_mapping); if (IS_ERR(vma)) { ret = PTR_ERR(vma);