tracing: Remove side effect from module tracepoints that caused a GPF
Remove the @refcnt argument, because it has side-effects, and arguments with side-effects are not skipped by the jump over disabled instrumentation and are executed even when the tracepoint is disabled. This was also causing a GPF as found by Randy Dunlap: Subject: 2.6.33 GP fault only when built with tracing LKML-Reference: <4BA2B69D.3000309@oracle.com> Note, the current 2.6.34-rc has a fix for the actual cause of the GPF, but this fixes one of its triggers. Tested-by: Randy Dunlap <randy.dunlap@oracle.com> Acked-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Signed-off-by: Li Zefan <lizf@cn.fujitsu.com> LKML-Reference: <4BA97FA7.6040406@cn.fujitsu.com> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
This commit is contained in:
@@ -53,9 +53,9 @@ TRACE_EVENT(module_free,
|
||||
|
||||
DECLARE_EVENT_CLASS(module_refcnt,
|
||||
|
||||
TP_PROTO(struct module *mod, unsigned long ip, int refcnt),
|
||||
TP_PROTO(struct module *mod, unsigned long ip),
|
||||
|
||||
TP_ARGS(mod, ip, refcnt),
|
||||
TP_ARGS(mod, ip),
|
||||
|
||||
TP_STRUCT__entry(
|
||||
__field( unsigned long, ip )
|
||||
@@ -65,7 +65,7 @@ DECLARE_EVENT_CLASS(module_refcnt,
|
||||
|
||||
TP_fast_assign(
|
||||
__entry->ip = ip;
|
||||
__entry->refcnt = refcnt;
|
||||
__entry->refcnt = __this_cpu_read(mod->refptr->count);
|
||||
__assign_str(name, mod->name);
|
||||
),
|
||||
|
||||
@@ -75,16 +75,16 @@ DECLARE_EVENT_CLASS(module_refcnt,
|
||||
|
||||
DEFINE_EVENT(module_refcnt, module_get,
|
||||
|
||||
TP_PROTO(struct module *mod, unsigned long ip, int refcnt),
|
||||
TP_PROTO(struct module *mod, unsigned long ip),
|
||||
|
||||
TP_ARGS(mod, ip, refcnt)
|
||||
TP_ARGS(mod, ip)
|
||||
);
|
||||
|
||||
DEFINE_EVENT(module_refcnt, module_put,
|
||||
|
||||
TP_PROTO(struct module *mod, unsigned long ip, int refcnt),
|
||||
TP_PROTO(struct module *mod, unsigned long ip),
|
||||
|
||||
TP_ARGS(mod, ip, refcnt)
|
||||
TP_ARGS(mod, ip)
|
||||
);
|
||||
|
||||
TRACE_EVENT(module_request,
|
||||
|
Reference in New Issue
Block a user