tracing/syscalls: Convert redundant syscall_nr checks into WARN_ON
With the ftrace events now checking if the syscall_nr is valid upon initialisation it should no longer be possible to register or unregister a syscall event without a valid syscall_nr since they should not be created. This adds a WARN_ON_ONCE in the register and unregister functions to locate potential regressions in the future. Signed-off-by: Ian Munsie <imunsie@au1.ibm.com> LKML-Reference: <1296703645-18718-3-git-send-email-imunsie@au1.ibm.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
committed by
Steven Rostedt
parent
ba976970c7
commit
3773b389b6
@@ -359,7 +359,7 @@ int reg_event_syscall_enter(struct ftrace_event_call *call)
|
|||||||
int num;
|
int num;
|
||||||
|
|
||||||
num = ((struct syscall_metadata *)call->data)->syscall_nr;
|
num = ((struct syscall_metadata *)call->data)->syscall_nr;
|
||||||
if (num < 0 || num >= NR_syscalls)
|
if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
mutex_lock(&syscall_trace_lock);
|
mutex_lock(&syscall_trace_lock);
|
||||||
if (!sys_refcount_enter)
|
if (!sys_refcount_enter)
|
||||||
@@ -377,7 +377,7 @@ void unreg_event_syscall_enter(struct ftrace_event_call *call)
|
|||||||
int num;
|
int num;
|
||||||
|
|
||||||
num = ((struct syscall_metadata *)call->data)->syscall_nr;
|
num = ((struct syscall_metadata *)call->data)->syscall_nr;
|
||||||
if (num < 0 || num >= NR_syscalls)
|
if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
|
||||||
return;
|
return;
|
||||||
mutex_lock(&syscall_trace_lock);
|
mutex_lock(&syscall_trace_lock);
|
||||||
sys_refcount_enter--;
|
sys_refcount_enter--;
|
||||||
@@ -393,7 +393,7 @@ int reg_event_syscall_exit(struct ftrace_event_call *call)
|
|||||||
int num;
|
int num;
|
||||||
|
|
||||||
num = ((struct syscall_metadata *)call->data)->syscall_nr;
|
num = ((struct syscall_metadata *)call->data)->syscall_nr;
|
||||||
if (num < 0 || num >= NR_syscalls)
|
if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
|
||||||
return -ENOSYS;
|
return -ENOSYS;
|
||||||
mutex_lock(&syscall_trace_lock);
|
mutex_lock(&syscall_trace_lock);
|
||||||
if (!sys_refcount_exit)
|
if (!sys_refcount_exit)
|
||||||
@@ -411,7 +411,7 @@ void unreg_event_syscall_exit(struct ftrace_event_call *call)
|
|||||||
int num;
|
int num;
|
||||||
|
|
||||||
num = ((struct syscall_metadata *)call->data)->syscall_nr;
|
num = ((struct syscall_metadata *)call->data)->syscall_nr;
|
||||||
if (num < 0 || num >= NR_syscalls)
|
if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
|
||||||
return;
|
return;
|
||||||
mutex_lock(&syscall_trace_lock);
|
mutex_lock(&syscall_trace_lock);
|
||||||
sys_refcount_exit--;
|
sys_refcount_exit--;
|
||||||
|
Reference in New Issue
Block a user