[PATCHv3,17/30] vdso: try_fill_symtable always for compat tasks

Submitted by Dmitry Safonov on June 28, 2016, 7:24 p.m.

Details

Message ID 20160628192423.14943-18-dsafonov@virtuozzo.com
State Rejected
Series "x86 Compatible C/R, part 2"
Headers show

Commit Message

Dmitry Safonov June 28, 2016, 7:24 p.m.
Their vDSO's pfn differ from native tasks.

TODO: compute on dump compatible vDSO's pfn.

Cc: Cyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: Dmitry Safonov <dsafonov@virtuozzo.com>
---
 criu/vdso.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Patch hide | download patch | download mbox

diff --git a/criu/vdso.c b/criu/vdso.c
index 517755513555..057b2adb4d74 100644
--- a/criu/vdso.c
+++ b/criu/vdso.c
@@ -102,7 +102,14 @@  int parasite_fixup_vdso(struct parasite_ctl *ctl, pid_t pid,
 		 */
 		args->start = vma->e->start;
 		args->len = vma_area_len(vma);
-		args->try_fill_symtable = (fd < 0) ? true : false;
+		/*
+		 * XXX: For compatible tasks, vDSO pfn is different from
+		 * our native vdso_pfn. Check vma explicitly.
+		 */
+		if (!seized_native(ctl))
+			args->try_fill_symtable = true;
+		else
+			args->try_fill_symtable = (fd < 0) ? true : false;
 		args->is_vdso = false;
 
 		if (parasite_execute_daemon(PARASITE_CMD_CHECK_VDSO_MARK, ctl)) {