mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-30 22:05:36 +00:00
vdso: Make it arch specific
Currently we build vDSO handling code for all archs provided in the source code having some "common" parts inside pie/vdso.c, pie/vdso-stub.c, vdso-stub.c and vdso.c. This were more or less well but in new linux kernels (starting from 3.16 presumably) the vDSO has been significantly reworked so every architecture must have own vDSO handling engine (just like the kernel does). So in this patch we move vDSO code to arch specific and because aarch64 actually doesn't implement proxification yet due to kernel restrictions -- we drops it out. When there will be kernel support we bring it back in proper arch/aarch64 implementation. Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> Acked-by: Alexander Kartashov <alekskartashov@parallels.com> Signed-off-by: Pavel Emelyanov <xemul@parallels.com>
This commit is contained in:
committed by
Pavel Emelyanov
parent
676708e3b3
commit
c473461d24
@@ -401,9 +401,14 @@ int parse_smaps(pid_t pid, struct vm_area_list *vma_area_list, bool use_map_file
|
||||
} else if (strstr(buf, "[vsyscall]") || strstr(buf, "[vectors]")) {
|
||||
vma_area->e->status |= VMA_AREA_VSYSCALL;
|
||||
} else if (strstr(buf, "[vdso]")) {
|
||||
#ifdef CONFIG_VDSO
|
||||
vma_area->e->status |= VMA_AREA_REGULAR;
|
||||
if ((vma_area->e->prot & VDSO_PROT) == VDSO_PROT)
|
||||
vma_area->e->status |= VMA_AREA_VDSO;
|
||||
#else
|
||||
pr_warn_once("Found vDSO area without support\n");
|
||||
goto err;
|
||||
#endif
|
||||
} else if (strstr(buf, "[heap]")) {
|
||||
vma_area->e->status |= VMA_AREA_REGULAR | VMA_AREA_HEAP;
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user