1. 24 Jun, 2009 1 commit
    • Li Zefan's avatar
      tracing/events: Don't increment @pos in s_start() · e1c7e2a6
      Li Zefan authored
      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: default avatarLiming Wang <liming.wang@windriver.com>
      Signed-off-by: default avatarLi Zefan <lizf@cn.fujitsu.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      LKML-Reference: <4A4186DD.6090405@cn.fujitsu.com>
      Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
      e1c7e2a6
  2. 23 Jun, 2009 39 commits