diff --git a/criu/include/util-vdso.h b/criu/include/util-vdso.h index c74360c87..33b7411de 100644 --- a/criu/include/util-vdso.h +++ b/criu/include/util-vdso.h @@ -38,6 +38,7 @@ struct vdso_maps { unsigned long vdso_start; unsigned long vvar_start; struct vdso_symtable sym; + bool compatible; }; #define VDSO_SYMBOL_INIT { .offset = VDSO_BAD_ADDR, } diff --git a/criu/vdso.c b/criu/vdso.c index 257cbcd92..50b8b8dba 100644 --- a/criu/vdso.c +++ b/criu/vdso.c @@ -597,7 +597,8 @@ int vdso_init_restore(void) vdso_maps.sym = kdat.vdso_sym; #ifdef CONFIG_COMPAT - vdso_maps_compat.sym = kdat.vdso_sym_compat; + vdso_maps_compat.sym = kdat.vdso_sym_compat; + vdso_maps_compat.compatible = true; #endif return 0; @@ -621,7 +622,8 @@ int kerndat_vdso_fill_symtable(void) pr_err("Failed to fill compat vdso symtable\n"); return -1; } - kdat.vdso_sym_compat = vdso_maps_compat.sym; + vdso_maps_compat.compatible = true; + kdat.vdso_sym_compat = vdso_maps_compat.sym; #endif return 0;