From 9e002751201156509b9b8a965e158934964046a0 Mon Sep 17 00:00:00 2001 From: Tomoki Shirasawa Date: Wed, 18 Dec 2013 16:10:13 +0900 Subject: [PATCH] fork & execve return EOPNOTSUPP (temporary hack) --- arch/x86/kernel/include/syscall_list.h | 1 + kernel/syscall.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/arch/x86/kernel/include/syscall_list.h b/arch/x86/kernel/include/syscall_list.h index 21738bea..b079ca4e 100644 --- a/arch/x86/kernel/include/syscall_list.h +++ b/arch/x86/kernel/include/syscall_list.h @@ -43,6 +43,7 @@ SYSCALL_HANDLED(24, sched_yield) SYSCALL_HANDLED(28, madvise) SYSCALL_HANDLED(39, getpid) SYSCALL_HANDLED(56, clone) +SYSCALL_HANDLED(59, execve) SYSCALL_HANDLED(60, exit) SYSCALL_HANDLED(62, kill) SYSCALL_DELEGATED(63, uname) diff --git a/kernel/syscall.c b/kernel/syscall.c index 35d1c31f..34970de5 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -922,13 +922,22 @@ SYSCALL_DECLARE(arch_prctl) ihk_mc_syscall_arg1(ctx)); } +SYSCALL_DECLARE(execve) +{ + return -EOPNOTSUPP; +} SYSCALL_DECLARE(clone) { int cpuid; int clone_flags = ihk_mc_syscall_arg0(ctx); struct process *new; - + + if(clone_flags == 0x1200011){ + // fork() + return -EOPNOTSUPP; + } + dkprintf("[%d] clone(): stack_pointr: 0x%lX\n", ihk_mc_get_processor_id(), (unsigned long)ihk_mc_syscall_arg1(ctx));