)]}'
{
  "commit": "f3b9aae16219aaeca2dd5a9ca69f7a10faa063df",
  "tree": "67086cbe4b26fc29035f7b800f56d16a653373f7",
  "parents": [
    "e057a5e5647a1c9d0d0054fbd298bfa04b3d1cb4"
  ],
  "author": {
    "name": "Frederic Weisbecker",
    "email": "fweisbec@gmail.com",
    "time": "Sun Apr 19 23:39:33 2009 +0200"
  },
  "committer": {
    "name": "Ingo Molnar",
    "email": "mingo@elte.hu",
    "time": "Mon Apr 20 10:59:20 2009 +0200"
  },
  "message": "tracing/ring-buffer: Add unlock recursion protection on discard\n\nThe pair of helpers trace_recursive_lock() and trace_recursive_unlock()\nhave been introduced recently to provide generic tracing recursion\nprotection.\n\nThey are used in a symetric way:\n\n - trace_recursive_lock() on buffer reserve\n - trace_recursive_unlock() on buffer commit\n\nHowever sometimes, we don\u0027t commit but discard on entry\nto the buffer, ie: in case of filter checking.\n\nThen we must also unlock the recursion protection on discard time,\notherwise the tracing gets definitely deactivated and a warning\nis raised spuriously, such as:\n\n111.119821] ------------[ cut here ]------------\n[  111.119829] WARNING: at kernel/trace/ring_buffer.c:1498 ring_buffer_lock_reserve+0x1b7/0x1d0()\n[  111.119835] Hardware name: AMILO Li 2727\n[  111.119839] Modules linked in:\n[  111.119846] Pid: 5731, comm: Xorg Tainted: G        W  2.6.30-rc1 #69\n[  111.119851] Call Trace:\n[  111.119863]  [\u003cffffffff8025ce68\u003e] warn_slowpath+0xd8/0x130\n[  111.119873]  [\u003cffffffff8028a30f\u003e] ? __lock_acquire+0x19f/0x1ae0\n[  111.119882]  [\u003cffffffff8028a30f\u003e] ? __lock_acquire+0x19f/0x1ae0\n[  111.119891]  [\u003cffffffff802199b0\u003e] ? native_sched_clock+0x20/0x70\n[  111.119899]  [\u003cffffffff80286dee\u003e] ? put_lock_stats+0xe/0x30\n[  111.119906]  [\u003cffffffff80286eb8\u003e] ? lock_release_holdtime+0xa8/0x150\n[  111.119913]  [\u003cffffffff802c8ae7\u003e] ring_buffer_lock_reserve+0x1b7/0x1d0\n[  111.119921]  [\u003cffffffff802cd110\u003e] trace_buffer_lock_reserve+0x30/0x70\n[  111.119930]  [\u003cffffffff802ce000\u003e] trace_current_buffer_lock_reserve+0x20/0x30\n[  111.119939]  [\u003cffffffff802474e8\u003e] ftrace_raw_event_sched_switch+0x58/0x100\n[  111.119948]  [\u003cffffffff808103b7\u003e] __schedule+0x3a7/0x4cd\n[  111.119957]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.119964]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.119971]  [\u003cffffffff80810c08\u003e] schedule+0x18/0x40\n[  111.119977]  [\u003cffffffff80810e09\u003e] preempt_schedule+0x39/0x60\n[  111.119985]  [\u003cffffffff80813bd3\u003e] _read_unlock+0x53/0x60\n[  111.119993]  [\u003cffffffff807259d2\u003e] sock_def_readable+0x72/0x80\n[  111.120002]  [\u003cffffffff807ad5ed\u003e] unix_stream_sendmsg+0x24d/0x3d0\n[  111.120011]  [\u003cffffffff807219a3\u003e] sock_aio_write+0x143/0x160\n[  111.120019]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.120026]  [\u003cffffffff80721860\u003e] ? sock_aio_write+0x0/0x160\n[  111.120033]  [\u003cffffffff80721860\u003e] ? sock_aio_write+0x0/0x160\n[  111.120042]  [\u003cffffffff8031c283\u003e] do_sync_readv_writev+0xf3/0x140\n[  111.120049]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.120057]  [\u003cffffffff80276ff0\u003e] ? autoremove_wake_function+0x0/0x40\n[  111.120067]  [\u003cffffffff8045d489\u003e] ? cap_file_permission+0x9/0x10\n[  111.120074]  [\u003cffffffff8045c1e6\u003e] ? security_file_permission+0x16/0x20\n[  111.120082]  [\u003cffffffff8031cab4\u003e] do_readv_writev+0xd4/0x1f0\n[  111.120089]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.120097]  [\u003cffffffff80211b56\u003e] ? ftrace_call+0x5/0x2b\n[  111.120105]  [\u003cffffffff8031cc18\u003e] vfs_writev+0x48/0x70\n[  111.120111]  [\u003cffffffff8031cd65\u003e] sys_writev+0x55/0xc0\n[  111.120119]  [\u003cffffffff80211e32\u003e] system_call_fastpath+0x16/0x1b\n[  111.120125] ---[ end trace 15605f4e98d5ccb5 ]---\n\n[ Impact: fix spurious warning triggering tracing shutdown ]\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "bffde630c4e2472fc7023a10fec676c500b6a859",
      "old_mode": 33188,
      "old_path": "kernel/trace/ring_buffer.c",
      "new_id": "e145969a8edab596fd8d2b7d4411718d5692caf2",
      "new_mode": 33188,
      "new_path": "kernel/trace/ring_buffer.c"
    }
  ]
}
