提交 8205ff1d 编写于 作者: L Linus Torvalds

Merge tag 'trace-fixes-v4.5-rc7' of...

Merge tag 'trace-fixes-v4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace

Pull tracing fix from Steven Rostedt:
 "I previously sent a fix that prevents all trace events from being
  called if the current cpu is offline.

  But I forgot that in 3.18, we added lockdep checks to test RCU usage
  even when the event is disabled.  Although there cannot be any bug
  when a cpu is going offline, we now get false warnings triggered by
  the added checks of the event being disabled.

  I removed the check from the tracepoint code itself, and added it to
  the condition section (which is "1" for 'no condition').  This way the
  online cpu check will get checked in all the right locations"

* tag 'trace-fixes-v4.5-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
  tracing: Fix check for cpu online when event is disabled
...@@ -134,9 +134,6 @@ extern void syscall_unregfunc(void); ...@@ -134,9 +134,6 @@ extern void syscall_unregfunc(void);
void *it_func; \ void *it_func; \
void *__data; \ void *__data; \
\ \
if (!cpu_online(raw_smp_processor_id())) \
return; \
\
if (!(cond)) \ if (!(cond)) \
return; \ return; \
prercu; \ prercu; \
...@@ -343,15 +340,19 @@ extern void syscall_unregfunc(void); ...@@ -343,15 +340,19 @@ extern void syscall_unregfunc(void);
* "void *__data, proto" as the callback prototype. * "void *__data, proto" as the callback prototype.
*/ */
#define DECLARE_TRACE_NOARGS(name) \ #define DECLARE_TRACE_NOARGS(name) \
__DECLARE_TRACE(name, void, , 1, void *__data, __data) __DECLARE_TRACE(name, void, , \
cpu_online(raw_smp_processor_id()), \
void *__data, __data)
#define DECLARE_TRACE(name, proto, args) \ #define DECLARE_TRACE(name, proto, args) \
__DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), 1, \ __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \
cpu_online(raw_smp_processor_id()), \
PARAMS(void *__data, proto), \ PARAMS(void *__data, proto), \
PARAMS(__data, args)) PARAMS(__data, args))
#define DECLARE_TRACE_CONDITION(name, proto, args, cond) \ #define DECLARE_TRACE_CONDITION(name, proto, args, cond) \
__DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), PARAMS(cond), \ __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \
cpu_online(raw_smp_processor_id()) && (PARAMS(cond)), \
PARAMS(void *__data, proto), \ PARAMS(void *__data, proto), \
PARAMS(__data, args)) PARAMS(__data, args))
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册