[CRIU] [PATCH 2/2] cr-check: add compat_restore check
Pavel Emelyanov
xemul at virtuozzo.com
Tue Jan 10 04:34:48 PST 2017
On 01/09/2017 07:59 PM, Dmitry Safonov wrote:
> Initialy, I thought to name it "compat_restore", but after I've dropped
> the second 32-bit parasite (which surely made compat code lesser and
> easier), our parasite works in 64-bit in 32-bit task and ptrace()
> for setting registers in this long-jumped situation will work correctly
> only after v4.9 kernel. Maybe it can be work-arounded if needed,
> but yet no compatible dump for pre-v4.9 kernels.
>
> Requested-by: Andrei Vagin <avagin at virtuozzo.com>
> Signed-off-by: Dmitry Safonov <dsafonov at virtuozzo.com>
> ---
> criu/cr-check.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/criu/cr-check.c b/criu/cr-check.c
> index 60279e135dfa..94c5074557ce 100644
> --- a/criu/cr-check.c
> +++ b/criu/cr-check.c
> @@ -48,6 +48,7 @@
> #include "libnetlink.h"
> #include "net.h"
> #include "linux/userfaultfd.h"
> +#include "restorer.h"
>
> static char *feature_name(int (*func)());
>
> @@ -1134,6 +1135,14 @@ static int check_loginuid(void)
> return 0;
> }
>
> +static int check_compat_cr(void)
Call for this should also be added to cr_check()
> +{
> + if (kdat_compat_sigreturn_test())
> + return 0;
> + pr_err("compat_cr is not supported. Requires kernel >= v4.9\n");
> + return -1;
> +}
> +
> struct feature_list {
> char *name;
> int (*func)();
> @@ -1154,6 +1163,7 @@ static struct feature_list feature_list[] = {
> { "autofs", check_autofs },
> { "tcp_half_closed", check_tcp_halt_closed },
> { "lazy_pages", check_uffd },
> + { "compat_cr", check_compat_cr },
> { NULL, NULL },
> };
>
>
More information about the CRIU
mailing list