[Title] fix the problem by unhandled syscall (unshare)
authorJaewon Lim <jaewon81.lim@samsung.com>
Mon, 10 Sep 2012 07:21:57 +0000 (16:21 +0900)
committerJaewon Lim <jaewon81.lim@samsung.com>
Mon, 10 Sep 2012 07:21:57 +0000 (16:21 +0900)
[Type] bug fix
[Module] valgrind
[Priority] major
[Jira#] 6973
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]

coregrind/m_syswrap/priv_syswrap-linux.h
coregrind/m_syswrap/syswrap-arm-linux.c
coregrind/m_syswrap/syswrap-linux.c
coregrind/m_syswrap/syswrap-x86-linux.c

index 1d0f5b7..f4e501d 100644 (file)
@@ -44,6 +44,7 @@ extern SysRes ML_(do_fork_clone) ( ThreadId tid, UInt flags,
 
 // Linux-specific (but non-arch-specific) syscalls
 
+DECL_TEMPLATE(linux, sys_unshare);
 DECL_TEMPLATE(linux, sys_mount);
 DECL_TEMPLATE(linux, sys_oldumount);
 DECL_TEMPLATE(linux, sys_umount);
index 08aef53..85ef7af 100644 (file)
@@ -1774,7 +1774,7 @@ static SyscallTableEntry syscall_main_table[] = {
    PLAXY(__NR_shmctl,            sys_shmctl),         // 308 
 //   LINX_(__NR_pselect6,       sys_pselect6),         //
 
-//   LINX_(__NR_unshare,       sys_unshare),          // 310
+   LINX_(__NR_unshare,       sys_unshare),          // 310
    LINX_(__NR_set_robust_list,    sys_set_robust_list),  // 311
    LINXY(__NR_get_robust_list,    sys_get_robust_list),  // 312
 //   LINX_(__NR_splice,            sys_ni_syscall),       // 313
index f0b94ed..886ee4a 100644 (file)
@@ -457,6 +457,16 @@ SysRes ML_(do_fork_clone) ( ThreadId tid, UInt flags,
 #error Unknown endianness
 #endif
 
+/* --------------------------------------------------------------------
+   *unshare wrapper (unhandled syscall)
+   ----------------------------------------------------------------- */
+
+PRE(sys_unshare)
+{
+       PRINT("sys_unshare ( %d )", ARG1);
+       PRE_REG_READ1(long, "unshare", int, flags);
+}
+
 /* ---------------------------------------------------------------------
    *mount wrappers
    ------------------------------------------------------------------ */
index b0b821f..8cbe4e8 100644 (file)
@@ -2187,7 +2187,7 @@ static SyscallTableEntry syscall_table[] = {
    LINX_(__NR_pselect6,                 sys_pselect6),         // 308
    LINXY(__NR_ppoll,            sys_ppoll),            // 309
 
-//   LINX_(__NR_unshare,                sys_unshare),          // 310
+   LINX_(__NR_unshare,          sys_unshare),          // 310
    LINX_(__NR_set_robust_list,  sys_set_robust_list),  // 311
    LINXY(__NR_get_robust_list,  sys_get_robust_list),  // 312
    LINX_(__NR_splice,            sys_splice),           // 313