diff options
author | Li Zefan <[email protected]> | 2009-06-24 09:52:29 +0800 |
---|---|---|
committer | Ingo Molnar <[email protected]> | 2009-06-24 11:02:49 +0200 |
commit | e1c7e2a6e67fe9db19dd15e71614526a31b5fdb1 (patch) | |
tree | 0b6eb8cf5e699592fc868a44b24e603ad8f3d6af /net/lapb/lapb_timer.c | |
parent | 4e8a2372f9255a1464ef488ed925455f53fbdaa1 (diff) |
tracing/events: Don't increment @pos in s_start()
While testing syscall tracepoints posted by Jason, I found 3 entries
were missing when reading available_events. The output size of
available_events is < 4 pages, which means we lost 1 entry per page.
The cause is, it's wrong to increment @pos in s_start().
Actually there's another bug here -- reading avaiable_events/set_events
can race with module unload:
# cat available_events |
s_start() |
s_stop() |
| # rmmod foo.ko
s_start() |
call = list_entry(m->private) |
@call might be freed and accessing it will lead to crash.
Reviewed-by: Liming Wang <[email protected]>
Signed-off-by: Li Zefan <[email protected]>
Cc: Steven Rostedt <[email protected]>
Cc: Frederic Weisbecker <[email protected]>
LKML-Reference: <[email protected]>
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'net/lapb/lapb_timer.c')
0 files changed, 0 insertions, 0 deletions