)]}'
{
  "commit": "e1c7e2a6e67fe9db19dd15e71614526a31b5fdb1",
  "tree": "0b6eb8cf5e699592fc868a44b24e603ad8f3d6af",
  "parents": [
    "4e8a2372f9255a1464ef488ed925455f53fbdaa1"
  ],
  "author": {
    "name": "Li Zefan",
    "email": "lizf@cn.fujitsu.com",
    "time": "Wed Jun 24 09:52:29 2009 +0800"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Wed Jun 24 11:02:49 2009 +0200"
  },
  "message": "tracing/events: Don\u0027t increment @pos in s_start()\n\nWhile testing syscall tracepoints posted by Jason, I found 3 entries\nwere missing when reading available_events. The output size of\navailable_events is \u003c 4 pages, which means we lost 1 entry per page.\n\nThe cause is, it\u0027s wrong to increment @pos in s_start().\n\nActually there\u0027s another bug here -- reading avaiable_events/set_events\ncan race with module unload:\n\n  # cat available_events               |\n      s_start()                        |\n      s_stop()                         |\n                                       | # rmmod foo.ko\n      s_start()                        |\n        call \u003d list_entry(m-\u003eprivate)  |\n\n@call might be freed and accessing it will lead to crash.\n\nReviewed-by: Liming Wang \u003climing.wang@windriver.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c4A4186DD.6090405@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "aa08be69a1b6c1fcc026359ece8613812ad1a492",
      "old_mode": 33188,
      "old_path": "kernel/trace/trace_events.c",
      "new_id": "53c8fd376a88a18ac2c77f5073f76194a6e26c1a",
      "new_mode": 33188,
      "new_path": "kernel/trace/trace_events.c"
    }
  ]
}
