From 20b6c5f50628b2c4e8186cff6f4544bebdc38aef Mon Sep 17 00:00:00 2001 From: Julian Seward Date: Mon, 22 May 2017 07:53:04 +0000 Subject: [PATCH] Bug 379966 - WARNING: unhandled amd64-linux syscall: 313 (finit_module). Patch from Bartosz Golaszewski (bartekgola@gmail.com). git-svn-id: svn://svn.valgrind.org/valgrind/trunk@16403 --- coregrind/m_syswrap/priv_syswrap-linux.h | 1 + coregrind/m_syswrap/syswrap-amd64-linux.c | 2 +- coregrind/m_syswrap/syswrap-linux.c | 11 +++++++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/coregrind/m_syswrap/priv_syswrap-linux.h b/coregrind/m_syswrap/priv_syswrap-linux.h index 4c255d105..5b5c8ef37 100644 --- a/coregrind/m_syswrap/priv_syswrap-linux.h +++ b/coregrind/m_syswrap/priv_syswrap-linux.h @@ -273,6 +273,7 @@ DECL_TEMPLATE(linux, sys_stime); /* maybe generic? I'm not sure */ // Linux specific (kernel modules) DECL_TEMPLATE(linux, sys_init_module); +DECL_TEMPLATE(linux, sys_finit_module); DECL_TEMPLATE(linux, sys_delete_module); // Linux-specific (oprofile-related) diff --git a/coregrind/m_syswrap/syswrap-amd64-linux.c b/coregrind/m_syswrap/syswrap-amd64-linux.c index 35331bfa5..14ad6499e 100644 --- a/coregrind/m_syswrap/syswrap-amd64-linux.c +++ b/coregrind/m_syswrap/syswrap-amd64-linux.c @@ -832,7 +832,7 @@ static SyscallTableEntry syscall_table[] = { LINXY(__NR_process_vm_readv, sys_process_vm_readv), // 310 LINX_(__NR_process_vm_writev, sys_process_vm_writev),// 311 LINX_(__NR_kcmp, sys_kcmp), // 312 -// LIN__(__NR_finit_module, sys_ni_syscall), // 313 + LINX_(__NR_finit_module, sys_finit_module), // 313 // LIN__(__NR_sched_setattr, sys_ni_syscall), // 314 // LIN__(__NR_sched_getattr, sys_ni_syscall), // 315 diff --git a/coregrind/m_syswrap/syswrap-linux.c b/coregrind/m_syswrap/syswrap-linux.c index e9652c37c..26e02fd02 100644 --- a/coregrind/m_syswrap/syswrap-linux.c +++ b/coregrind/m_syswrap/syswrap-linux.c @@ -5722,6 +5722,17 @@ PRE(sys_init_module) PRE_MEM_RASCIIZ( "init_module(uargs)", ARG3 ); } +PRE(sys_finit_module) +{ + *flags |= SfMayBlock; + + PRINT("sys_finit_module ( %lx, %#lx(\"%s\"), %lx )", + ARG1, ARG2, (HChar*)ARG2, ARG3); + PRE_REG_READ3(long, "finit_module", + int, fd, const char *, params, int, flags); + PRE_MEM_RASCIIZ("finit_module(params)", ARG2); +} + PRE(sys_delete_module) { *flags |= SfMayBlock; -- 2.11.4.GIT