)]}'
{
  "log": [
    {
      "commit": "0308b2032bd7936d9bca5bc059eaadd79670bae0",
      "tree": "3014d80a35c6be1c5790569a7573e77a266a08be",
      "parents": [
        "38abce8b7fd53c3c85092fa04102db6194de854f"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 23 10:35:36 2015 -0500"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 03 10:50:24 2016 -0500"
      },
      "message": "ring-buffer: Update read stamp with first real commit on page\n\ncommit b81f472a208d3e2b4392faa6d17037a89442f4ce upstream.\n\nDo not update the read stamp after swapping out the reader page from the\nwrite buffer. If the reader page is swapped out of the buffer before an\nevent is written to it, then the read_stamp may get an out of date\ntimestamp, as the page timestamp is updated on the first commit to that\npage.\n\nrb_get_reader_page() only returns a page if it has an event on it, otherwise\nit will return NULL. At that point, check if the page being returned has\nevents and has not been read yet. Then at that point update the read_stamp\nto match the time stamp of the reader page.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "6c4824b2b1050e7b247f74341c30db528e6556bb",
      "tree": "95ff0ac54866282b26287815aba4c064b0cd2efb",
      "parents": [
        "58ca0c90e52a44d795ca422d190ce826e688156b"
      ],
      "author": {
        "name": "Kishor PK",
        "email": "kpbhat@codeaurora.org",
        "time": "Fri Jan 29 11:13:25 2016 +0530"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:34:07 2016 -0500"
      },
      "message": "trace: prevent NULL pointer dereference\n\nPrevent unintended NULL pointer dereference in trace_event_perf.\n\nChange-Id: I35151c460b4350ebd414b67c655684c2019f799f\nSigned-off-by: Kishor PK \u003ckpbhat@codeaurora.org\u003e\nSigned-off-by: Srinivasarao P \u003cspathi@codeaurora.org\u003e\n"
    },
    {
      "commit": "9cc712efc708bf2d25b6a6c013c66c42f2cfccd0",
      "tree": "f4b7b9d2354b77f6a63eacded1c5b32282c18abc",
      "parents": [
        "64c363146fe8b4b26285d36fad0fc01b9c8c1285"
      ],
      "author": {
        "name": "José Adolfo Galdámez",
        "email": "josegalre@pac-rom.com",
        "time": "Wed Oct 21 21:52:13 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:04:59 2016 -0500"
      },
      "message": "Merge tag \u0027v3.4.110\u0027 into mm-6.0\n\nChange-Id: I0afc69bce474139d1b70e062d72c0b8054529833\nSigned-off-by: José Adolfo Galdámez \u003cjosegalre@pac-rom.com\u003e\n"
    },
    {
      "commit": "64c363146fe8b4b26285d36fad0fc01b9c8c1285",
      "tree": "f4597aeccc6d37aadbf3a719dfefc62632e4ee10",
      "parents": [
        "900469d0b0c337db19908f77d172f4b17f4573ba"
      ],
      "author": {
        "name": "José Adolfo Galdámez",
        "email": "josegalre@pac-rom.com",
        "time": "Mon Sep 21 22:00:27 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:03:50 2016 -0500"
      },
      "message": "Merge tag \u0027v3.4.109\u0027 into mm-6.0\n\nChange-Id: I93b29443377e338fc5d3b031b130da720f788879\nSigned-off-by: José Adolfo Galdámez \u003cjosegalre@pac-rom.com\u003e\n"
    },
    {
      "commit": "900469d0b0c337db19908f77d172f4b17f4573ba",
      "tree": "e7c8e6e70ad09ecc74c7385269f9a7a908489b88",
      "parents": [
        "3591a444f6b8cb82a9b88a49a4e67d8f4b61a6de"
      ],
      "author": {
        "name": "José Adolfo Galdámez",
        "email": "josegalre@pac-rom.com",
        "time": "Sat Jun 20 23:45:36 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:02:51 2016 -0500"
      },
      "message": "Merge tag \u0027v3.4.108\u0027 into mm-6.0\n\nChange-Id: I5ee718e5c87c9647c6edf0926a887679e065a649\nSigned-off-by: José Adolfo Galdámez \u003cjosegalre@pac-rom.com\u003e\n"
    },
    {
      "commit": "1097d78180e1a2916c2bcdb15cb90ba131af9cd8",
      "tree": "5910f8fc0dcb85c71011ccccee18895769699390",
      "parents": [
        "3ded4adc97887ddde3c1855f29f062e015d19425",
        "7fd7a446b1c2b96252e4389746e5419eae04faef"
      ],
      "author": {
        "name": "Paul",
        "email": "javelinanddart@gmail.com",
        "time": "Sun Jan 11 17:15:40 2015 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Jan 11 17:20:45 2015 -0800"
      },
      "message": "Merge tag \u0027v3.4.105\u0027 into cm-12.0\n\nThis is the 3.4.105 stable release\n\nConflicts:\n\tarch/arm/mm/proc-v7.S\n\tdrivers/bluetooth/hci_ldisc.c\n\tdrivers/media/dvb/dvb-core/dmxdev.c\n\tdrivers/usb/core/driver.c\n\tdrivers/usb/dwc3/core.c\n\tdrivers/usb/host/xhci-hub.c\n\tdrivers/usb/host/xhci.c\n\tdrivers/usb/serial/qcserial.c\n\tdrivers/usb/serial/usb_wwan.c\n\tkernel/events/core.c\n\tkernel/time/tick-sched.ck\n\tkernel/futex.c\n\tmm/memory_hotplug.c\n\tmm/vmscan.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/ipv4/ping.c\n\tnet/wireless/nl80211.c\n\tsound/soc/soc-core.c\n\nChange-Id: Id09da84afb427ba1a32ff26e74f2bb86458d4a2e\n"
    },
    {
      "commit": "a4273088648f2dc90c3a15060090285397ef8b09",
      "tree": "5b2c38cfb60973169713db30208a72500ee10c8b",
      "parents": [
        "7533da47fb87aabf1d79020e62c74723ec001421"
      ],
      "author": {
        "name": "Rabin Vincent",
        "email": "rabin@rab.in",
        "time": "Wed Oct 29 23:06:58 2014 +0100"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Thu Nov 06 18:12:02 2014 -0600"
      },
      "message": "tracing/syscalls: Ignore numbers outside NR_syscalls\u0027 range\n\nARM has some private syscalls (for example, set_tls(2)) which lie\noutside the range of NR_syscalls.  If any of these are called while\nsyscall tracing is being performed, out-of-bounds array access will\noccur in the ftrace and perf sys_{enter,exit} handlers.\n\n # trace-cmd record -e raw_syscalls:* true \u0026\u0026 trace-cmd report\n ...\n true-653   [000]   384.675777: sys_enter:            NR 192 (0, 1000, 3, 4000022, ffffffff, 0)\n true-653   [000]   384.675812: sys_exit:             NR 192 \u003d 1995915264\n true-653   [000]   384.675971: sys_enter:            NR 983045 (76f74480, 76f74000, 76f74b28, 76f74480, 76f76f74, 1)\n true-653   [000]   384.675988: sys_exit:             NR 983045 \u003d 0\n ...\n\n # trace-cmd record -e syscalls:* true\n [   17.289329] Unable to handle kernel paging request at virtual address aaaaaace\n [   17.289590] pgd \u003d 9e71c000\n [   17.289696] [aaaaaace] *pgd\u003d00000000\n [   17.289985] Internal error: Oops: 5 [#1] PREEMPT SMP ARM\n [   17.290169] Modules linked in:\n [   17.290391] CPU: 0 PID: 704 Comm: true Not tainted 3.18.0-rc2+ #21\n [   17.290585] task: 9f4dab00 ti: 9e710000 task.ti: 9e710000\n [   17.290747] PC is at ftrace_syscall_enter+0x48/0x1f8\n [   17.290866] LR is at syscall_trace_enter+0x124/0x184\n\nFix this by ignoring out-of-NR_syscalls-bounds syscall numbers.\n\nCommit cd0980fc8add \"tracing: Check invalid syscall nr while tracing syscalls\"\nadded the check for less than zero, but it should have also checked\nfor greater than NR_syscalls.\n\nLink: http://lkml.kernel.org/p/1414620418-29472-1-git-send-email-rabin@rab.in\n\nChange-Id: Ic7ab546938e4655d73791d4cf371ffd9244c3e4d\nFixes: cd0980fc8add \"tracing: Check invalid syscall nr while tracing syscalls\"\nCc: stable@vger.kernel.org # 2.6.33+\nSigned-off-by: Rabin Vincent \u003crabin@rab.in\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7533da47fb87aabf1d79020e62c74723ec001421",
      "tree": "ca9905d3a8ce7bc00f72345e0da44d136d3fc36e",
      "parents": [
        "af51a04ba1c5f2f52672458d97ac8e0e5627b889"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Thu Aug 16 18:14:14 2012 +0100"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Thu Nov 06 18:11:50 2014 -0600"
      },
      "message": "tracing/syscalls: Fix perf syscall tracing when syscall_nr \u003d\u003d -1\n\nsyscall_get_nr can return -1 in the case that the task is not executing\na system call.\n\nThis patch fixes perf_syscall_{enter,exit} to check that the syscall\nnumber is valid before using it as an index into a bitmap.\n\nLink: http://lkml.kernel.org/r/1345137254-7377-1-git-send-email-will.deacon@arm.com\n\nChange-Id: I12f99dea41390b9631f98f925dc1d572aa4fc22d\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Wade Farnsworth \u003cwade_farnsworth@mentor.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "bf09db97205d46b3e083582eb2799aedddd9953b",
      "tree": "a56ddb942afc72096dc4b53c725f603d841d2ccb",
      "parents": [
        "fa1bd9b16b3432bce7937a5a4b5d75ab2f5b634c"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 24 23:50:09 2014 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 17 15:39:50 2014 -0700"
      },
      "message": "tracing: Remove ftrace_stop/start() from reading the trace file\n\ncommit 099ed151675cd1d2dbeae1dac697975f6a68716d upstream.\n\nDisabling reading and writing to the trace file should not be able to\ndisable all function tracing callbacks. There\u0027s other users today\n(like kprobes and perf). Reading a trace file should not stop those\nfrom happening.\n\nReviewed-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "4652951d1202cef2798b1a0dfbf4122794594b41",
      "tree": "0c6dd14b186e021355bbb59166237711b97bf767",
      "parents": [
        "926685e95e4d6518110794b77676b3bb7f9c4be0"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu Mar 14 14:20:54 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:04 2014 -0700"
      },
      "message": "tracing: Keep overwrite in sync between regular and snapshot buffers\n\ncommit 80902822658aab18330569587cdb69ac1dfdcea8 upstream.\n\nChanging the overwrite mode for the ring buffer via the trace\noption only sets the normal buffer. But the snapshot buffer could\nswap with it, and then the snapshot would be in non overwrite mode\nand the normal buffer would be in overwrite mode, even though the\noption flag states otherwise.\n\nKeep the two buffers overwrite modes in sync.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "74d86ed74b4ddf37de24a9ad979a8aafd2d4c25f",
      "tree": "320a1abfe9bf227ea4d9e10e60f534f9de8c3cb9",
      "parents": [
        "1fbbea7be9248d652fc2bb191e6ec9e823df422c"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jul 30 00:04:32 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:04 2014 -0700"
      },
      "message": "ftrace: Check module functions being traced on reload\n\ncommit 8c4f3c3fa9681dc549cd35419b259496082fef8b upstream.\n\nThere\u0027s been a nasty bug that would show up and not give much info.\nThe bug displayed the following warning:\n\n WARNING: at kernel/trace/ftrace.c:1529 __ftrace_hash_rec_update+0x1e3/0x230()\n Pid: 20903, comm: bash Tainted: G           O 3.6.11+ #38405.trunk\n Call Trace:\n  [\u003cffffffff8103e5ff\u003e] warn_slowpath_common+0x7f/0xc0\n  [\u003cffffffff8103e65a\u003e] warn_slowpath_null+0x1a/0x20\n  [\u003cffffffff810c2ee3\u003e] __ftrace_hash_rec_update+0x1e3/0x230\n  [\u003cffffffff810c4f28\u003e] ftrace_hash_move+0x28/0x1d0\n  [\u003cffffffff811401cc\u003e] ? kfree+0x2c/0x110\n  [\u003cffffffff810c68ee\u003e] ftrace_regex_release+0x8e/0x150\n  [\u003cffffffff81149f1e\u003e] __fput+0xae/0x220\n  [\u003cffffffff8114a09e\u003e] ____fput+0xe/0x10\n  [\u003cffffffff8105fa22\u003e] task_work_run+0x72/0x90\n  [\u003cffffffff810028ec\u003e] do_notify_resume+0x6c/0xc0\n  [\u003cffffffff8126596e\u003e] ? trace_hardirqs_on_thunk+0x3a/0x3c\n  [\u003cffffffff815c0f88\u003e] int_signal+0x12/0x17\n ---[ end trace 793179526ee09b2c ]---\n\nIt was finally narrowed down to unloading a module that was being traced.\n\nIt was actually more than that. When functions are being traced, there\u0027s\na table of all functions that have a ref count of the number of active\ntracers attached to that function. When a function trace callback is\nregistered to a function, the function\u0027s record ref count is incremented.\nWhen it is unregistered, the function\u0027s record ref count is decremented.\nIf an inconsistency is detected (ref count goes below zero) the above\nwarning is shown and the function tracing is permanently disabled until\nreboot.\n\nThe ftrace callback ops holds a hash of functions that it filters on\n(and/or filters off). If the hash is empty, the default means to filter\nall functions (for the filter_hash) or to disable no functions (for the\nnotrace_hash).\n\nWhen a module is unloaded, it frees the function records that represent\nthe module functions. These records exist on their own pages, that is\nfunction records for one module will not exist on the same page as\nfunction records for other modules or even the core kernel.\n\nNow when a module unloads, the records that represents its functions are\nfreed. When the module is loaded again, the records are recreated with\na default ref count of zero (unless there\u0027s a callback that traces all\nfunctions, then they will also be traced, and the ref count will be\nincremented).\n\nThe problem is that if an ftrace callback hash includes functions of the\nmodule being unloaded, those hash entries will not be removed. If the\nmodule is reloaded in the same location, the hash entries still point\nto the functions of the module but the module\u0027s ref counts do not reflect\nthat.\n\nWith the help of Steve and Joern, we found a reproducer:\n\n Using uinput module and uinput_release function.\n\n cd /sys/kernel/debug/tracing\n modprobe uinput\n echo uinput_release \u003e set_ftrace_filter\n echo function \u003e current_tracer\n rmmod uinput\n modprobe uinput\n # check /proc/modules to see if loaded in same addr, otherwise try again\n echo nop \u003e current_tracer\n\n [BOOM]\n\nThe above loads the uinput module, which creates a table of functions that\ncan be traced within the module.\n\nWe add uinput_release to the filter_hash to trace just that function.\n\nEnable function tracincg, which increments the ref count of the record\nassociated to uinput_release.\n\nRemove uinput, which frees the records including the one that represents\nuinput_release.\n\nLoad the uinput module again (and make sure it\u0027s at the same address).\nThis recreates the function records all with a ref count of zero,\nincluding uinput_release.\n\nDisable function tracing, which will decrement the ref count for uinput_release\nwhich is now zero because of the module removal and reload, and we have\na mismatch (below zero ref count).\n\nThe solution is to check all currently tracing ftrace callbacks to see if any\nare tracing any of the module\u0027s functions when a module is loaded (it already does\nthat with callbacks that trace all functions). If a callback happens to have\na module function being traced, it increments that records ref count and starts\ntracing that function.\n\nThere may be a strange side effect with this, where tracing module functions\non unload and then reloading a new module may have that new module\u0027s functions\nbeing traced. This may be something that confuses the user, but it\u0027s not\na big deal. Another approach is to disable all callback hashes on module unload,\nbut this leaves some ftrace callbacks that may not be registered, but can\nstill have hashes tracing the module\u0027s function where ftrace doesn\u0027t know about\nit. That situation can cause the same bug. This solution solves that case too.\nAnother benefit of this solution, is it is possible to trace a module\u0027s\nfunction on unload and load.\n\nLink: http://lkml.kernel.org/r/20130705142629.GA325@redhat.com\n\nReported-by: Jörn Engel \u003cjoern@logfs.org\u003e\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReported-by: Steve Hodgson \u003csteve@purestorage.com\u003e\nTested-by: Steve Hodgson \u003csteve@purestorage.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Rui Xiang \u003crui.xiang@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "8f4c0e8b5438725d66c6c27f11cb2a1c61c6d6c5",
      "tree": "d417790dc59d960c950e83511df582551c029b91",
      "parents": [
        "6427aede5eaac2e39a1d2b3306d960a603d7c3d9"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu Apr 24 10:40:12 2014 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jun 07 16:02:00 2014 -0700"
      },
      "message": "ftrace/module: Hardcode ftrace_module_init() call into load_module()\n\ncommit a949ae560a511fe4e3adf48fa44fefded93e5c2b upstream.\n\nA race exists between module loading and enabling of function tracer.\n\n\tCPU 1\t\t\t\tCPU 2\n\t-----\t\t\t\t-----\n  load_module()\n   module-\u003estate \u003d MODULE_STATE_COMING\n\n\t\t\t\tregister_ftrace_function()\n\t\t\t\t mutex_lock(\u0026ftrace_lock);\n\t\t\t\t ftrace_startup()\n\t\t\t\t  update_ftrace_function();\n\t\t\t\t   ftrace_arch_code_modify_prepare()\n\t\t\t\t    set_all_module_text_rw();\n\t\t\t\t   \u003cenables-ftrace\u003e\n\t\t\t\t    ftrace_arch_code_modify_post_process()\n\t\t\t\t     set_all_module_text_ro();\n\n\t\t\t\t[ here all module text is set to RO,\n\t\t\t\t  including the module that is\n\t\t\t\t  loading!! ]\n\n   blocking_notifier_call_chain(MODULE_STATE_COMING);\n    ftrace_init_module()\n\n     [ tries to modify code, but it\u0027s RO, and fails!\n       ftrace_bug() is called]\n\nWhen this race happens, ftrace_bug() will produces a nasty warning and\nall of the function tracing features will be disabled until reboot.\n\nThe simple solution is to treate module load the same way the core\nkernel is treated at boot. To hardcode the ftrace function modification\nof converting calls to mcount into nops. This is done in init/main.c\nthere\u0027s no reason it could not be done in load_module(). This gives\na better control of the changes and doesn\u0027t tie the state of the\nmodule to its notifiers as much. Ftrace is special, it needs to be\ntreated as such.\n\nThe reason this would work, is that the ftrace_module_init() would be\ncalled while the module is in MODULE_STATE_UNFORMED, which is ignored\nby the set_all_module_text_ro() call.\n\nLink: http://lkml.kernel.org/r/1395637826-3312-1-git-send-email-indou.takao@jp.fujitsu.com\n\nReported-by: Takao Indoh \u003cindou.takao@jp.fujitsu.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "14eee5bd065d6aac0acbdc6092a25ba68c55b9c8",
      "tree": "6a5be23dd8205130a59ea2d9b9ce13e54c7c518f",
      "parents": [
        "664c0fc651b6ca2ab43ddbb73bbda2acdb2c9915"
      ],
      "author": {
        "name": "Roman Pen",
        "email": "r.peniaev@gmail.com",
        "time": "Tue Mar 04 23:13:10 2014 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun May 18 05:25:55 2014 -0700"
      },
      "message": "blktrace: fix accounting of partially completed requests\n\ncommit af5040da01ef980670b3741b3e10733ee3e33566 upstream.\n\ntrace_block_rq_complete does not take into account that request can\nbe partially completed, so we can get the following incorrect output\nof blkparser:\n\n  C   R 232 + 240 [0]\n  C   R 240 + 232 [0]\n  C   R 248 + 224 [0]\n  C   R 256 + 216 [0]\n\nbut should be:\n\n  C   R 232 + 8 [0]\n  C   R 240 + 8 [0]\n  C   R 248 + 8 [0]\n  C   R 256 + 8 [0]\n\nAlso, the whole output summary statistics of completed requests and\nfinal throughput will be incorrect.\n\nThis patch takes into account real completion size of the request and\nfixes wrong completion accounting.\n\nSigned-off-by: Roman Pen \u003cr.peniaev@gmail.com\u003e\nCC: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCC: Ingo Molnar \u003cmingo@redhat.com\u003e\nCC: linux-kernel@vger.kernel.org\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a299804140325db7b93173419b0724056b60f34d",
      "tree": "bd83dcad3466c51e0f3a731ec15b5b09be562814",
      "parents": [
        "c5ad4fdec0ae15d197508185643c68470868121d"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Feb 26 13:37:38 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Mar 23 21:37:06 2014 -0700"
      },
      "message": "tracing: Do not add event files for modules that fail tracepoints\n\ncommit 45ab2813d40d88fc575e753c38478de242d03f88 upstream.\n\nIf a module fails to add its tracepoints due to module tainting, do not\ncreate the module event infrastructure in the debugfs directory. As the events\nwill not work and worse yet, they will silently fail, making the user wonder\nwhy the events they enable do not display anything.\n\nHaving a warning on module load and the events not visible to the users\nwill make the cause of the problem much clearer.\n\nLink: http://lkml.kernel.org/r/20140227154923.265882695@goodmis.org\n\nFixes: 6d723736e472 \"tracing/events: add support for modules to TRACE_EVENT\"\nAcked-by: Mathieu Desnoyers \u003cmathieu.desnoyers@efficios.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "66d383de0963dd351051304e36247e9a6fa66b77",
      "tree": "5cd17ffcb6edfa4385a2ceddb63ada9efdea2ee1",
      "parents": [
        "c523abc466c9b7c693e4a528ca2f54c6e931b6a6",
        "2606524141e4ff9b6a5d0bcbd9d601dfc5a8285c"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Mar 07 11:56:04 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Mar 07 11:56:04 2014 -0800"
      },
      "message": "Merge tag \u0027v3.4.82\u0027 into cm-11.0\n\nThis is the 3.4.82 stable release\n\nConflicts:\n\tarch/arm/kernel/traps.c\n\tmm/internal.h\n\nChange-Id: Ie3b1ffdfe133e76cfa3eaaa4305535af8490d7cc\n"
    },
    {
      "commit": "17ff13b428cc2900bc04570f3a74d746856f35e6",
      "tree": "3e705c590d8f6b57b0279fc0d5c11d7c6f5ed5d0",
      "parents": [
        "7db019a232f3577a92a2a81d34e4add1c4b80483"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 11 13:38:54 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Feb 22 10:32:46 2014 -0800"
      },
      "message": "ring-buffer: Fix first commit on sub-buffer having non-zero delta\n\ncommit d651aa1d68a2f0a7ee65697b04c6a92f8c0a12f2 upstream.\n\nEach sub-buffer (buffer page) has a full 64 bit timestamp. The events on\nthat page use a 27 bit delta against that timestamp in order to save on\nbits written to the ring buffer. If the time between events is larger than\nwhat the 27 bits can hold, a \"time extend\" event is added to hold the\nentire 64 bit timestamp again and the events after that hold a delta from\nthat timestamp.\n\nAs a \"time extend\" is always paired with an event, it is logical to just\nallocate the event with the time extend, to make things a bit more efficient.\n\nUnfortunately, when the pairing code was written, it removed the \"delta \u003d 0\"\nfrom the first commit on a page, causing the events on the page to be\nslightly skewed.\n\nFixes: 69d1b839f7ee \"ring-buffer: Bind time extend and data events together\"\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1c2bd0db1189643691557ff34406906b053cef92",
      "tree": "7ca9b005df493f23b9d3230decc8dd7e8e6d60e7",
      "parents": [
        "2955866584c57545061dc38dc69de3461437aa9a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 11 14:50:01 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 20 10:45:32 2014 -0800"
      },
      "message": "ftrace: Have function graph only trace based on global_ops filters\n\ncommit 23a8e8441a0a74dd612edf81dc89d1600bc0a3d1 upstream.\n\nDoing some different tests, I discovered that function graph tracing, when\nfiltered via the set_ftrace_filter and set_ftrace_notrace files, does\nnot always keep with them if another function ftrace_ops is registered\nto trace functions.\n\nThe reason is that function graph just happens to trace all functions\nthat the function tracer enables. When there was only one user of\nfunction tracing, the function graph tracer did not need to worry about\nbeing called by functions that it did not want to trace. But now that there\nare other users, this becomes a problem.\n\nFor example, one just needs to do the following:\n\n # cd /sys/kernel/debug/tracing\n # echo schedule \u003e set_ftrace_filter\n # echo function_graph \u003e current_tracer\n # cat trace\n[..]\n 0)               |  schedule() {\n ------------------------------------------\n 0)    \u003cidle\u003e-0    \u003d\u003e   rcu_pre-7\n ------------------------------------------\n\n 0) ! 2980.314 us |  }\n 0)               |  schedule() {\n ------------------------------------------\n 0)   rcu_pre-7    \u003d\u003e    \u003cidle\u003e-0\n ------------------------------------------\n\n 0) + 20.701 us   |  }\n\n # echo 1 \u003e /proc/sys/kernel/stack_tracer_enabled\n # cat trace\n[..]\n 1) + 20.825 us   |      }\n 1) + 21.651 us   |    }\n 1) + 30.924 us   |  } /* SyS_ioctl */\n 1)               |  do_page_fault() {\n 1)               |    __do_page_fault() {\n 1)   0.274 us    |      down_read_trylock();\n 1)   0.098 us    |      find_vma();\n 1)               |      handle_mm_fault() {\n 1)               |        _raw_spin_lock() {\n 1)   0.102 us    |          preempt_count_add();\n 1)   0.097 us    |          do_raw_spin_lock();\n 1)   2.173 us    |        }\n 1)               |        do_wp_page() {\n 1)   0.079 us    |          vm_normal_page();\n 1)   0.086 us    |          reuse_swap_page();\n 1)   0.076 us    |          page_move_anon_rmap();\n 1)               |          unlock_page() {\n 1)   0.082 us    |            page_waitqueue();\n 1)   0.086 us    |            __wake_up_bit();\n 1)   1.801 us    |          }\n 1)   0.075 us    |          ptep_set_access_flags();\n 1)               |          _raw_spin_unlock() {\n 1)   0.098 us    |            do_raw_spin_unlock();\n 1)   0.105 us    |            preempt_count_sub();\n 1)   1.884 us    |          }\n 1)   9.149 us    |        }\n 1) + 13.083 us   |      }\n 1)   0.146 us    |      up_read();\n\nWhen the stack tracer was enabled, it enabled all functions to be traced, which\nnow the function graph tracer also traces. This is a side effect that should\nnot occur.\n\nTo fix this a test is added when the function tracing is changed, as well as when\nthe graph tracer is enabled, to see if anything other than the ftrace global_ops\nfunction tracer is enabled. If so, then the graph tracer calls a test trampoline\nthat will look at the function that is being traced and compare it with the\nfilters defined by the global_ops.\n\nAs an optimization, if there\u0027s no other function tracers registered, or if\nthe only registered function tracers also use the global ops, the function\ngraph infrastructure will call the registered function graph callback directly\nand not go through the test trampoline.\n\nFixes: d2d45c7a03a2 \"tracing: Have stack_tracer use a separate list of functions\"\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "2955866584c57545061dc38dc69de3461437aa9a",
      "tree": "bd8336f3d3d943f71733da5980c4729460652a34",
      "parents": [
        "95bcd16ee7ce1cfb3fea853e38023f65d9d21c7c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 11 14:49:37 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 20 10:45:32 2014 -0800"
      },
      "message": "ftrace: Fix synchronization location disabling and freeing ftrace_ops\n\ncommit a4c35ed241129dd142be4cadb1e5a474a56d5464 upstream.\n\nThe synchronization needed after ftrace_ops are unregistered must happen\nafter the callback is disabled from becing called by functions.\n\nThe current location happens after the function is being removed from the\ninternal lists, but not after the function callbacks were disabled, leaving\nthe functions susceptible of being called after their callbacks are freed.\n\nThis affects perf and any externel users of function tracing (LTTng and\nSystemTap).\n\nFixes: cdbe61bfe704 \"ftrace: Allow dynamically allocated function tracers\"\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "95bcd16ee7ce1cfb3fea853e38023f65d9d21c7c",
      "tree": "412a793ec08d91d0f2949ee315c4969e645d4613",
      "parents": [
        "a7333f3d237f3007d14a2ee0456b96a4b33522d0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 11 14:49:07 2014 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 20 10:45:32 2014 -0800"
      },
      "message": "ftrace: Synchronize setting function_trace_op with ftrace_trace_function\n\ncommit 405e1d834807e51b2ebd3dea81cb51e53fb61504 upstream.\n\n[ Partial commit backported to 3.4. The ftrace_sync() code by this is\n  required for other fixes that 3.4 needs. ]\n\nftrace_trace_function is a variable that holds what function will be called\ndirectly by the assembly code (mcount). If just a single function is\nregistered and it handles recursion itself, then the assembly will call that\nfunction directly without any helper function. It also passes in the\nftrace_op that was registered with the callback. The ftrace_op to send is\nstored in the function_trace_op variable.\n\nThe ftrace_trace_function and function_trace_op needs to be coordinated such\nthat the called callback wont be called with the wrong ftrace_op, otherwise\nbad things can happen if it expected a different op. Luckily, there\u0027s no\ncallback that doesn\u0027t use the helper functions that requires this. But\nthere soon will be and this needs to be fixed.\n\nUse a set_function_trace_op to store the ftrace_op to set the\nfunction_trace_op to when it is safe to do so (during the update function\nwithin the breakpoint or stop machine calls). Or if dynamic ftrace is not\nbeing used (static tracing) then we have to do a bit more synchronization\nwhen the ftrace_trace_function is set as that takes affect immediately\n(as oppose to dynamic ftrace doing it with the modification of the trampoline).\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "fda73056f62d84376a3d29926708b4a08155da31",
      "tree": "0080c4eec02c23179f59a50d269f48f7662b61ce",
      "parents": [
        "cf8f2e58d0893f9785b8056b29d9bbcb4758765f",
        "94f578e6aba14bb2aeb00db2e7f6e5f704fee937"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jan 14 21:50:44 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Jan 14 21:50:44 2014 -0800"
      },
      "message": "Merge tag \u0027v3.4.76\u0027 into cm-11.0\n\nThis is the 3.4.76 stable release\n\nConflicts:\n\tdrivers/gpio/gpio-msm-v2.c\n\nChange-Id: Ic80b29098bdf656b5e5c9b95d98d2ec64bba1f28\n"
    },
    {
      "commit": "09951c9b33f8cfdc0e8c4e03fe83bc66c9d908dc",
      "tree": "4b5081c15d8231b7cb2adbb0d06a6e9f0d531150",
      "parents": [
        "58c2314ac41e8f24a2a594bd866915e38de9648e"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Mon Dec 16 15:20:01 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Jan 08 09:42:10 2014 -0800"
      },
      "message": "ftrace: Initialize the ftrace profiler for each possible cpu\n\ncommit c4602c1c818bd6626178d6d3fcc152d9f2f48ac0 upstream.\n\nFtrace currently initializes only the online CPUs. This implementation has\ntwo problems:\n- If we online a CPU after we enable the function profile, and then run the\n  test, we will lose the trace information on that CPU.\n  Steps to reproduce:\n  # echo 0 \u003e /sys/devices/system/cpu/cpu1/online\n  # cd \u003cdebugfs\u003e/tracing/\n  # echo \u003csome function name\u003e \u003e\u003e set_ftrace_filter\n  # echo 1 \u003e function_profile_enabled\n  # echo 1 \u003e /sys/devices/system/cpu/cpu1/online\n  # run test\n- If we offline a CPU before we enable the function profile, we will not clear\n  the trace information when we enable the function profile. It will trouble\n  the users.\n  Steps to reproduce:\n  # cd \u003cdebugfs\u003e/tracing/\n  # echo \u003csome function name\u003e \u003e\u003e set_ftrace_filter\n  # echo 1 \u003e function_profile_enabled\n  # run test\n  # cat trace_stat/function*\n  # echo 0 \u003e /sys/devices/system/cpu/cpu1/online\n  # echo 0 \u003e function_profile_enabled\n  # echo 1 \u003e function_profile_enabled\n  # cat trace_stat/function*\n  # run test\n  # cat trace_stat/function*\n\nSo it is better that we initialize the ftrace profiler for each possible cpu\nevery time we enable the function profile instead of just the online ones.\n\nLink: http://lkml.kernel.org/r/1387178401-10619-1-git-send-email-miaox@cn.fujitsu.com\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "2a38ada0f1ab9f894eea4428731ebc811b51c3f3",
      "tree": "759c765808a23a3a35e4ba10d8306c847c0205b7",
      "parents": [
        "19218e895cefdd389c96af12c93c89e7276bbaad",
        "44d19f5a04ae4e433548ba2f25e4d2ccfcac765e"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Dec 08 12:50:38 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Dec 08 12:50:38 2013 -0800"
      },
      "message": "Merge tag \u0027v3.4.72\u0027 into tmp\n\nThis is the 3.4.72 stable release\n\nConflicts:\n\tarch/arm/Kconfig\n\tarch/arm/include/asm/mutex.h\n\tarch/arm/kernel/perf_event.c\n\tarch/arm/kernel/traps.c\n\tarch/arm/mm/dma-mapping.c\n\tdrivers/base/power/main.c\n\tdrivers/bluetooth/ath3k.c\n\tdrivers/bluetooth/btusb.c\n\tdrivers/gpu/drm/radeon/radeon_mode.h\n\tdrivers/mmc/card/block.c\n\tdrivers/mmc/host/sdhci.c\n\tdrivers/usb/core/message.c\n\tdrivers/usb/host/xhci-plat.c\n\tdrivers/usb/host/xhci.h\n\tdrivers/virtio/virtio_ring.c\n\tfs/ubifs/dir.c\n\tinclude/linux/freezer.h\n\tinclude/linux/virtio.h\n\tinclude/media/v4l2-ctrls.h\n\tinclude/net/bluetooth/hci_core.h\n\tinclude/net/bluetooth/mgmt.h\n\tkernel/cgroup.c\n\tkernel/futex.c\n\tkernel/signal.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_core.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/bluetooth/mgmt.c\n\tnet/bluetooth/rfcomm/sock.c\n\tnet/bluetooth/smp.c\n\nChange-Id: I4fb0d5de74ca76f933d95d98e1a9c2c859402f34\n"
    },
    {
      "commit": "51d351d5b949ae7204696ada7ef502ed34d34fb0",
      "tree": "f5b337191f35ac1a8b64aebad36479ed52d8beee",
      "parents": [
        "5833570f8e15cd7a40dd6c14ec73cb53736048cf"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Mon Nov 25 20:59:46 2013 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Dec 04 10:50:34 2013 -0800"
      },
      "message": "ftrace: Fix function graph with loading of modules\n\ncommit 8a56d7761d2d041ae5e8215d20b4167d8aa93f51 upstream.\n\nCommit 8c4f3c3fa9681 \"ftrace: Check module functions being traced on reload\"\nfixed module loading and unloading with respect to function tracing, but\nit missed the function graph tracer. If you perform the following\n\n # cd /sys/kernel/debug/tracing\n # echo function_graph \u003e current_tracer\n # modprobe nfsd\n # echo nop \u003e current_tracer\n\nYou\u0027ll get the following oops message:\n\n ------------[ cut here ]------------\n WARNING: CPU: 2 PID: 2910 at /linux.git/kernel/trace/ftrace.c:1640 __ftrace_hash_rec_update.part.35+0x168/0x1b9()\n Modules linked in: nfsd exportfs nfs_acl lockd ipt_MASQUERADE sunrpc ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter ip6_tables uinput snd_hda_codec_idt\n CPU: 2 PID: 2910 Comm: bash Not tainted 3.13.0-rc1-test #7\n Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./To be filled by O.E.M., BIOS SDBLI944.86P 05/08/2007\n  0000000000000668 ffff8800787efcf8 ffffffff814fe193 ffff88007d500000\n  0000000000000000 ffff8800787efd38 ffffffff8103b80a 0000000000000668\n  ffffffff810b2b9a ffffffff81a48370 0000000000000001 ffff880037aea000\n Call Trace:\n  [\u003cffffffff814fe193\u003e] dump_stack+0x4f/0x7c\n  [\u003cffffffff8103b80a\u003e] warn_slowpath_common+0x81/0x9b\n  [\u003cffffffff810b2b9a\u003e] ? __ftrace_hash_rec_update.part.35+0x168/0x1b9\n  [\u003cffffffff8103b83e\u003e] warn_slowpath_null+0x1a/0x1c\n  [\u003cffffffff810b2b9a\u003e] __ftrace_hash_rec_update.part.35+0x168/0x1b9\n  [\u003cffffffff81502f89\u003e] ? __mutex_lock_slowpath+0x364/0x364\n  [\u003cffffffff810b2cc2\u003e] ftrace_shutdown+0xd7/0x12b\n  [\u003cffffffff810b47f0\u003e] unregister_ftrace_graph+0x49/0x78\n  [\u003cffffffff810c4b30\u003e] graph_trace_reset+0xe/0x10\n  [\u003cffffffff810bf393\u003e] tracing_set_tracer+0xa7/0x26a\n  [\u003cffffffff810bf5e1\u003e] tracing_set_trace_write+0x8b/0xbd\n  [\u003cffffffff810c501c\u003e] ? ftrace_return_to_handler+0xb2/0xde\n  [\u003cffffffff811240a8\u003e] ? __sb_end_write+0x5e/0x5e\n  [\u003cffffffff81122aed\u003e] vfs_write+0xab/0xf6\n  [\u003cffffffff8150a185\u003e] ftrace_graph_caller+0x85/0x85\n  [\u003cffffffff81122dbd\u003e] SyS_write+0x59/0x82\n  [\u003cffffffff8150a185\u003e] ftrace_graph_caller+0x85/0x85\n  [\u003cffffffff8150a2d2\u003e] system_call_fastpath+0x16/0x1b\n ---[ end trace 940358030751eafb ]---\n\nThe above mentioned commit didn\u0027t go far enough. Well, it covered the\nfunction tracer by adding checks in __register_ftrace_function(). The\nproblem is that the function graph tracer circumvents that (for a slight\nefficiency gain when function graph trace is running with a function\ntracer. The gain was not worth this).\n\nThe problem came with ftrace_startup() which should always be called after\n__register_ftrace_function(), if you want this bug to be completely fixed.\n\nAnyway, this solution moves __register_ftrace_function() inside of\nftrace_startup() and removes the need to call them both.\n\nReported-by: Dave Wysochanski \u003cdwysocha@redhat.com\u003e\nFixes: ed926f9b35cd (\"ftrace: Use counters to enable functions to trace\")\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n\n"
    },
    {
      "commit": "d134082b7a9bb0e09158a2cc2e551841a84ddfa7",
      "tree": "867255fbc644ae386cb93323401437f9167cce7e",
      "parents": [
        "f22ff9d05def87a049c5c8c7b86539bd4f8e3172"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Nov 05 12:51:11 2013 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Nov 29 10:50:33 2013 -0800"
      },
      "message": "perf/ftrace: Fix paranoid level for enabling function tracer\n\ncommit 12ae030d54ef250706da5642fc7697cc60ad0df7 upstream.\n\nThe current default perf paranoid level is \"1\" which has\n\"perf_paranoid_kernel()\" return false, and giving any operations that\nuse it, access to normal users. Unfortunately, this includes function\ntracing and normal users should not be allowed to enable function\ntracing by default.\n\nThe proper level is defined at \"-1\" (full perf access), which\n\"perf_paranoid_tracepoint_raw()\" will only give access to. Use that\ncheck instead for enabling function tracing.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nReported-by: Vince Weaver \u003cvincent.weaver@maine.edu\u003e\nTested-by: Vince Weaver \u003cvincent.weaver@maine.edu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCVE: CVE-2013-2930\nFixes: ced39002f5ea (\"ftrace, perf: Add support to use function tracepoint in perf\")\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "af15b7691766d99f0f84bae9b3444ab06e9beb29",
      "tree": "5d22a78374519c3feeabeaddad7e4f0fb58360a6",
      "parents": [
        "9736cb3f9aa9c620965d937f4ff0261f6ac32ee1"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Oct 09 22:23:23 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Nov 20 10:43:19 2013 -0800"
      },
      "message": "tracing: Fix potential out-of-bounds in trace_get_user()\n\ncommit 057db8488b53d5e4faa0cedb2f39d4ae75dfbdbb upstream.\n\nAndrey reported the following report:\n\nERROR: AddressSanitizer: heap-buffer-overflow on address ffff8800359c99f3\nffff8800359c99f3 is located 0 bytes to the right of 243-byte region [ffff8800359c9900, ffff8800359c99f3)\nAccessed by thread T13003:\n  #0 ffffffff810dd2da (asan_report_error+0x32a/0x440)\n  #1 ffffffff810dc6b0 (asan_check_region+0x30/0x40)\n  #2 ffffffff810dd4d3 (__tsan_write1+0x13/0x20)\n  #3 ffffffff811cd19e (ftrace_regex_release+0x1be/0x260)\n  #4 ffffffff812a1065 (__fput+0x155/0x360)\n  #5 ffffffff812a12de (____fput+0x1e/0x30)\n  #6 ffffffff8111708d (task_work_run+0x10d/0x140)\n  #7 ffffffff810ea043 (do_exit+0x433/0x11f0)\n  #8 ffffffff810eaee4 (do_group_exit+0x84/0x130)\n  #9 ffffffff810eafb1 (SyS_exit_group+0x21/0x30)\n  #10 ffffffff81928782 (system_call_fastpath+0x16/0x1b)\n\nAllocated by thread T5167:\n  #0 ffffffff810dc778 (asan_slab_alloc+0x48/0xc0)\n  #1 ffffffff8128337c (__kmalloc+0xbc/0x500)\n  #2 ffffffff811d9d54 (trace_parser_get_init+0x34/0x90)\n  #3 ffffffff811cd7b3 (ftrace_regex_open+0x83/0x2e0)\n  #4 ffffffff811cda7d (ftrace_filter_open+0x2d/0x40)\n  #5 ffffffff8129b4ff (do_dentry_open+0x32f/0x430)\n  #6 ffffffff8129b668 (finish_open+0x68/0xa0)\n  #7 ffffffff812b66ac (do_last+0xb8c/0x1710)\n  #8 ffffffff812b7350 (path_openat+0x120/0xb50)\n  #9 ffffffff812b8884 (do_filp_open+0x54/0xb0)\n  #10 ffffffff8129d36c (do_sys_open+0x1ac/0x2c0)\n  #11 ffffffff8129d4b7 (SyS_open+0x37/0x50)\n  #12 ffffffff81928782 (system_call_fastpath+0x16/0x1b)\n\nShadow bytes around the buggy address:\n  ffff8800359c9700: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd\n  ffff8800359c9780: fd fd fd fd fd fd fd fd fa fa fa fa fa fa fa fa\n  ffff8800359c9800: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n  ffff8800359c9880: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n  ffff8800359c9900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n\u003d\u003effff8800359c9980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00[03]fb\n  ffff8800359c9a00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n  ffff8800359c9a80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa\n  ffff8800359c9b00: fa fa fa fa fa fa fa fa 00 00 00 00 00 00 00 00\n  ffff8800359c9b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n  ffff8800359c9c00: 00 00 00 00 00 00 00 00 fa fa fa fa fa fa fa fa\nShadow byte legend (one shadow byte represents 8 application bytes):\n  Addressable:           00\n  Partially addressable: 01 02 03 04 05 06 07\n  Heap redzone:          fa\n  Heap kmalloc redzone:  fb\n  Freed heap region:     fd\n  Shadow gap:            fe\n\nThe out-of-bounds access happens on \u0027parser-\u003ebuffer[parser-\u003eidx] \u003d 0;\u0027\n\nAlthough the crash happened in ftrace_regex_open() the real bug\noccurred in trace_get_user() where there\u0027s an incrementation to\nparser-\u003eidx without a check against the size. The way it is triggered\nis if userspace sends in 128 characters (EVENT_BUF_SIZE + 1), the loop\nthat reads the last character stores it and then breaks out because\nthere is no more characters. Then the last character is read to determine\nwhat to do next, and the index is incremented without checking size.\n\nThen the caller of trace_get_user() usually nulls out the last character\nwith a zero, but since the index is equal to the size, it writes a nul\ncharacter after the allocated space, which can corrupt memory.\n\nLuckily, only root user has write access to this file.\n\nLink: http://lkml.kernel.org/r/20131009222323.04fd1a0d@gandalf.local.home\n\nReported-by: Andrey Konovalov \u003candreyknvl@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "99593eb7ca1dd9bfaa431d96e009eda23f001ace",
      "tree": "b1412f07fda67143bc2454bbb6f81e124cae3617",
      "parents": [
        "65280b8ed1cca78ff7fe63ecfdb0fff87fe184a3"
      ],
      "author": {
        "name": "Andrew Vagin",
        "email": "avagin@openvz.org",
        "time": "Fri Aug 02 21:16:43 2013 +0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Aug 14 22:57:08 2013 -0700"
      },
      "message": "tracing: Fix fields of struct trace_iterator that are zeroed by mistake\n\ncommit ed5467da0e369e65b247b99eb6403cb79172bcda upstream.\n\ntracing_read_pipe zeros all fields bellow \"seq\". The declaration contains\na comment about that, but it doesn\u0027t help.\n\nThe first field is \"snapshot\", it\u0027s true when current open file is\nsnapshot. Looks obvious, that it should not be zeroed.\n\nThe second field is \"started\". It was converted from cpumask_t to\ncpumask_var_t (v2.6.28-4983-g4462344), in other words it was\nconverted from cpumask to pointer on cpumask.\n\nCurrently the reference on \"started\" memory is lost after the first read\nfrom tracing_read_pipe and a proper object will never be freed.\n\nThe \"started\" is never dereferenced for trace_pipe, because trace_pipe\ncan\u0027t have the TRACE_FILE_ANNOTATE options.\n\nLink: http://lkml.kernel.org/r/1375463803-3085183-1-git-send-email-avagin@openvz.org\n\nSigned-off-by: Andrew Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "352b6418a2d14c754b41f23e0698f0006c914b95",
      "tree": "381768caaaa7dcaa97e24c51ca84830ecd9cca6e",
      "parents": [
        "e5f8b2d71c3b617d2d5ce9568067b1458b47a517"
      ],
      "author": {
        "name": "zhangwei(Jovi)",
        "email": "jovi.zhangwei@huawei.com",
        "time": "Mon Jul 29 09:33:58 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Aug 04 16:25:45 2013 +0800"
      },
      "message": "tracing: Fix irqs-off tag display in syscall tracing\n\ncommit 11034ae9c20f4057a6127fc965906417978e69b2 upstream\n\nInitialization of variable irq_flags and pc was missed when backport\n11034ae9c to linux-3.0.y and linux-3.4.y, my fault.\n\nSigned-off-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "f36a0d6764dcb33a280dce206f1be4bcaff5714e",
      "tree": "39e30c2832c12b3ad897df6fbf4e97a252887d44",
      "parents": [
        "e2f918414ca99c5321ad352fa6dfa3147e3e31d8"
      ],
      "author": {
        "name": "zhangwei(Jovi)",
        "email": "jovi.zhangwei@huawei.com",
        "time": "Wed Apr 10 11:26:23 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 28 16:26:46 2013 -0700"
      },
      "message": "tracing: Fix irqs-off tag display in syscall tracing\n\ncommit 11034ae9c20f4057a6127fc965906417978e69b2 upstream.\n\nAll syscall tracing irqs-off tags are wrong, the syscall enter entry doesn\u0027t\ndisable irqs.\n\n [root@jovi tracing]#echo \"syscalls:sys_enter_open\" \u003e set_event\n [root@jovi tracing]# cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 13/13   #P:2\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n       irqbalance-513   [000] d... 56115.496766: sys_open(filename: 804e1a6, flags: 0, mode: 1b6)\n       irqbalance-513   [000] d... 56115.497008: sys_open(filename: 804e1bb, flags: 0, mode: 1b6)\n         sendmail-771   [000] d... 56115.827982: sys_open(filename: b770e6d1, flags: 0, mode: 1b6)\n\nThe reason is syscall tracing doesn\u0027t record irq_flags into buffer.\nThe proper display is:\n\n [root@jovi tracing]#echo \"syscalls:sys_enter_open\" \u003e set_event\n [root@jovi tracing]# cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 14/14   #P:2\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n       irqbalance-514   [001] ....    46.213921: sys_open(filename: 804e1a6, flags: 0, mode: 1b6)\n       irqbalance-514   [001] ....    46.214160: sys_open(filename: 804e1bb, flags: 0, mode: 1b6)\n            \u003c...\u003e-920   [001] ....    47.307260: sys_open(filename: 4e82a0c5, flags: 80000, mode: 0)\n\nLink: http://lkml.kernel.org/r/1365564393-10972-3-git-send-email-jovi.zhangwei@huawei.com\n\nCc: stable@vger.kernel.org # 2.6.35\nSigned-off-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "d018274f859ae2cfbe86646948b65a4edd0d335f",
      "tree": "fe9f668b148a0981ffccee200c9c6da59f86d288",
      "parents": [
        "39d2dd53da0ef0be782387f79fe6bfefc0808629"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 30 21:10:37 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 28 16:25:47 2013 -0700"
      },
      "message": "tracing: Use current_uid() for critical time tracing\n\ncommit f17a5194859a82afe4164e938b92035b86c55794 upstream.\n\nThe irqsoff tracer records the max time that interrupts are disabled.\nThere are hooks in the assembly code that calls back into the tracer when\ninterrupts are disabled or enabled.\n\nWhen they are enabled, the tracer checks if the amount of time they\nwere disabled is larger than the previous recorded max interrupts off\ntime. If it is, it creates a snapshot of the currently running trace\nto store where the last largest interrupts off time was held and how\nit happened.\n\nDuring testing, this RCU lockdep dump appeared:\n\n[ 1257.829021] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ 1257.829021] [ INFO: suspicious RCU usage. ]\n[ 1257.829021] 3.10.0-rc1-test+ #171 Tainted: G        W\n[ 1257.829021] -------------------------------\n[ 1257.829021] /home/rostedt/work/git/linux-trace.git/include/linux/rcupdate.h:780 rcu_read_lock() used illegally while idle!\n[ 1257.829021]\n[ 1257.829021] other info that might help us debug this:\n[ 1257.829021]\n[ 1257.829021]\n[ 1257.829021] RCU used illegally from idle CPU!\n[ 1257.829021] rcu_scheduler_active \u003d 1, debug_locks \u003d 0\n[ 1257.829021] RCU used illegally from extended quiescent state!\n[ 1257.829021] 2 locks held by trace-cmd/4831:\n[ 1257.829021]  #0:  (max_trace_lock){......}, at: [\u003cffffffff810e2b77\u003e] stop_critical_timing+0x1a3/0x209\n[ 1257.829021]  #1:  (rcu_read_lock){.+.+..}, at: [\u003cffffffff810dae5a\u003e] __update_max_tr+0x88/0x1ee\n[ 1257.829021]\n[ 1257.829021] stack backtrace:\n[ 1257.829021] CPU: 3 PID: 4831 Comm: trace-cmd Tainted: G        W    3.10.0-rc1-test+ #171\n[ 1257.829021] Hardware name: To Be Filled By O.E.M. To Be Filled By O.E.M./To be filled by O.E.M., BIOS SDBLI944.86P 05/08/2007\n[ 1257.829021]  0000000000000001 ffff880065f49da8 ffffffff8153dd2b ffff880065f49dd8\n[ 1257.829021]  ffffffff81092a00 ffff88006bd78680 ffff88007add7500 0000000000000003\n[ 1257.829021]  ffff88006bd78680 ffff880065f49e18 ffffffff810daebf ffffffff810dae5a\n[ 1257.829021] Call Trace:\n[ 1257.829021]  [\u003cffffffff8153dd2b\u003e] dump_stack+0x19/0x1b\n[ 1257.829021]  [\u003cffffffff81092a00\u003e] lockdep_rcu_suspicious+0x109/0x112\n[ 1257.829021]  [\u003cffffffff810daebf\u003e] __update_max_tr+0xed/0x1ee\n[ 1257.829021]  [\u003cffffffff810dae5a\u003e] ? __update_max_tr+0x88/0x1ee\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810dbf85\u003e] update_max_tr_single+0x11d/0x12d\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810e2b15\u003e] stop_critical_timing+0x141/0x209\n[ 1257.829021]  [\u003cffffffff8109569a\u003e] ? trace_hardirqs_on+0xd/0xf\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810e3057\u003e] time_hardirqs_on+0x2a/0x2f\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] ? user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff8109550c\u003e] trace_hardirqs_on_caller+0x16/0x197\n[ 1257.829021]  [\u003cffffffff8109569a\u003e] trace_hardirqs_on+0xd/0xf\n[ 1257.829021]  [\u003cffffffff811002b9\u003e] user_enter+0xfd/0x107\n[ 1257.829021]  [\u003cffffffff810029b4\u003e] do_notify_resume+0x92/0x97\n[ 1257.829021]  [\u003cffffffff8154bdca\u003e] int_signal+0x12/0x17\n\nWhat happened was entering into the user code, the interrupts were enabled\nand a max interrupts off was recorded. The trace buffer was saved along with\nvarious information about the task: comm, pid, uid, priority, etc.\n\nThe uid is recorded with task_uid(tsk). But this is a macro that uses rcu_read_lock()\nto retrieve the data, and this happened to happen where RCU is blind (user_enter).\n\nAs only the preempt and irqs off tracers can have this happen, and they both\nonly have the tsk \u003d\u003d current, if tsk \u003d\u003d current, use current_uid() instead of\ntask_uid(), as current_uid() does not use RCU as only current can change its uid.\n\nThis fixes the RCU suspicious splat.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "dde448d95d8698ee4c8373bb48fe08a22f41052f",
      "tree": "7fe87fa93bfa5b81e6f87b147e32512d2e8198e3",
      "parents": [
        "ac4f6190fae02a3dc30133f90488b996f726bf7a",
        "f95b978981a7d154ba40d14c18e8ed5c694e6124"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Thu Jun 20 11:32:42 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Thu Jun 20 11:32:42 2013 -0700"
      },
      "message": "Merge tag \u0027v3.4.10\u0027 into cm-10.1\n\nThis is the 3.4.10 stable release\n\nConflicts:\n\tarch/arm/mm/tlb-v7.S\n\tarch/arm/vfp/entry.S\n\tdrivers/base/power/main.c\n\tdrivers/mmc/host/sdhci.c\n\tdrivers/net/tun.c\n\tdrivers/usb/core/hub.c\n\tdrivers/usb/host/xhci.h\n\tinclude/linux/sched.h\n\tkernel/power/suspend.c\n\nChange-Id: Ia2477ec93ceb64b13dd1a2d8aa646cb233387d14\n"
    },
    {
      "commit": "bc4d36c41f16a66c320fd0282110ddc82aa1eb09",
      "tree": "4d15ef32790902916c0b92b33b299dfeb2834b5d",
      "parents": [
        "3a22cc7f184b77731816e55662cd12f0c3d24d56"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Jun 07 17:02:08 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 13 09:45:03 2013 -0700"
      },
      "message": "ftrace: Move ftrace_filter_lseek out of CONFIG_DYNAMIC_FTRACE section\n\ncommit 7f49ef69db6bbf756c0abca7e9b65b32e999eec8 upstream.\n\nAs ftrace_filter_lseek is now used with ftrace_pid_fops, it needs to\nbe moved out of the #ifdef CONFIG_DYNAMIC_FTRACE section as the\nftrace_pid_fops is defined when DYNAMIC_FTRACE is not.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Namhyung Kim \u003cnamhyung@kernel.org\u003e\n[ lizf: adjust context ]\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "3a22cc7f184b77731816e55662cd12f0c3d24d56",
      "tree": "ce3612a4ea2ec1ed53d5c98a24b88aa80067129c",
      "parents": [
        "ce840e2f7825bfd240782dc209c2f2b8db514287"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung.kim@lge.com",
        "time": "Fri Jun 07 17:01:16 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 13 09:45:03 2013 -0700"
      },
      "message": "tracing: Fix possible NULL pointer dereferences\n\ncommit 6a76f8c0ab19f215af2a3442870eeb5f0e81998d upstream.\n\nCurrently set_ftrace_pid and set_graph_function files use seq_lseek\nfor their fops.  However seq_open() is called only for FMODE_READ in\nthe fops-\u003eopen() so that if an user tries to seek one of those file\nwhen she open it for writing, it sees NULL seq_file and then panic.\n\nIt can be easily reproduced with following command:\n\n  $ cd /sys/kernel/debug/tracing\n  $ echo 1234 | sudo tee -a set_ftrace_pid\n\nIn this example, GNU coreutils\u0027 tee opens the file with fopen(, \"a\")\nand then the fopen() internally calls lseek().\n\nLink:\nhttp://lkml.kernel.org/r/1365663302-2170-1-git-send-email-namhyung@kernel.org\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n[ lizf: adjust context ]\nSigned-off-by: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "cba998b9b3799a5d6861a969d7b7d9b4f4f181f6",
      "tree": "2fe75a00c6475f4e284dae7a737d0ab5f0f0e84d",
      "parents": [
        "33b7cfcb34b4ae37cde7a8a1c97c9be27677e931"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue May 14 15:40:48 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun May 19 10:54:40 2013 -0700"
      },
      "message": "tracing: Fix leaks of filter preds\n\ncommit 60705c89460fdc7227f2d153b68b3f34814738a4 upstream.\n\nSpecial preds are created when folding a series of preds that\ncan be done in serial. These are allocated in an ops field of\nthe pred structure. But they were never freed, causing memory\nleaks.\n\nThis was discovered using the kmemleak checker:\n\nunreferenced object 0xffff8800797fd5e0 (size 32):\n  comm \"swapper/0\", pid 1, jiffies 4294690605 (age 104.608s)\n  hex dump (first 32 bytes):\n    00 00 01 00 03 00 05 00 07 00 09 00 0b 00 0d 00  ................\n    00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  ................\n  backtrace:\n    [\u003cffffffff814b52af\u003e] kmemleak_alloc+0x73/0x98\n    [\u003cffffffff8111ff84\u003e] kmemleak_alloc_recursive.constprop.42+0x16/0x18\n    [\u003cffffffff81120e68\u003e] __kmalloc+0xd7/0x125\n    [\u003cffffffff810d47eb\u003e] kcalloc.constprop.24+0x2d/0x2f\n    [\u003cffffffff810d4896\u003e] fold_pred_tree_cb+0xa9/0xf4\n    [\u003cffffffff810d3781\u003e] walk_pred_tree+0x47/0xcc\n    [\u003cffffffff810d5030\u003e] replace_preds.isra.20+0x6f8/0x72f\n    [\u003cffffffff810d50b5\u003e] create_filter+0x4e/0x8b\n    [\u003cffffffff81b1c30d\u003e] ftrace_test_event_filter+0x5a/0x155\n    [\u003cffffffff8100028d\u003e] do_one_initcall+0xa0/0x137\n    [\u003cffffffff81afbedf\u003e] kernel_init_freeable+0x14d/0x1dc\n    [\u003cffffffff814b24b7\u003e] kernel_init+0xe/0xdb\n    [\u003cffffffff814d539c\u003e] ret_from_fork+0x7c/0xb0\n    [\u003cffffffffffffffff\u003e] 0xffffffffffffffff\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "dcf3dfc3242fffb483a84dede9b3759a9b488c94",
      "tree": "abfbf8826932b6459c7932c61452d5967a1183fc",
      "parents": [
        "22d9af8fbdb154769a9802127d81f61077bf649b"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Fri Mar 15 13:10:35 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat May 11 13:48:14 2013 -0700"
      },
      "message": "tracing: Fix ftrace_dump()\n\ncommit 7fe70b579c9e3daba71635e31b6189394e7b79d3 upstream.\n\nftrace_dump() had a lot of issues. What ftrace_dump() does, is when\nftrace_dump_on_oops is set (via a kernel parameter or sysctl), it\nwill dump out the ftrace buffers to the console when either a oops,\npanic, or a sysrq-z occurs.\n\nThis was written a long time ago when ftrace was fragile to recursion.\nBut it wasn\u0027t written well even for that.\n\nThere\u0027s a possible deadlock that can occur if a ftrace_dump() is happening\nand an NMI triggers another dump. This is because it grabs a lock\nbefore checking if the dump ran.\n\nIt also totally disables ftrace, and tracing for no good reasons.\n\nAs the ring_buffer now checks if it is read via a oops or NMI, where\nthere\u0027s a chance that the buffer gets corrupted, it will disable\nitself. No need to have ftrace_dump() do the same.\n\nftrace_dump() is now cleaned up where it uses an atomic counter to\nmake sure only one dump happens at a time. A simple atomic_inc_return()\nis enough that is needed for both other CPUs and NMIs. No need for\na spinlock, as if one CPU is running the dump, no other CPU needs\nto do it too.\n\nThe tracing_on variable is turned off and not turned on. The original\ncode did this, but it wasn\u0027t pretty. By just disabling this variable\nwe get the result of not seeing traces that happen between crashes.\n\nFor sysrq-z, it doesn\u0027t get turned on, but the user can always write\na \u00271\u0027 to the tracing_on file. If they are using sysrq-z, then they should\nknow about tracing_on.\n\nThe new code is much easier to read and less error prone. No more\ndeadlock possibility when an NMI triggers here.\n\nReported-by: zhangwei(Jovi) \u003cjovi.zhangwei@huawei.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "761694a0bdc01817d1212b1127234dcaf828fde7",
      "tree": "cb2c7b2d912bbe675c86f854d86fa137bbdfbf87",
      "parents": [
        "e1672f4e2c9fb1231a6242ca1596806f123da3c5"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung.kim@lge.com",
        "time": "Thu Apr 11 16:01:38 2013 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue May 07 19:51:54 2013 -0700"
      },
      "message": "tracing: Reset ftrace_graph_filter_enabled if count is zero\n\ncommit 9f50afccfdc15d95d7331acddcb0f7703df089ae upstream.\n\nThe ftrace_graph_count can be decreased with a \"!\" pattern, so that\nthe enabled flag should be updated too.\n\nLink: http://lkml.kernel.org/r/1365663698-2413-1-git-send-email-namhyung@kernel.org\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e1672f4e2c9fb1231a6242ca1596806f123da3c5",
      "tree": "b36e7f377900905a74acc59a60b3b80035a328a6",
      "parents": [
        "226c8ea60cfc71732ff2212fae71077789718e51"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung.kim@lge.com",
        "time": "Wed Apr 10 09:18:12 2013 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue May 07 19:51:54 2013 -0700"
      },
      "message": "tracing: Check return value of tracing_init_dentry()\n\ncommit ed6f1c996bfe4b6e520cf7a74b51cd6988d84420 upstream.\n\nCheck return value and bail out if it\u0027s NULL.\n\nLink: http://lkml.kernel.org/r/1365553093-10180-2-git-send-email-namhyung@kernel.org\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "226c8ea60cfc71732ff2212fae71077789718e51",
      "tree": "2b732acfa2d9c2011645cec8ce97732748fc28fb",
      "parents": [
        "d4ca6ccafc266cefbd004e515695cbeb1e8b8411"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung.kim@lge.com",
        "time": "Mon Apr 01 21:46:24 2013 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue May 07 19:51:54 2013 -0700"
      },
      "message": "tracing: Fix off-by-one on allocating stat-\u003epages\n\ncommit 39e30cd1537937d3c00ef87e865324e981434e5b upstream.\n\nThe first page was allocated separately, so no need to start from 0.\n\nLink: http://lkml.kernel.org/r/1364820385-32027-2-git-send-email-namhyung@kernel.org\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "d4ca6ccafc266cefbd004e515695cbeb1e8b8411",
      "tree": "ee4323abe88e7c646ccda4f23255cdfa5fe95eb3",
      "parents": [
        "af1860122000cf090868fb7f7fbba7417e4575bd"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 13 23:34:22 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue May 07 19:51:54 2013 -0700"
      },
      "message": "tracing: Remove most or all of stack tracer stack size from stack_max_size\n\ncommit 4df297129f622bdc18935c856f42b9ddd18f9f28 upstream.\n\nCurrently, the depth reported in the stack tracer stack_trace file\ndoes not match the stack_max_size file. This is because the stack_max_size\nincludes the overhead of stack tracer itself while the depth does not.\n\nThe first time a max is triggered, a calculation is not performed that\nfigures out the overhead of the stack tracer and subtracts it from\nthe stack_max_size variable. The overhead is stored and is subtracted\nfrom the reported stack size for comparing for a new max.\n\nNow the stack_max_size corresponds to the reported depth:\n\n # cat stack_max_size\n4640\n\n # cat stack_trace\n        Depth    Size   Location    (48 entries)\n        -----    ----   --------\n  0)     4640      32   _raw_spin_lock+0x18/0x24\n  1)     4608     112   ____cache_alloc+0xb7/0x22d\n  2)     4496      80   kmem_cache_alloc+0x63/0x12f\n  3)     4416      16   mempool_alloc_slab+0x15/0x17\n[...]\n\nWhile testing against and older gcc on x86 that uses mcount instead\nof fentry, I found that pasing in ip + MCOUNT_INSN_SIZE let the\nstack trace show one more function deep which was missing before.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "af1860122000cf090868fb7f7fbba7417e4575bd",
      "tree": "7b4b78cfbb68a81cb1463aaac0faa1b46e4052ec",
      "parents": [
        "893238186e35bdd59efde4572bcb6d0653c0ec65"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 13 21:25:35 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue May 07 19:51:54 2013 -0700"
      },
      "message": "tracing: Fix stack tracer with fentry use\n\ncommit d4ecbfc49b4b1d4b597fb5ba9e4fa25d62f105c5 upstream.\n\nWhen gcc 4.6 on x86 is used, the function tracer will use the new\noption -mfentry which does a call to \"fentry\" at every function\ninstead of \"mcount\". The significance of this is that fentry is\ncalled as the first operation of the function instead of the mcount\nusage of being called after the stack.\n\nThis causes the stack tracer to show some bogus results for the size\nof the last function traced, as well as showing \"ftrace_call\" instead\nof the function. This is due to the stack frame not being set up\nby the function that is about to be traced.\n\n # cat stack_trace\n        Depth    Size   Location    (48 entries)\n        -----    ----   --------\n  0)     4824     216   ftrace_call+0x5/0x2f\n  1)     4608     112   ____cache_alloc+0xb7/0x22d\n  2)     4496      80   kmem_cache_alloc+0x63/0x12f\n\nThe 216 size for ftrace_call includes both the ftrace_call stack\n(which includes the saving of registers it does), as well as the\nstack size of the parent.\n\nTo fix this, if CC_USING_FENTRY is defined, then the stack_tracer\nwill reserve the first item in stack_dump_trace[] array when\ncalling save_stack_trace(), and it will fill it in with the parent ip.\nThen the code will look for the parent pointer on the stack and\ngive the real size of the parent\u0027s stack pointer:\n\n # cat stack_trace\n        Depth    Size   Location    (14 entries)\n        -----    ----   --------\n  0)     2640      48   update_group_power+0x26/0x187\n  1)     2592     224   update_sd_lb_stats+0x2a5/0x4ac\n  2)     2368     160   find_busiest_group+0x31/0x1f1\n  3)     2208     256   load_balance+0xd9/0x662\n\nI\u0027m Cc\u0027ing stable, although it\u0027s not urgent, as it only shows bogus\nsize for item #0, the rest of the trace is legit. It should still be\ncorrected in previous stable releases.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "893238186e35bdd59efde4572bcb6d0653c0ec65",
      "tree": "4da26b69bc9c3432a7a77c653f882ccd2ced8424",
      "parents": [
        "a393520aa653a5e1133e14a1984b5e5815e01cf6"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 13 20:43:57 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue May 07 19:51:54 2013 -0700"
      },
      "message": "tracing: Use stack of calling function for stack tracer\n\ncommit 87889501d0adfae10e3b0f0e6f2d7536eed9ae84 upstream.\n\nUse the stack of stack_trace_call() instead of check_stack() as\nthe test pointer for max stack size. It makes it a bit cleaner\nand a little more accurate.\n\nAdding stable, as a later fix depends on this patch.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e264d3cf890eb1ead5200731b9e3dbd1d1b71fa8",
      "tree": "f0ac71897029ad2ec81178e32aec9eddb24e769e",
      "parents": [
        "b43105dee8480ca5784de5c858d1cccee74ebfb1"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung.kim@lge.com",
        "time": "Mon Apr 01 21:46:23 2013 +0900"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Apr 16 21:27:26 2013 -0700"
      },
      "message": "tracing: Fix double free when function profile init failed\n\ncommit 83e03b3fe4daffdebbb42151d5410d730ae50bd1 upstream.\n\nOn the failure path, stat-\u003estart and stat-\u003epages will refer same page.\nSo it\u0027ll attempt to free the same page again and get kernel panic.\n\nLink: http://lkml.kernel.org/r/1364820385-32027-1-git-send-email-namhyung@kernel.org\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@kernel.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Namhyung Kim \u003cnamhyung.kim@lge.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "b81d3241838167667fc1ec9bb5670d5f661a3628",
      "tree": "625e62463a9e8bc060ea8a5b036d5c107bae16c2",
      "parents": [
        "b26bcbe0a7bba3321cefa4c9936e05cb58df03cb"
      ],
      "author": {
        "name": "Jan Kiszka",
        "email": "jan.kiszka@siemens.com",
        "time": "Tue Mar 26 17:53:03 2013 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Apr 12 09:38:45 2013 -0700"
      },
      "message": "ftrace: Consistently restore trace function on sysctl enabling\n\ncommit 5000c418840b309251c5887f0b56503aae30f84c upstream.\n\nIf we reenable ftrace via syctl, we currently set ftrace_trace_function\nbased on the previous simplistic algorithm. This is inconsistent with\nwhat update_ftrace_function does. So better call that helper instead.\n\nLink: http://lkml.kernel.org/r/5151D26F.1070702@siemens.com\n\nSigned-off-by: Jan Kiszka \u003cjan.kiszka@siemens.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "7b7cf9fa6d3406c1c7410afa861d524f732e4a7c",
      "tree": "0695fbf0df793cbc91d723893f77eafd60e31d10",
      "parents": [
        "2f6b6e28ca9af9c1f745efa9277e3e7c9ad64883"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu Mar 14 15:03:53 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Apr 05 10:04:37 2013 -0700"
      },
      "message": "tracing: Prevent buffer overwrite disabled for latency tracers\n\ncommit 613f04a0f51e6e68ac6fe571ab79da3c0a5eb4da upstream.\n\nThe latency tracers require the buffers to be in overwrite mode,\notherwise they get screwed up. Force the buffers to stay in overwrite\nmode when latency tracers are enabled.\n\nAdded a flag_changed() method to the tracer structure to allow\nthe tracers to see what flags are being changed, and also be able\nto prevent the change from happing.\n\n[Backported for 3.4-stable. Re-added current_trace NULL checks; removed\nallocated_snapshot field; adapted to tracing_trace_options_write without\ntrace_set_options.]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Lingzhu Xiang \u003clxiang@redhat.com\u003e\nReviewed-by: CAI Qian \u003ccaiqian@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "2f6b6e28ca9af9c1f745efa9277e3e7c9ad64883",
      "tree": "2e66c696fe47845e4d2f3ed4cd12d02441ddf9b5",
      "parents": [
        "2457a4005a53bd8d9a266ab8f9f6388b57ca133a"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Thu Mar 14 13:50:56 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Apr 05 10:04:37 2013 -0700"
      },
      "message": "tracing: Protect tracer flags with trace_types_lock\n\ncommit 69d34da2984c95b33ea21518227e1f9470f11d95 upstream.\n\nSeems that the tracer flags have never been protected from\nsynchronous writes. Luckily, admins don\u0027t usually modify the\ntracing flags via two different tasks. But if scripts were to\nbe used to modify them, then they could get corrupted.\n\nMove the trace_types_lock that protects against tracers changing\nto also protect the flags being set.\n\n[Backported for 3.4, 3.0-stable. Moved return to after unlock.]\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Lingzhu Xiang \u003clxiang@redhat.com\u003e\nReviewed-by: CAI Qian \u003ccaiqian@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "52cecaa20589203f08a965af4604acec8a946825",
      "tree": "0e48ffe412192e158f736d6a7ae3b1d896901b52",
      "parents": [
        "1e3b58b64c6574c9c8e299c68c8c4716f8dd3c21"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Mar 13 11:15:19 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Mar 28 12:12:06 2013 -0700"
      },
      "message": "tracing: Fix free of probe entry by calling call_rcu_sched()\n\ncommit 740466bc89ad8bd5afcc8de220f715f62b21e365 upstream.\n\nBecause function tracing is very invasive, and can even trace\ncalls to rcu_read_lock(), RCU access in function tracing is done\nwith preempt_disable_notrace(). This requires a synchronize_sched()\nfor updates and not a synchronize_rcu().\n\nFunction probes (traceon, traceoff, etc) must be freed after\na synchronize_sched() after its entry has been removed from the\nhash. But call_rcu() is used. Fix this by using call_rcu_sched().\n\nAlso fix the usage to use hlist_del_rcu() instead of hlist_del().\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Paul McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1e3b58b64c6574c9c8e299c68c8c4716f8dd3c21",
      "tree": "84e8d63958b4c88068b5f0011160d39f5e305d8e",
      "parents": [
        "74a523fb1759bd3afabf586740041e6d09d731c2"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Tue Mar 12 11:32:32 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Mar 28 12:12:06 2013 -0700"
      },
      "message": "tracing: Fix race in snapshot swapping\n\ncommit 2721e72dd10f71a3ba90f59781becf02638aa0d9 upstream.\n\nAlthough the swap is wrapped with a spin_lock, the assignment\nof the temp buffer used to swap is not within that lock.\nIt needs to be moved into that lock, otherwise two swaps\nhappening on two different CPUs, can end up using the wrong\ntemp buffer to assign in the swap.\n\nLuckily, all current callers of the swap function appear to have\ntheir own locks. But in case something is added that allows two\ndifferent callers to call the swap, then there\u0027s a chance that\nthis race can trigger and corrupt the buffers.\n\nNew code is coming soon that will allow for this race to trigger.\n\nI\u0027ve Cc\u0027d stable, so this bug will not show up if someone backports\none of the changes that can trigger this bug.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "abf73cb191a83045c3cc6f46ea78b94439957585",
      "tree": "cb88f3a2335ab2db1e92601774312115f230d274",
      "parents": [
        "f39e4f133d52fad48f5c823b6c8a867caf101677"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 27 21:48:09 2013 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Mar 14 11:29:51 2013 -0700"
      },
      "message": "ftrace: Update the kconfig for DYNAMIC_FTRACE\n\ncommit db05021d49a994ee40a9735d9c3cb0060c9babb8 upstream.\n\nThe prompt to enable DYNAMIC_FTRACE (the ability to nop and\nenable function tracing at run time) had a confusing statement:\n\n \"enable/disable ftrace tracepoints dynamically\"\n\nThis was written before tracepoints were added to the kernel,\nbut now that tracepoints have been added, this is very confusing\nand has confused people enough to give wrong information during\npresentations.\n\nNot only that, I looked at the help text, and it still references\nthat dreaded daemon that use to wake up once a second to update\nthe nop locations and brick NICs, that hasn\u0027t been around for over\nfive years.\n\nTime to bring the text up to the current decade.\n\nReported-by: Ezequiel Garcia \u003celezegarcia@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e6842472eb7f8091c27eb43ad934097ce04d3fbb",
      "tree": "1955782375cc0a83a91aa2e849381efa3a161a63",
      "parents": [
        "db3d76a623b8ce429318cc2491881c02b790dab4"
      ],
      "author": {
        "name": "Steven Rostedt (Red Hat)",
        "email": "rostedt@goodmis.org",
        "time": "Wed Feb 13 15:18:38 2013 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Mar 04 06:06:38 2013 +0800"
      },
      "message": "ftrace: Call ftrace cleanup module notifier after all other notifiers\n\ncommit 8c189ea64eea01ca20d102ddb74d6936dd16c579 upstream.\n\nCommit: c1bf08ac \"ftrace: Be first to run code modification on modules\"\n\nchanged ftrace module notifier\u0027s priority to INT_MAX in order to\nprocess the ftrace nops before anything else could touch them\n(namely kprobes). This was the correct thing to do.\n\nUnfortunately, the ftrace module notifier also contains the ftrace\nclean up code. As opposed to the set up code, this code should be\nrun *after* all the module notifiers have run in case a module is doing\ncorrect clean-up and unregisters its ftrace hooks. Basically, ftrace\nneeds to do clean up on module removal, as it needs to know about code\nbeing removed so that it doesn\u0027t try to modify that code. But after it\nremoves the module from its records, if a ftrace user tries to remove\na probe, that removal will fail due as the record of that code segment\nno longer exists.\n\nNothing really bad happens if the probe removal is called after ftrace\ndid the clean up, but the ftrace removal function will return an error.\nCorrect code (such as kprobes) will produce a WARN_ON() if it fails\nto remove the probe. As people get annoyed by frivolous warnings, it\u0027s\nbest to do the ftrace clean up after everything else.\n\nBy splitting the ftrace_module_notifier into two notifiers, one that\ndoes the module load setup that is run at high priority, and the other\nthat is called for module clean up that is run at low priority, the\nproblem is solved.\n\nReported-by: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "502f0d8c3c56812b05ce55d3209a1ae2f5cb737c",
      "tree": "ef54a6a76e55bfccf7026bfcd322d9f402dcdb09",
      "parents": [
        "ddec663b64a01d5e9bfe827652f62ad1688e8b01"
      ],
      "author": {
        "name": "Pushkar Joshi",
        "email": "pushkarj@codeaurora.org",
        "time": "Wed Oct 31 13:21:28 2012 -0700"
      },
      "committer": {
        "name": "Pratik Patel",
        "email": "pratikp@codeaurora.org",
        "time": "Wed Jan 30 16:09:34 2013 -0800"
      },
      "message": "coresight: have trace_printk only log the actual data to STM\n\nThe trace_printk, when configured to process printk strings before\nstoring them in the internal ring buffer, currently also logs the\ncomplete internal buffer data structure to the STM. Instead it\nshould only log the string output obtained after processing the\nprintk format and arguments. Changing the stm_log call to only\nlog this relevant data.\n\nChange-Id: Ia33109f95fb84fa1606247a861deeaedd2f95d3f\nSigned-off-by: Pushkar Joshi \u003cpushkarj@codeaurora.org\u003e\n"
    },
    {
      "commit": "ddec663b64a01d5e9bfe827652f62ad1688e8b01",
      "tree": "ebedc5b97a7cf6c358d33cc07554009db7d0bb30",
      "parents": [
        "12c143c25739632e8dd921ca5afaaadd6477f28a"
      ],
      "author": {
        "name": "Pushkar Joshi",
        "email": "pushkarj@codeaurora.org",
        "time": "Fri Oct 26 15:31:23 2012 -0700"
      },
      "committer": {
        "name": "Pratik Patel",
        "email": "pratikp@codeaurora.org",
        "time": "Wed Jan 30 16:09:34 2013 -0800"
      },
      "message": "coresight: Have trace_marker only log the actual data\n\nThe stm_log call in tracing_mark_write was logging the complete\ninternal buffer data structure instead of only the data part.\nChanging the call to only log the data.\n\nChange-Id: I33e800cd9b1dc1d27d519c74db0cf5bb6ef6e3f5\nSigned-off-by: Pushkar Joshi \u003cpushkarj@codeaurora.org\u003e\n"
    },
    {
      "commit": "f2a010040e2c368a76f7ea0ed6533f5779cb6b4b",
      "tree": "1a8969b4b669d973d2f968b47e8aa3323038c750",
      "parents": [
        "d027bb39240aa55b86738508fb5612b9125a886f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Dec 14 09:48:15 2012 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jan 27 20:47:42 2013 -0800"
      },
      "message": "ftrace: Be first to run code modification on modules\n\ncommit c1bf08ac26e92122faab9f6c32ea8aba94612dae upstream.\n\nIf some other kernel subsystem has a module notifier, and adds a kprobe\nto a ftrace mcount point (now that kprobes work on ftrace points),\nwhen the ftrace notifier runs it will fail and disable ftrace, as well\nas kprobes that are attached to ftrace points.\n\nHere\u0027s the error:\n\n WARNING: at kernel/trace/ftrace.c:1618 ftrace_bug+0x239/0x280()\n Hardware name: Bochs\n Modules linked in: fat(+) stap_56d28a51b3fe546293ca0700b10bcb29__8059(F) nfsv4 auth_rpcgss nfs dns_resolver fscache xt_nat iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack lockd sunrpc ppdev parport_pc parport microcode virtio_net i2c_piix4 drm_kms_helper ttm drm i2c_core [last unloaded: bid_shared]\n Pid: 8068, comm: modprobe Tainted: GF            3.7.0-0.rc8.git0.1.fc19.x86_64 #1\n Call Trace:\n  [\u003cffffffff8105e70f\u003e] warn_slowpath_common+0x7f/0xc0\n  [\u003cffffffff81134106\u003e] ? __probe_kernel_read+0x46/0x70\n  [\u003cffffffffa0180000\u003e] ? 0xffffffffa017ffff\n  [\u003cffffffffa0180000\u003e] ? 0xffffffffa017ffff\n  [\u003cffffffff8105e76a\u003e] warn_slowpath_null+0x1a/0x20\n  [\u003cffffffff810fd189\u003e] ftrace_bug+0x239/0x280\n  [\u003cffffffff810fd626\u003e] ftrace_process_locs+0x376/0x520\n  [\u003cffffffff810fefb7\u003e] ftrace_module_notify+0x47/0x50\n  [\u003cffffffff8163912d\u003e] notifier_call_chain+0x4d/0x70\n  [\u003cffffffff810882f8\u003e] __blocking_notifier_call_chain+0x58/0x80\n  [\u003cffffffff81088336\u003e] blocking_notifier_call_chain+0x16/0x20\n  [\u003cffffffff810c2a23\u003e] sys_init_module+0x73/0x220\n  [\u003cffffffff8163d719\u003e] system_call_fastpath+0x16/0x1b\n ---[ end trace 9ef46351e53bbf80 ]---\n ftrace failed to modify [\u003cffffffffa0180000\u003e] init_once+0x0/0x20 [fat]\n  actual: cc:bb:d2:4b:e1\n\nA kprobe was added to the init_once() function in the fat module on load.\nBut this happened before ftrace could have touched the code. As ftrace\ndidn\u0027t run yet, the kprobe system had no idea it was a ftrace point and\nsimply added a breakpoint to the code (0xcc in the cc:bb:d2:4b:e1).\n\nThen when ftrace went to modify the location from a call to mcount/fentry\ninto a nop, it didn\u0027t see a call op, but instead it saw the breakpoint op\nand not knowing what to do with it, ftrace shut itself down.\n\nThe solution is to simply give the ftrace module notifier the max priority.\nThis should have been done regardless, as the core code ftrace modification\nalso happens very early on in boot up. This makes the module modification\ncloser to core modification.\n\nLink: http://lkml.kernel.org/r/20130107140333.593683061@goodmis.org\n\nAcked-by: Masami Hiramatsu \u003cmasami.hiramatsu.pt@hitachi.com\u003e\nReported-by: Frank Ch. Eigler \u003cfche@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n\n"
    },
    {
      "commit": "43c81deec87e8d223c713e9f016a45fd18ec29c3",
      "tree": "5af4f80e9699fd442b81165d5645c754efbea899",
      "parents": [
        "b5075e02c2ff1d959c589552c62329c4797b0535"
      ],
      "author": {
        "name": "Matt Wagantall",
        "email": "mattw@codeaurora.org",
        "time": "Wed Aug 01 19:10:10 2012 -0700"
      },
      "committer": {
        "name": "Sudhir Sharma",
        "email": "sudsha@codeaurora.org",
        "time": "Thu Jan 24 15:23:44 2013 -0800"
      },
      "message": "trace: cpu_freq_switch: Add profiler for CPU frequency switch times\n\nIt is sometimes useful to profile how long CPU frequency switches\ntake, and traces have already been added for this purpose. Make\nuse of these and the trace_stat framework to generate statistical\nhistograms of frequency switch times in the following format:\n\n # cat /sys/kernel/debug/tracing/trace_stat/cpu_freq_switch\n  CPU START_KHZ  END_KHZ COUNT AVG_US MIN_US MAX_US\n    |         |        |     |      |      |      |\n    0    384000  1512000     3   2787   1648   3418\n    0    486000   384000     1   1129   1129   1129\n    0   1458000   384000     1   3174   3174   3174\n    0   1512000   384000     1   3265   3265   3265\n    0   1512000   486000     1   3235   3235   3235\n    0   1512000  1458000     1    213    213    213\n    0   1512000  1512000     1      0      0      0\n\nProfiling is disabled by default (since it does incur some\noverhead). It can be enabled or re-disabled echoing 1 or 0\nto /sys/kernel/debug/tracing/cpu_freq_switch_profile_enabled\n\nChange-Id: I3ef7f9d681b7bd13bcaa031003b10312afe1aefe\nSigned-off-by: Matt Wagantall \u003cmattw@codeaurora.org\u003e\n(cherry picked from commit a629fb0b67b57cc6759da51b9c12750758736c80)\n"
    },
    {
      "commit": "4d7981bfc21f7b6ef48f9a819d2c9969ad6eea71",
      "tree": "bcfce7dceeba920d49de2f696b1f12380818bafc",
      "parents": [
        "0d38a8789caf511e5b997caf76eb32fddbff051c"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 29 22:31:16 2012 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jan 17 08:50:51 2013 -0800"
      },
      "message": "ring-buffer: Fix race between integrity check and readers\n\ncommit 9366c1ba13fbc41bdb57702e75ca4382f209c82f upstream.\n\nThe function rb_check_pages() was added to make sure the ring buffer\u0027s\npages were sane. This check is done when the ring buffer size is modified\nas well as when the iterator is released (closing the \"trace\" file),\nas that was considered a non fast path and a good place to do a sanity\ncheck.\n\nThe problem is that the check does not have any locks around it.\nIf one process were to read the trace file, and another were to read\nthe raw binary file, the check could happen while the reader is reading\nthe file.\n\nThe issues with this is that the check requires to clear the HEAD page\nbefore doing the full check and it restores it afterward. But readers\nrequire the HEAD page to exist before it can read the buffer, otherwise\nit gives a nasty warning and disables the buffer.\n\nBy adding the reader lock around the check, this keeps the race from\nhappening.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "455d8953951baf0d38673b010100241e508b765c",
      "tree": "094cf118760740e10acdef2f4edffd425e5a86f4",
      "parents": [
        "31fdb19eb968995b3c5f4337918bd51442f992ec"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Sat Jun 09 19:10:27 2012 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Dec 17 10:37:46 2012 -0800"
      },
      "message": "ftrace: Clear bits properly in reset_iter_read()\n\ncommit 70f77b3f7ec010ff9624c1f2e39a81babc9e2429 upstream.\n\nThere is a typo here where \u0027\u0026\u0027 is used instead of \u0027|\u0027 and it turns the\nstatement into a noop.  The original code is equivalent to:\n\n\titer-\u003eflags \u0026\u003d ~((1 \u003c\u003c 2) \u0026 (1 \u003c\u003c 4));\n\nLink: http://lkml.kernel.org/r/20120609161027.GD6488@elgon.mountain\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "8e1e6b65fe92a0fa7bdb787fc7d9c5c0eae3d654",
      "tree": "6c33e4563cfedb58255520fe5b0142c861638a17",
      "parents": [
        "cf7d045799f928ac338dbc9fea42538567a513e9"
      ],
      "author": {
        "name": "Pratik Patel",
        "email": "pratikp@codeaurora.org",
        "time": "Fri Jun 29 12:24:49 2012 -0700"
      },
      "committer": {
        "name": "Pratik Patel",
        "email": "pratikp@codeaurora.org",
        "time": "Sat Aug 11 16:40:46 2012 -0700"
      },
      "message": "coresight: enable stm logging for ftrace events and printk\n\nDup ftrace event traffic (including writes to trace_marker file from\nuserspace) to STM. Also dup printk traffic to STM. This allows Linux\ntracing and log data to be correlated with other data transported over\nSTM.\n\nChange-Id: Ieb0b856447f7667eb0005a6a884211dc46f50217\nSigned-off-by: Pratik Patel \u003cpratikp@codeaurora.org\u003e\n"
    },
    {
      "commit": "2c07f25ea7800adb36cd8da9b58c4ecd3fc3d064",
      "tree": "b312e3b679b544de20569f8e31dd1469e8a72be1",
      "parents": [
        "5318edefb61eddf91d4c4a089644fcee3ccfda62"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Tue Jun 12 15:24:40 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:42 2012 -0700"
      },
      "message": "splice: fix racy pipe-\u003ebuffers uses\n\ncommit 047fe3605235888f3ebcda0c728cb31937eadfe6 upstream.\n\nDave Jones reported a kernel BUG at mm/slub.c:3474! triggered\nby splice_shrink_spd() called from vmsplice_to_pipe()\n\ncommit 35f3d14dbbc5 (pipe: add support for shrinking and growing pipes)\nadded capability to adjust pipe-\u003ebuffers.\n\nProblem is some paths don\u0027t hold pipe mutex and assume pipe-\u003ebuffers\ndoesn\u0027t change for their duration.\n\nFix this by adding nr_pages_max field in struct splice_pipe_desc, and\nuse it in place of pipe-\u003ebuffers where appropriate.\n\nsplice_shrink_spd() loses its struct pipe_inode_info argument.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nTested-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@kernel.dk\u003e\n[bwh: Backported to 3.2:\n - Adjust context in vmsplice_to_pipe()\n - Update one more call to splice_shrink_spd(), from skb_splice_bits()]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "4943d9cb7d82218d196ccc034ecaf933298e7e95",
      "tree": "9ded95e170894ee15f798fa118ed2ebced2ec9ab",
      "parents": [
        "dbb3e108234bf8e4bf43d2fed8bc57792e3dbd2f"
      ],
      "author": {
        "name": "Vaibhav Nagarnaik",
        "email": "vnagarnaik@google.com",
        "time": "Thu May 03 18:59:52 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:04:40 2012 -0700"
      },
      "message": "tracing: change CPU ring buffer state from tracing_cpumask\n\ncommit 71babb2705e2203a64c27ede13ae3508a0d2c16c upstream.\n\nAccording to Documentation/trace/ftrace.txt:\n\ntracing_cpumask:\n\n        This is a mask that lets the user only trace\n        on specified CPUS. The format is a hex string\n        representing the CPUS.\n\nThe tracing_cpumask currently doesn\u0027t affect the tracing state of\nper-CPU ring buffers.\n\nThis patch enables/disables CPU recording as its corresponding bit in\ntracing_cpumask is set/unset.\n\nLink: http://lkml.kernel.org/r/1336096792-25373-3-git-send-email-vnagarnaik@google.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Laurent Chavey \u003cchavey@google.com\u003e\nCc: Justin Teravest \u003cteravest@google.com\u003e\nCc: David Sharp \u003cdhsharp@google.com\u003e\nSigned-off-by: Vaibhav Nagarnaik \u003cvnagarnaik@google.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "3993b24649773080897fde524ea2d9f311eba2aa",
      "tree": "22cbe6a20e2d52c2886c309a6307cce4364734f0",
      "parents": [
        "d946d96cd89b13fc354b6f7ed2c4de3e72c87d8e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jun 06 19:50:40 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Jun 22 11:36:55 2012 -0700"
      },
      "message": "tracing: Have tracing_off() actually turn tracing off\n\ncommit f2bf1f6f5f89d031245067512449fc889b2f4bb2 upstream.\n\nA recent update to have tracing_on/off() only affect the ftrace ring\nbuffers instead of all ring buffers had a cut and paste error.\nThe tracing_off() did the exact same thing as tracing_on() and\nwould not actually turn off tracing. Unfortunately, tracing_off()\nis more important to be working than tracing_on() as this is a key\ndevelopment tool, as it lets the developer turn off tracing as soon\nas a problem is discovered. It is also used by panic and oops code.\n\nThis bug also breaks the \u0027echo func:traceoff \u003e set_ftrace_filter\u0027\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "f132c6cf77251e011e1dad0ec88c0b1fda16d5aa",
      "tree": "f04b469a3547a19b7bdbe110adc571eb71c93328",
      "parents": [
        "23016defd7db701a01dc49f972ad6b1bae9651c2",
        "3f6240f3e4e2608caf1a70d614ada658cbcbe7be"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Wed Jun 06 18:30:57 2012 -0700"
      },
      "committer": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Wed Jun 06 18:45:28 2012 -0700"
      },
      "message": "Merge commit \u0027AU_LINUX_ANDROID_ICS.04.00.04.00.126\u0027 into msm-3.4\n\nAU_LINUX_ANDROID_ICS.04.00.04.00.126 from msm-3.0.\nFirst parent is from google/android-3.4.\n\n* commit \u0027AU_LINUX_ANDROID_ICS.04.00.04.00.126\u0027: (8712 commits)\n  PRNG: Device tree entry for qrng device.\n  vidc:1080p: Set video core timeout value for Thumbnail mode\n  msm: sps: improve the debugging support in SPS driver\n  board-8064 msm: Overlap secure and non secure video firmware heaps.\n  msm: clock: Add handoff ops for 7x30 and copper XO clocks\n  msm_fb: display: Wait for external vsync before DTV IOMMU unmap\n  msm: Fix ciruclar dependency in debug UART settings\n  msm: gdsc: Add GDSC regulator driver for msm-copper\n  defconfig: Enable Mobicore Driver.\n  mobicore: Add mobicore driver.\n  mobicore: rename variable to lower case.\n  mobicore: rename folder.\n  mobicore: add makefiles\n  mobicore: initial import of kernel driver\n  ASoC: msm: Add SLIMBUS_2_RX CPU DAI\n  board-8064-gpio: Update FUNC for EPM SPI CS\n  msm_fb: display: Remove chicken bit config during video playback\n  mmc: msm_sdcc: enable the sanitize capability\n  msm-fb: display: lm2 writeback support on mpq platfroms\n  msm_fb: display: Disable LVDS phy \u0026 pll during panel off\n  ...\n\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "73937f5face75e05ec2a72966d04f4e20aa18379",
      "tree": "f3c12b4daec9f72dbecc33001f33ee210c046fec",
      "parents": [
        "3063b5a519b392dd13afd2ffe820eba312db2759"
      ],
      "author": {
        "name": "Maya Erez",
        "email": "merez@codeaurora.org",
        "time": "Thu May 24 23:33:05 2012 +0300"
      },
      "committer": {
        "name": "Maya Erez",
        "email": "merez@codeaurora.org",
        "time": "Thu May 24 23:33:05 2012 +0300"
      },
      "message": "block: ioctl support for sanitize in eMMC 4.5\n\nAdding a new ioctl to support sanitize operation in eMMC\ncards version 4.5.\nThe sanitize ioctl support helps performing this operation\nvia user application.\n\nChange-Id: I79aa4163e7753a75bed5a26a9a92de902b4b9c21\nSigned-off-by: Yaniv Gardi \u003cygardi@codeaurora.org\u003e\nSigned-off-by: Maya Erez \u003cmerez@codeaurora.org\u003e\n"
    },
    {
      "commit": "9b63776fa3ca96c4ecda76f6fa947b7b0add66ac",
      "tree": "ac90f2faceecab78d7d547c33daef31d4a9e2943",
      "parents": [
        "20d23aaa31da295378abff4272716e3dfc72baf0"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu May 10 15:55:43 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu May 10 15:55:43 2012 -0400"
      },
      "message": "tracing: Do not enable function event with enable\n\nWith the adding of function tracing event to perf, it caused a\nside effect that produces the following warning when enabling all\nevents in ftrace:\n\n # echo 1 \u003e /sys/kernel/debug/tracing/events/enable\n\n[console]\nevent trace: Could not enable event function\n\nThis is because when enabling all events via the debugfs system\nit ignores events that do not have a -\u003ereg() function assigned.\nThis was to skip over the ftrace internal events (as they are\nnot TRACE_EVENTs). But as the ftrace function event now has\na -\u003ereg() function attached to it for use with perf, it is no\nlonger ignored.\n\nWorse yet, this -\u003ereg() function is being called when it should\nnot be. It returns an error and causes the above warning to\nbe printed.\n\nBy adding a new event_call flag (TRACE_EVENT_FL_IGNORE_ENABLE)\nand have all ftrace internel event structures have it set,\nsetting the events/enable will no longe try to incorrectly enable\nthe function event and does not warn.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "db4c75cbebd7e5910cd3bcb6790272fcc3042857",
      "tree": "068514135f1bfd68c6add551ec94545010ca5a73",
      "parents": [
        "348f0fc238efb441a28e7644c51f9fd3001b228a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Apr 19 10:31:47 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Apr 19 17:00:13 2012 -0400"
      },
      "message": "tracing: Fix stacktrace of latency tracers (irqsoff and friends)\n\nWhile debugging a latency with someone on IRC (mirage335) on #linux-rt (OFTC),\nwe discovered that the stacktrace output of the latency tracers\n(preemptirqsoff) was empty.\n\nThis bug was caused by the creation of the dynamic length stack trace\nagain (like commit 12b5da3 \"tracing: Fix ent_size in trace output\" was).\n\nThis bug is caused by the latency tracers requiring the next event\nto determine the time between the current event and the next. But by\ngrabbing the next event, the iter-\u003eent_size is set to the next event\ninstead of the current one. As the stacktrace event is the last event,\nthis makes the ent_size zero and causes nothing to be printed for\nthe stack trace. The dynamic stacktrace uses the ent_size to determine\nhow much of the stack can be printed. The ent_size of zero means\nno stack.\n\nThe simple fix is to save the iter-\u003eent_size before finding the next event.\n\nNote, mirage335 asked to remain anonymous from LKML and git, so I will\nnot add the Reported-by and Tested-by tags, even though he did report\nthe issue and tested the fix.\n\nCc: stable@vger.kernel.org # 3.1+\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "348f0fc238efb441a28e7644c51f9fd3001b228a",
      "tree": "780fa93c72777045a986f0ce648efc2bf8e35999",
      "parents": [
        "6e48b550d1f5f1919e6500547ae14a73fbf66c7b"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Apr 16 15:41:28 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Apr 16 15:41:28 2012 -0400"
      },
      "message": "tracing: Fix regression with tracing_on\n\nThe change to make tracing_on affect only the ftrace ring buffer, caused\na bug where it wont affect any ring buffer. The problem was that the buffer\nof the trace_array was passed to the write function and not the trace array\nitself.\n\nThe trace_array can change the buffer when running a latency tracer. If this\nhappens, then the buffer being disabled may not be the buffer currently used\nby ftrace. This will cause the tracing_on file to become useless.\n\nThe simple fix is to pass the trace_array to the write function instead of\nthe buffer. Then the actual buffer may be changed.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "6e48b550d1f5f1919e6500547ae14a73fbf66c7b",
      "tree": "983a2a06bc7aaddfc05f2d8c33309c3c21d30dea",
      "parents": [
        "a7ca08038b990e2cbed324948664b2d8940fd782"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Fri Apr 13 09:52:59 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Apr 13 21:37:04 2012 -0400"
      },
      "message": "tracing: Fix build breakage without CONFIG_PERF_EVENTS (again)\n\nToday\u0027s -next fails to link for me:\n\nkernel/built-in.o:(.data+0x178e50): undefined reference to `perf_ftrace_event_register\u0027\n\nIt looks like multiple fixes have been merged for the issue fixed by\ncommit fa73dc9 (tracing: Fix build breakage without CONFIG_PERF_EVENTS)\nthough I can\u0027t identify the other changes that have gone in at the\nminute, it\u0027s possible that the changes which caused the breakage fixed\nby the previous commit got dropped but the fix made it in.\n\nLink: http://lkml.kernel.org/r/1334307179-21255-1-git-send-email-broonie@opensource.wolfsonmicro.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5d32c88f0b94061b3af2e3ade92422407282eb12",
      "tree": "2e1f81aa47b2cf59625c8fba17199617e33802e6",
      "parents": [
        "43f63c8711ce02226b7bbdafeba7b8031faf3fb4",
        "dac23b0d0513916498d40412818bd2c581b365f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 05 15:30:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 05 15:30:34 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge batch of fixes from Andrew Morton:\n \"The simple_open() cleanup was held back while I wanted for laggards to\n  merge things.\n\n  I still need to send a few checkpoint/restore patches.  I\u0027ve been\n  wobbly about merging them because I\u0027m wobbly about the overall\n  prospects for success of the project.  But after speaking with Pavel\n  at the LSF conference, it sounds like they\u0027re further toward\n  completion than I feared - apparently davem is at the \"has stopped\n  complaining\" stage regarding the net changes.  So I need to go back\n  and re-review those patchs and their (lengthy) discussion.\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (16 patches)\n  memcg swap: use mem_cgroup_uncharge_swap fix\n  backlight: add driver for DA9052/53 PMIC v1\n  C6X: use set_current_blocked() and block_sigmask()\n  MAINTAINERS: add entry for sparse checker\n  MAINTAINERS: fix REMOTEPROC F: typo\n  alpha: use set_current_blocked() and block_sigmask()\n  simple_open: automatically convert to simple_open()\n  scripts/coccinelle/api/simple_open.cocci: semantic patch for simple_open()\n  libfs: add simple_open()\n  hugetlbfs: remove unregister_filesystem() when initializing module\n  drivers/rtc/rtc-88pm860x.c: fix rtc irq enable callback\n  fs/xattr.c:setxattr(): improve handling of allocation failures\n  fs/xattr.c:listxattr(): fall back to vmalloc() if kmalloc() failed\n  fs/xattr.c: suppress page allocation failure warnings from sys_listxattr()\n  sysrq: use SEND_SIG_FORCED instead of force_sig()\n  proc: fix mount -t proc -o AAA\n"
    },
    {
      "commit": "234e340582901211f40d8c732afc49f0630ecf05",
      "tree": "753076500dfd883b3db56d4f5410af31d8945623",
      "parents": [
        "9b3ae64be658a573b33d05a8dc73b08d3345fa44"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Thu Apr 05 14:25:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 05 15:25:50 2012 -0700"
      },
      "message": "simple_open: automatically convert to simple_open()\n\nMany users of debugfs copy the implementation of default_open() when\nthey want to support a custom read/write function op.  This leads to a\nproliferation of the default_open() implementation across the entire\ntree.\n\nNow that the common implementation has been consolidated into libfs we\ncan replace all the users of this function with simple_open().\n\nThis replacement was done with the following semantic patch:\n\n\u003csmpl\u003e\n@ open @\nidentifier open_f !\u003d simple_open;\nidentifier i, f;\n@@\n-int open_f(struct inode *i, struct file *f)\n-{\n(\n-if (i-\u003ei_private)\n-f-\u003eprivate_data \u003d i-\u003ei_private;\n|\n-f-\u003eprivate_data \u003d i-\u003ei_private;\n)\n-return 0;\n-}\n\n@ has_open depends on open @\nidentifier fops;\nidentifier open.open_f;\n@@\nstruct file_operations fops \u003d {\n...\n-.open \u003d open_f,\n+.open \u003d simple_open,\n...\n};\n\u003c/smpl\u003e\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Julia Lawall \u003cJulia.Lawall@lip6.fr\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a76e99abc558aed633ba28ff61c5328116292bf3",
      "tree": "60f7677f0baafa00825accc1214839246b3e78dd",
      "parents": [
        "a54734678ff9cb97938b9f7648547174f3b118e4",
        "1d05f993784973189395051cc711fdd6dd5eb389"
      ],
      "author": {
        "name": "Rohit Vaswani",
        "email": "rvaswani@codeaurora.org",
        "time": "Fri Mar 30 00:09:34 2012 -0700"
      },
      "committer": {
        "name": "Rohit Vaswani",
        "email": "rvaswani@codeaurora.org",
        "time": "Fri Mar 30 00:09:34 2012 -0700"
      },
      "message": "Merge branch \u0027Linux 3.0.21\u0027 into msm-3.0\n\nMerge Upstream\u0027s stable 3.0.21 branch into msm-3.0\nThis consists 814 commits and some merge conflicts.\n\nThe merge conflicts are because of some local changes to\nmsm-3.0 as well as some conflicts between google\u0027s tree and\nthe upstream tree.\n\nConflicts:\n\tarch/arm/kernel/head.S\n\tdrivers/bluetooth/ath3k.c\n\tdrivers/bluetooth/btusb.c\n\tdrivers/mmc/core/core.c\n\tdrivers/tty/serial/serial_core.c\n\tdrivers/usb/host/ehci-hub.c\n\tdrivers/usb/serial/qcserial.c\n\tfs/namespace.c\n\tfs/proc/base.c\n\nChange-Id: I62e2edbe213f84915e27f8cd6e4f6ce23db22a21\nSigned-off-by: Rohit Vaswani \u003crvaswani@codeaurora.org\u003e\n"
    },
    {
      "commit": "12b5da349a8b94c9dbc3430a6bc42eabd9eaf50b",
      "tree": "a785d2b0757cacc15cd02e9eb6da3210c79a8aea",
      "parents": [
        "2c86bf172e550b4bf089ac7f0de3f6370e243842"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Mar 27 10:43:28 2012 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Mar 27 12:05:44 2012 -0400"
      },
      "message": "tracing: Fix ent_size in trace output\n\nWhen reading the trace file, the records of each of the per_cpu buffers\nare examined to find the next event to print out. At the point of looking\nat the event, the size of the event is recorded. But if the first event is\nchosen, the other events in the other CPU buffers will reset the event size\nthat is stored in the iterator descriptor, causing the event size passed to\nthe output functions to be incorrect.\n\nIn most cases this is not a problem, but for the case of stack traces, it\nis. With the change to the stack tracing to record a dynamic number of\nback traces, the output depends on the size of the entry instead of the\nfixed 8 back traces. When the entry size is not correct, the back traces\nwould not be fully printed.\n\nNote, reading from the per-cpu trace files were not affected.\n\nReported-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "7fd52392c56361a40f0c630a82b36b95ca31eac6",
      "tree": "14091de24c6b28ea4cae9826f98aeedb7be091f5",
      "parents": [
        "b01c3a0010aabadf745f3e7fdb9cab682e0a28a2",
        "e22057c8599373e5caef0bc42bdb95d2a361ab0d"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Mar 26 17:18:44 2012 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Mon Mar 26 17:19:03 2012 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into perf/urgent\n\nMerge reason: we need to fix a non-trivial merge conflict.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "04a54d27ce9698d108d29c8a6a50c28f7446336b",
      "tree": "95041020d6fd5e283e81f7c12c2fd4433b6af8e5",
      "parents": [
        "c7206205d00ab375839bd6c7ddb247d600693c09",
        "01de982abf8c9e10fc3089e10585cd2cc914bdab"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Mar 24 08:19:09 2012 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@kernel.org",
        "time": "Sat Mar 24 08:19:09 2012 +0100"
      },
      "message": "Merge branch \u0027tip/perf/urgent\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace into perf/urgent\n"
    },
    {
      "commit": "01de982abf8c9e10fc3089e10585cd2cc914bdab",
      "tree": "09819515fa130cf8fad5b17367bbd6f9e787e4a5",
      "parents": [
        "89c5bd08df5841326abbf167d136bcf14cf759ed"
      ],
      "author": {
        "name": "Wolfgang Mauerer",
        "email": "wolfgang.mauerer@siemens.com",
        "time": "Thu Mar 22 11:18:20 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Mar 22 12:19:23 2012 -0400"
      },
      "message": "tracing: Fix ftrace stack trace entries\n\n8 hex characters tell only half the tale for 64 bit CPUs,\nso use the appropriate length.\n\nLink: http://lkml.kernel.org/r/1332411501-8059-2-git-send-email-wolfgang.mauerer@siemens.com\n\nCc: stable@vger.kernel.org\nSigned-off-by: Wolfgang Mauerer \u003cwolfgang.mauerer@siemens.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e2a0883e4071237d09b604a342c28b96b44a04b3",
      "tree": "aa56f4d376b5eb1c32358c19c2669c2a94e0e1fd",
      "parents": [
        "3a990a52f9f25f45469e272017a31e7a3fda60ed",
        "07c0c5d8b8c122b2f2df9ee574ac3083daefc981"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 13:36:41 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull vfs pile 1 from Al Viro:\n \"This is _not_ all; in particular, Miklos\u0027 and Jan\u0027s stuff is not there\n  yet.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (64 commits)\n  ext4: initialization of ext4_li_mtx needs to be done earlier\n  debugfs-related mode_t whack-a-mole\n  hfsplus: add an ioctl to bless files\n  hfsplus: change finder_info to u32\n  hfsplus: initialise userflags\n  qnx4: new helper - try_extent()\n  qnx4: get rid of qnx4_bread/qnx4_getblk\n  take removal of PF_FORKNOEXEC to flush_old_exec()\n  trim includes in inode.c\n  um: uml_dup_mmap() relies on -\u003emmap_sem being held, but activate_mm() doesn\u0027t hold it\n  um: embed -\u003estub_pages[] into mmu_context\n  gadgetfs: list_for_each_safe() misuse\n  ocfs2: fix leaks on failure exits in module_init\n  ecryptfs: make register_filesystem() the last potential failure exit\n  ntfs: forgets to unregister sysctls on register_filesystem() failure\n  logfs: missing cleanup on register_filesystem() failure\n  jfs: mising cleanup on register_filesystem() failure\n  make configfs_pin_fs() return root dentry on success\n  configfs: configfs_create_dir() has parent dentry in dentry-\u003ed_parent\n  configfs: sanitize configfs_create()\n  ...\n"
    },
    {
      "commit": "38eff2892628fa5c4fc8962a17b7296f42833ebe",
      "tree": "6a138b3a4bd712b65797bae334bd7bd3ec12c038",
      "parents": [
        "66b3fad3f4c535c92b6a1184d535a97d6aa5d82a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 14 21:51:10 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Mar 20 21:29:40 2012 -0400"
      },
      "message": "constify path argument of trace_seq_path()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fa73dc9400516945bcbae8d98c23393bcefe1440",
      "tree": "f63deadc3b24a2534646dc7dff626fc7102fabe5",
      "parents": [
        "db6544e0075d192e5ad16eda8689c55fa9c6f8f4"
      ],
      "author": {
        "name": "Mark Brown",
        "email": "broonie@opensource.wolfsonmicro.com",
        "time": "Tue Feb 28 11:02:46 2012 +0000"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Mar 13 18:34:59 2012 -0400"
      },
      "message": "tracing: Fix build breakage without CONFIG_PERF_EVENTS\n\nToday\u0027s -next fails to build for me:\n\n  CC      kernel/trace/trace_export.o\nIn file included from kernel/trace/trace_export.c:197: kernel/trace/trace_entries.h:58: error: \u0027perf_ftrace_event_register\u0027 undeclared here (not in a function)\nmake[2]: *** [kernel/trace/trace_export.o] Error 1\nmake[1]: *** [kernel/trace] Error 2\nmake: *** [kernel] Error 2\n\nbecause as of ced390 (ftrace, perf: Add support to use function\ntracepoint in perf) perf_trace_event_register() is declared in trace.h\nonly if CONFIG_PERF_EVENTS is enabled but I don\u0027t have that set.\n\nEnsure that we always have a definition of perf_trace_event_register()\nby making the definition unconditional.\n\nLink: http://lkml.kernel.org/r/1330426967-17067-1-git-send-email-broonie@opensource.wolfsonmicro.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "db6544e0075d192e5ad16eda8689c55fa9c6f8f4",
      "tree": "5c48606c4769afc28bc8382d8ff3c6f2d14b0b03",
      "parents": [
        "b892e5c89787716b95a8e55d77d25a1c0748df10"
      ],
      "author": {
        "name": "Rajesh Bhagat",
        "email": "rajesh.lnx@gmail.com",
        "time": "Fri Feb 17 13:59:15 2012 +0530"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Mar 13 15:07:37 2012 -0400"
      },
      "message": "ftrace: Fix function_graph for archs that test ftrace_trace_function\n\nWhen CONFIG_DYNAMIC_FTRACE is not set, some archs (ARM) test\nthe variable function_trace_function to determine if it should\ncall the function tracer. If it is not set to ftrace_stub, then\nit will call the function and return, and not call the function\ngraph tracer.\n\nBut some of these archs (ARM) do not have the assembly code\nto test if function tracing is enabled or not (quick stop of tracing)\nand it calls the helper routine ftrace_test_stop_func() instead.\n\nIf function tracer is enabled and then disabled, the variable\nftrace_trace_function is still set to the helper routine\nftrace_test_stop_func(), and not to ftrace_stub. This will\nprevent the function graph tracer from ever running.\n\nOutput before patch\n/debug/tracing # echo function \u003e current_tracer\n/debug/tracing # echo function_graph \u003e current_tracer\n/debug/tracing # cat trace\n\nOutput after patch\n/debug/tracing # echo function \u003e current_tracer\n/debug/tracing # echo function_graph \u003e current_tracer\n/debug/tracing # cat trace\n0) ! 253.375 us | } /* irq_enter */\n0) | generic_handle_irq() {\n0) | handle_fasteoi_irq() {\n0) 9.208 us | _raw_spin_lock();\n0) | handle_irq_event() {\n0) | handle_irq_event_percpu() {\n\nSigned-off-by: Rajesh Bhagat \u003crajesh.lnx@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "b892e5c89787716b95a8e55d77d25a1c0748df10",
      "tree": "ed77ec8ab4db28fb900653cee4b719cf02a3a911",
      "parents": [
        "8c9cf542b8a66c231747a550573d910daf17f0e9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Mar 01 22:06:48 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Mar 01 22:06:48 2012 -0500"
      },
      "message": "tracing: Keep NMI watchdog from triggering when dumping trace\n\nAs ftrace_dump() (called by ftrace_dump_on_oops) disables interrupts\nas it dumps its output to the console, it can keep interrupts disabled\nfor long periods of time. This is likely to trigger the NMI watchdog,\nand it can disrupt the output of critical data.\n\nAdd a touch_nmi_watchdog() to each event that is written to the screen\nto keep the NMI watchdog from affecting the output.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "8c9cf542b8a66c231747a550573d910daf17f0e9",
      "tree": "7d6fbd5b30d4409522d1258ce7f8eee6a9aefd76",
      "parents": [
        "499e547057f5bba5cd6f87ebe59b05d0c59da905"
      ],
      "author": {
        "name": "Gerlando Falauto",
        "email": "gerlando.falauto@keymile.com",
        "time": "Mon Feb 27 09:08:21 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Feb 27 08:45:11 2012 -0500"
      },
      "message": "tracing: Do not select FRAME_POINTER on PPC\n\nOn PowerPC, FUNCTION_TRACER selects FRAME_POINTER, even\nthough the architecture does not support it.\n\nThis causes the following warning:\nwarning: (LOCKDEP \u0026\u0026 FAULT_INJECTION_STACKTRACE_FILTER \u0026\u0026 LATENCYTOP \u0026\u0026 FUNCTION_TRACER \u0026\u0026 KMEMCHECK) selects FRAME_POINTER which has unmet direct dependencies (DEBUG_KERNEL \u0026\u0026 (CRIS || M68K || FRV || UML || AVR32 || SUPERH || BLACKFIN || MN10300) || ARCH_WANT_FRAME_POINTERS)\n\nSo remove the warning by adding the extra condition\n\"if !PPC\" to FUNCTION_TRACER for FRAME_POINTER selection\n\nLink: http://lkml.kernel.org/r/1330330101-8618-1-git-send-email-gerlando.falauto@keymile.com\n\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nSigned-off-by: Gerlando Falauto \u003cgerlando.falauto@keymile.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "499e547057f5bba5cd6f87ebe59b05d0c59da905",
      "tree": "9bc64c1a76446153b72a66ad25fe892012d9d120",
      "parents": [
        "5500fa51199aee770ce53718853732600543619e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Feb 22 15:50:28 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Feb 22 15:50:28 2012 -0500"
      },
      "message": "tracing/ring-buffer: Only have tracing_on disable tracing buffers\n\nAs the ring-buffer code is being used by other facilities in the\nkernel, having tracing_on file disable *all* buffers is not a desired\naffect. It should only disable the ftrace buffers that are being used.\n\nMove the code into the trace.c file and use the buffer disabling\nfor tracing_on() and tracing_off(). This way only the ftrace buffers\nwill be affected by them and other kernel utilities will not be\nconfused to why their output suddenly stopped.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5500fa51199aee770ce53718853732600543619e",
      "tree": "1c2ad241de8177670234cfed07acb30dba802b01",
      "parents": [
        "02aa3162edaa166a01d193f80ccde890be8b55da"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Wed Feb 15 15:51:54 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 21 11:08:30 2012 -0500"
      },
      "message": "ftrace, perf: Add filter support for function trace event\n\nAdding support to filter function trace event via perf\ninterface. It is now possible to use filter interface\nin the perf tool like:\n\n  perf record -e ftrace:function --filter\u003d\"(ip \u003d\u003d mm_*)\" ls\n\nThe filter syntax is restricted to the the \u0027ip\u0027 field only,\nand following operators are accepted \u0027\u003d\u003d\u0027 \u0027!\u003d\u0027 \u0027||\u0027, ending\nup with the filter strings like:\n\n  ip \u003d\u003d f1[, ]f2 ... || ip !\u003d f3[, ]f4 ...\n\nwith comma \u0027,\u0027 or space \u0027 \u0027 as a function separator. If the\nspace \u0027 \u0027 is used as a separator, the right side of the\nassignment needs to be enclosed in double quotes \u0027\"\u0027, e.g.:\n\n  perf record -e ftrace:function --filter \u0027(ip \u003d\u003d do_execve,sys_*,ext*)\u0027 ls\n  perf record -e ftrace:function --filter \u0027(ip \u003d\u003d \"do_execve,sys_*,ext*\")\u0027 ls\n  perf record -e ftrace:function --filter \u0027(ip \u003d\u003d \"do_execve sys_* ext*\")\u0027 ls\n\nThe \u0027\u003d\u003d\u0027 operator adds trace filter with same effect as would\nbe added via set_ftrace_filter file.\n\nThe \u0027!\u003d\u0027 operator adds trace filter with same effect as would\nbe added via set_ftrace_notrace file.\n\nThe right side of the \u0027!\u003d\u0027, \u0027\u003d\u003d\u0027 operators is list of functions\nor regexp. to be added to filter separated by space.\n\nThe \u0027||\u0027 operator is used for connecting multiple filter definitions\ntogether. It is possible to have more than one \u0027\u003d\u003d\u0027 and \u0027!\u003d\u0027\noperators within one filter string.\n\nLink: http://lkml.kernel.org/r/1329317514-8131-8-git-send-email-jolsa@redhat.com\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "02aa3162edaa166a01d193f80ccde890be8b55da",
      "tree": "50f111c12472e5573b966d7fb076ba4b22c86669",
      "parents": [
        "ced39002f5ea736b716ae233fb68b26d59783912"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Wed Feb 15 15:51:53 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 21 11:08:29 2012 -0500"
      },
      "message": "ftrace: Allow to specify filter field type for ftrace events\n\nAdding FILTER_TRACE_FN event field type for function tracepoint\nevent, so it can be properly recognized within filtering code.\n\nCurrently all fields of ftrace subsystem events share the common\nfield type FILTER_OTHER. Since the function trace fields need\nspecial care within the filtering code we need to recognize it\nproperly, hence adding the FILTER_TRACE_FN event type.\n\nAdding filter parameter to the FTRACE_ENTRY macro, to specify the\nfilter field type for the event.\n\nLink: http://lkml.kernel.org/r/1329317514-8131-7-git-send-email-jolsa@redhat.com\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ced39002f5ea736b716ae233fb68b26d59783912",
      "tree": "4942ffe3b9e26d5122a5febb885d0b541e3aea33",
      "parents": [
        "e59a0bff3ecf389951e3c9378ddfd00f6448bfaa"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Wed Feb 15 15:51:52 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 21 11:08:27 2012 -0500"
      },
      "message": "ftrace, perf: Add support to use function tracepoint in perf\n\nAdding perf registration support for the ftrace function event,\nso it is now possible to register it via perf interface.\n\nThe perf_event struct statically contains ftrace_ops as a handle\nfor function tracer. The function tracer is registered/unregistered\nin open/close actions.\n\nTo be efficient, we enable/disable ftrace_ops each time the traced\nprocess is scheduled in/out (via TRACE_REG_PERF_(ADD|DELL) handlers).\nThis way tracing is enabled only when the process is running.\nIntentionally using this way instead of the event\u0027s hw state\nPERF_HES_STOPPED, which would not disable the ftrace_ops.\n\nIt is now possible to use function trace within perf commands\nlike:\n\n  perf record -e ftrace:function ls\n  perf stat -e ftrace:function ls\n\nAllowed only for root.\n\nLink: http://lkml.kernel.org/r/1329317514-8131-6-git-send-email-jolsa@redhat.com\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e59a0bff3ecf389951e3c9378ddfd00f6448bfaa",
      "tree": "315214953499b428a6a26d08fe3b5038e4ec5e1e",
      "parents": [
        "489c75c3b333dfda4c8d2b7ad1b00e5da024bfa7"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Wed Feb 15 15:51:51 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 21 11:08:26 2012 -0500"
      },
      "message": "ftrace: Add FTRACE_ENTRY_REG macro to allow event registration\n\nAdding FTRACE_ENTRY_REG macro so particular ftrace entries\ncould specify registration function and thus become accesible\nvia perf.\n\nThis will be used in upcomming patch for function trace.\n\nLink: http://lkml.kernel.org/r/1329317514-8131-5-git-send-email-jolsa@redhat.com\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "489c75c3b333dfda4c8d2b7ad1b00e5da024bfa7",
      "tree": "beb0b36b48dfbbe389ea14e36be75b4837ad0cf1",
      "parents": [
        "ceec0b6fc7cd43b38a40c2d40223f9cd0616f0cd"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Wed Feb 15 15:51:50 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 21 11:08:25 2012 -0500"
      },
      "message": "ftrace, perf: Add add/del tracepoint perf registration actions\n\nAdding TRACE_REG_PERF_ADD and TRACE_REG_PERF_DEL to handle\nperf event schedule in/out actions.\n\nThe add action is invoked for when the perf event is scheduled in,\nwhile the del action is invoked when the event is scheduled out.\n\nLink: http://lkml.kernel.org/r/1329317514-8131-4-git-send-email-jolsa@redhat.com\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "ceec0b6fc7cd43b38a40c2d40223f9cd0616f0cd",
      "tree": "31e7deb76a5827883251dc578300bdc35ef62538",
      "parents": [
        "e248491ac283b516958ca9ab62c8e74b6718bca8"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Wed Feb 15 15:51:49 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 21 11:08:24 2012 -0500"
      },
      "message": "ftrace, perf: Add open/close tracepoint perf registration actions\n\nAdding TRACE_REG_PERF_OPEN and TRACE_REG_PERF_CLOSE to differentiate\nregister/unregister from open/close actions.\n\nThe register/unregister actions are invoked for the first/last\ntracepoint user when opening/closing the event.\n\nThe open/close actions are invoked for each tracepoint user when\nopening/closing the event.\n\nLink: http://lkml.kernel.org/r/1329317514-8131-3-git-send-email-jolsa@redhat.com\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e248491ac283b516958ca9ab62c8e74b6718bca8",
      "tree": "77e5a6589cf55ebeabe01a321d792e216162efe6",
      "parents": [
        "5b34926114e39e12005031269613d2b13194aeba"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Wed Feb 15 15:51:48 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 21 11:08:23 2012 -0500"
      },
      "message": "ftrace: Add enable/disable ftrace_ops control interface\n\nAdding a way to temporarily enable/disable ftrace_ops. The change\nfollows the same way as \u0027global\u0027 ftrace_ops are done.\n\nIntroducing 2 global ftrace_ops - control_ops and ftrace_control_list\nwhich take over all ftrace_ops registered with FTRACE_OPS_FL_CONTROL\nflag. In addition new per cpu flag called \u0027disabled\u0027 is also added to\nftrace_ops to provide the control information for each cpu.\n\nWhen ftrace_ops with FTRACE_OPS_FL_CONTROL is registered, it is\nset as disabled for all cpus.\n\nThe ftrace_control_list contains all the registered \u0027control\u0027 ftrace_ops.\nThe control_ops provides function which iterates ftrace_control_list\nand does the check for \u0027disabled\u0027 flag on current cpu.\n\nAdding 3 inline functions:\n  ftrace_function_local_disable/ftrace_function_local_enable\n  - enable/disable the ftrace_ops on current cpu\n  ftrace_function_local_disabled\n  - get disabled ftrace_ops::disabled value for current cpu\n\nLink: http://lkml.kernel.org/r/1329317514-8131-2-git-send-email-jolsa@redhat.com\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "5b34926114e39e12005031269613d2b13194aeba",
      "tree": "40c0fd479d6e048ceec060d05e141de0a941b7b5",
      "parents": [
        "e404b321dbb2d6e438522b7dce9c1d0c6a8c5275"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Feb 20 20:37:32 2012 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Feb 21 11:08:13 2012 -0500"
      },
      "message": "tracing: Don\u0027t use p-\u003elen field to determine output in __print_*() functions\n\nIf more than one __print_*() function is used in a tracepoint\n(__print_flags(), __print_symbols(), etc), then the temp seq buffer will\nnot be zero on entry. Using the temp seq buffer\u0027s length to know if\ndata has been printed or not in the current function is incorrect and\nmay produce incorrect results.\n\nCurrently, no in-tree tracepoint causes this bug, but new ones may\nbe created.\n\nCc: Andrew Vagin \u003cavagin@openvz.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "e404b321dbb2d6e438522b7dce9c1d0c6a8c5275",
      "tree": "1eff30273eb7089686e762ea2e1f025493c44c32",
      "parents": [
        "09bda4432a8a4d4db2b2b94697abc8d732a9ff73"
      ],
      "author": {
        "name": "Andrey Vagin",
        "email": "avagin@openvz.org",
        "time": "Sun Feb 19 14:16:07 2012 +0300"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Feb 20 20:33:31 2012 -0500"
      },
      "message": "tracing: Don\u0027t print an extra separator of flags\n\nIf __print_flags() is used after another __print_*() function, the\ntemp seq_file buffer will not be empty on entry, and the delimiter will\nbe printed even though there\u0027s just one field. We get something like:\n\n\t|S\n\ninstead of just:\n\n\tS\n\nThis is because the length of the temp seq buffer is used to determine\nif the delimiter is printed or not. But this algorithm fails when\nthe seq buffer is not empty on entry, and the delimiter will be printed\nbecause it thinks that a previous field was already printed.\n\nLink: http://lkml.kernel.org/r/1329650167-480655-1-git-send-email-avagin@openvz.org\n\nSigned-off-by: Andrew Vagin \u003cavagin@openvz.org\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "47b0edcb599ea6eb9ef16d3a08932a0e01485293",
      "tree": "c72965c718a4e50a845c1e0ec898fc2d86825104",
      "parents": [
        "95100358491abaa2e9a5483811370059bbca4645"
      ],
      "author": {
        "name": "Thomas Meyer",
        "email": "thomas@m3y3r.de",
        "time": "Tue Nov 29 22:08:00 2011 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Feb 13 13:48:11 2012 -0500"
      },
      "message": "tracing/trivial: Use kcalloc instead of kzalloc to allocate array\n\nThe advantage of kcalloc is, that will prevent integer overflows which could\nresult from the multiplication of number of elements and size and it is also\na bit nicer to read.\n\nThe semantic patch that makes this change is available\nin https://lkml.org/lkml/2011/11/25/107\n\nLink: http://lkml.kernel.org/r/1322600880.1534.347.camel@localhost.localdomain\n\nSigned-off-by: Thomas Meyer \u003cthomas@m3y3r.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "1e42e83fde5537266c1d1e7fd8c010b3028d50fc",
      "tree": "6ca9af6a41021c2b1fb423bf85b1b99aa79e2e81",
      "parents": [
        "76027ea863fc02698da536b4970784eed3caa635"
      ],
      "author": {
        "name": "Geunsik Lim",
        "email": "geunsik.lim@samsung.com",
        "time": "Wed Feb 08 19:05:36 2012 +0900"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Mon Feb 13 09:14:47 2012 -0500"
      },
      "message": "ftrace: sched_switch plugin is deprecated\n\nActually, sched_switch function tracer is merged into wakeup/wakeup_rt\nUpdate \u0027mini-HOWTO\u0027 for ftrace(Kernel function tracer).\nIf we want to trace \"sched:sched_switch\" to trace sched_switch func,\nWe may utilize event option.(e.g: trace-cmd list -e | grep sched)\nThis patch is based on Linux-3.3.rc2-SMP-PREEMPT\n\nLink: http://lkml.kernel.org/r/1328695537-15081-1-git-send-email-geunsik.lim@gmail.com\n\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Geunsik Lim \u003cgeunsik.lim@samsung.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "da8ae089a79cdc37589cab581a2ca9cf48f98904",
      "tree": "aa95891ffdec00d331c6e0c97e83c848957e35c0",
      "parents": [
        "2ffe3ccf80eba0ac9ca71c41e7357d92f1c08fc3"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Mon Dec 05 18:22:48 2011 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 03 09:18:54 2012 -0800"
      },
      "message": "ftrace: Fix unregister ftrace_ops accounting\n\ncommit 30fb6aa74011dcf595f306ca2727254d708b786e upstream.\n\nMultiple users of the function tracer can register their functions\nwith the ftrace_ops structure. The accounting within ftrace will\nupdate the counter on each function record that is being traced.\nWhen the ftrace_ops filtering adds or removes functions, the\nfunction records will be updated accordingly if the ftrace_ops is\nstill registered.\n\nWhen a ftrace_ops is removed, the counter of the function records,\nthat the ftrace_ops traces, are decremented. When they reach zero\nthe functions that they represent are modified to stop calling the\nmcount code.\n\nWhen changes are made, the code is updated via stop_machine() with\na command passed to the function to tell it what to do. There is an\nENABLE and DISABLE command that tells the called function to enable\nor disable the functions. But the ENABLE is really a misnomer as it\nshould just update the records, as records that have been enabled\nand now have a count of zero should be disabled.\n\nThe DISABLE command is used to disable all functions regardless of\ntheir counter values. This is the big off switch and is not the\ncomplement of the ENABLE command.\n\nTo make matters worse, when a ftrace_ops is unregistered and there\nis another ftrace_ops registered, neither the DISABLE nor the\nENABLE command are set when calling into the stop_machine() function\nand the records will not be updated to match their counter. A command\nis passed to that function that will update the mcount code to call\nthe registered callback directly if it is the only one left. This\nmeans that the ftrace_ops that is still registered will have its callback\ncalled by all functions that have been set for it as well as the ftrace_ops\nthat was just unregistered.\n\nHere\u0027s a way to trigger this bug. Compile the kernel with\nCONFIG_FUNCTION_PROFILER set and with CONFIG_FUNCTION_GRAPH not set:\n\n CONFIG_FUNCTION_PROFILER\u003dy\n # CONFIG_FUNCTION_GRAPH is not set\n\nThis will force the function profiler to use the function tracer instead\nof the function graph tracer.\n\n  # cd /sys/kernel/debug/tracing\n  # echo schedule \u003e set_ftrace_filter\n  # echo function \u003e current_tracer\n  # cat set_ftrace_filter\n schedule\n  # cat trace\n # tracer: nop\n #\n # entries-in-buffer/entries-written: 692/68108025   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n      kworker/0:2-909   [000] ....   531.235574: schedule \u003c-worker_thread\n           \u003cidle\u003e-0     [001] .N..   531.235575: schedule \u003c-cpu_idle\n      kworker/0:2-909   [000] ....   531.235597: schedule \u003c-worker_thread\n             sshd-2563  [001] ....   531.235647: schedule \u003c-schedule_hrtimeout_range_clock\n\n  # echo 1 \u003e function_profile_enabled\n  # echo 0 \u003e function_porfile_enabled\n  # cat set_ftrace_filter\n schedule\n  # cat trace\n # tracer: function\n #\n # entries-in-buffer/entries-written: 159701/118821262   #P:4\n #\n #                              _-----\u003d\u003e irqs-off\n #                             / _----\u003d\u003e need-resched\n #                            | / _---\u003d\u003e hardirq/softirq\n #                            || / _--\u003d\u003e preempt-depth\n #                            ||| /     delay\n #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION\n #              | |       |   ||||       |         |\n           \u003cidle\u003e-0     [002] ...1   604.870655: local_touch_nmi \u003c-cpu_idle\n           \u003cidle\u003e-0     [002] d..1   604.870655: enter_idle \u003c-cpu_idle\n           \u003cidle\u003e-0     [002] d..1   604.870656: atomic_notifier_call_chain \u003c-enter_idle\n           \u003cidle\u003e-0     [002] d..1   604.870656: __atomic_notifier_call_chain \u003c-atomic_notifier_call_chain\n\nThe same problem could have happened with the trace_probe_ops,\nbut they are modified with the set_frace_filter file which does the\nupdate at closure of the file.\n\nThe simple solution is to change ENABLE to UPDATE and call it every\ntime an ftrace_ops is unregistered.\n\nLink: http://lkml.kernel.org/r/1323105776-26961-3-git-send-email-jolsa@redhat.com\n\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "2ffe3ccf80eba0ac9ca71c41e7357d92f1c08fc3",
      "tree": "b25759efa685d002b043e657fa3d05624c85eaaa",
      "parents": [
        "f935e6192f9e068da8f8395f032ff4b721fe8510"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 13 15:08:31 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 03 09:18:54 2012 -0800"
      },
      "message": "ftrace: Update filter when tracing enabled in set_ftrace_filter()\n\ncommit 072126f4529196f71a97960248bca54fd4554c2d upstream.\n\nCurrently, if set_ftrace_filter() is called when the ftrace_ops is\nactive, the function filters will not be updated. They will only be updated\nwhen tracing is disabled and re-enabled.\n\nUpdate the functions immediately during set_ftrace_filter().\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "f935e6192f9e068da8f8395f032ff4b721fe8510",
      "tree": "d98c511790df01d7e362a50b72a169ae11008b61",
      "parents": [
        "3ce5564096c4444197e6f7dc83a9dbc63392b084"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Jul 13 15:03:44 2011 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Feb 03 09:18:53 2012 -0800"
      },
      "message": "ftrace: Balance records when updating the hash\n\ncommit 41fb61c2d08107ce96a5dcb3a6289b2afd3e135c upstream.\n\nWhenever the hash of the ftrace_ops is updated, the record counts\nmust be balance. This requires disabling the records that are set\nin the original hash, and then enabling the records that are set\nin the updated hash.\n\nMoving the update into ftrace_hash_move() removes the bug where the\nhash was updated but the records were not, which results in ftrace\ntriggering a warning and disabling itself because the ftrace_ops filter\nis updated while the ftrace_ops was registered, and then the failure\nhappens when the ftrace_ops is unregistered.\n\nThe current code will not trigger this bug, but new code will.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "ac483c446b67870444c9eeaf8325d3d2af9b91bc",
      "tree": "e2765af4acf86ce986856b2963036138ae077d58",
      "parents": [
        "623ec991ce0e8cd5791bad656c162fa837635907"
      ],
      "author": {
        "name": "Jiri Olsa",
        "email": "jolsa@redhat.com",
        "time": "Mon Jan 02 10:04:14 2012 +0100"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Fri Feb 03 09:48:18 2012 -0500"
      },
      "message": "ftrace: Change filter/notrace set functions to return exit code\n\nCurrently the ftrace_set_filter and ftrace_set_notrace functions\ndo not return any return code. So there\u0027s no way for ftrace_ops\nuser to tell wether the filter was correctly applied.\n\nThe set_ftrace_filter interface returns error in case the filter\ndid not match:\n\n  # echo krava \u003e set_ftrace_filter\n  bash: echo: write error: Invalid argument\n\nChanging both ftrace_set_filter and ftrace_set_notrace functions\nto return zero if the filter was applied correctly or -E* values\nin case of error.\n\nLink: http://lkml.kernel.org/r/1325495060-6402-2-git-send-email-jolsa@redhat.com\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Jiri Olsa \u003cjolsa@redhat.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "72153812cf48340558f6436dabd3390b987ed5f5",
      "tree": "01d05853512e0512b15bda3de26e542383fd0025",
      "parents": [
        "56b42db68ddf6aac9bc33130535e2a52d309ceea"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Sat Jan 14 22:53:54 2012 -0800"
      },
      "committer": {
        "name": "Rohit Vaswani",
        "email": "rvaswani@codeaurora.org",
        "time": "Mon Jan 16 13:20:27 2012 -0800"
      },
      "message": "tracing: Clean up tb_fmt to not give faulty compile warning\n\ngcc incorrectly states that the variable \"fmt\" is uninitialized when\nCC_OPITMIZE_FOR_SIZE is set.\n\nInstead of just blindly setting fmt to NULL, the code is cleaned up\na little to be a bit easier for humans to follow, as well as gcc\nto know the variables are initialized.\n\nChange-Id: Ia5fb9cc6be8eadae9af3a5636a2459ed7cd48662\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Rohit Vaswani \u003crvaswani@codeaurora.org\u003e\n"
    },
    {
      "commit": "83c2f912b43c3a7babbb6cb7ae2a5276c1ed2a3e",
      "tree": "eaa7f50dea154d9f19721db69c7adde64d48848f",
      "parents": [
        "f0ed5b9a28536b8be2f578a9450cfa42ab31ccf8",
        "172d1b0b73256551f100fc00c69e356d047103f5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 11:26:35 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 15 11:26:35 2012 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)\n  perf tools: Fix compile error on x86_64 Ubuntu\n  perf report: Fix --stdio output alignment when --showcpuutilization used\n  perf annotate: Get rid of field_sep check\n  perf annotate: Fix usage string\n  perf kmem: Fix a memory leak\n  perf kmem: Add missing closedir() calls\n  perf top: Add error message for EMFILE\n  perf test: Change type of \u0027-v\u0027 option to INCR\n  perf script: Add missing closedir() calls\n  tracing: Fix compile error when static ftrace is enabled\n  recordmcount: Fix handling of elf64 big-endian objects.\n  perf tools: Add const.h to MANIFEST to make perf-tar-src-pkg work again\n  perf tools: Add support for guest/host-only profiling\n  perf kvm: Do guest-only counting by default\n  perf top: Don\u0027t update total_period on process_sample\n  perf hists: Stop using \u0027self\u0027 for struct hist_entry\n  perf hists: Rename total_session to total_period\n  x86: Add counter when debug stack is used with interrupts enabled\n  x86: Allow NMIs to hit breakpoints in i386\n  x86: Keep current stack in NMI breakpoints\n  ...\n"
    },
    {
      "commit": "972b2c719990f91eb3b2310d44ef8a2d38955a14",
      "tree": "b25a250ec5bec4b7b6355d214642d8b57c5cab32",
      "parents": [
        "02550d61f49266930e674286379d3601006b2893",
        "c3aa077648e147783a7a53b409578234647db853"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 12:19:57 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\n* \u0027for-linus2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (165 commits)\n  reiserfs: Properly display mount options in /proc/mounts\n  vfs: prevent remount read-only if pending removes\n  vfs: count unlinked inodes\n  vfs: protect remounting superblock read-only\n  vfs: keep list of mounts for each superblock\n  vfs: switch -\u003eshow_options() to struct dentry *\n  vfs: switch -\u003eshow_path() to struct dentry *\n  vfs: switch -\u003eshow_devname() to struct dentry *\n  vfs: switch -\u003eshow_stats to struct dentry *\n  switch security_path_chmod() to struct path *\n  vfs: prefer -\u003edentry-\u003ed_sb to -\u003emnt-\u003emnt_sb\n  vfs: trim includes a bit\n  switch mnt_namespace -\u003eroot to struct mount\n  vfs: take /proc/*/mounts and friends to fs/proc_namespace.c\n  vfs: opencode mntget() mnt_set_mountpoint()\n  vfs: spread struct mount - remaining argument of next_mnt()\n  vfs: move fsnotify junk to struct mount\n  vfs: move mnt_devname\n  vfs: move mnt_list to struct mount\n  vfs: switch pnode.h macros to struct mount *\n  ...\n"
    },
    {
      "commit": "35b740e4662ef386f0c60e1b60aaf5b44db9914c",
      "tree": "502a8f9499bc1b4cb3300d666dab2d01a1921224",
      "parents": [
        "423d091dfe58d3109d84c408810a7cfa82f6f184",
        "9e183426bfb52bb44bf3c443d6587e4d02478603"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:58 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:58 2012 -0800"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (106 commits)\n  perf kvm: Fix copy \u0026 paste error in description\n  perf script: Kill script_spec__delete\n  perf top: Fix a memory leak\n  perf stat: Introduce get_ratio_color() helper\n  perf session: Remove impossible condition check\n  perf tools: Fix feature-bits rework fallout, remove unused variable\n  perf script: Add generic perl handler to process events\n  perf tools: Use for_each_set_bit() to iterate over feature flags\n  perf tools: Unify handling of features when writing feature section\n  perf report: Accept fifos as input file\n  perf tools: Moving code in some files\n  perf tools: Fix out-of-bound access to struct perf_session\n  perf tools: Continue processing header on unknown features\n  perf tools: Improve macros for struct feature_ops\n  perf: builtin-record: Document and check that mmap_pages must be a power of two.\n  perf: builtin-record: Provide advice if mmap\u0027ing fails with EPERM.\n  perf tools: Fix truncated annotation\n  perf script: look up thread using tid instead of pid\n  perf tools: Look up thread names for system wide profiling\n  perf tools: Fix comm for processes with named threads\n  ...\n"
    },
    {
      "commit": "f4ae40a6a50a98ac23d4b285f739455e926a473e",
      "tree": "c84d7393700bd85e5285a194f8c22d4d00e36b28",
      "parents": [
        "48176a973d65572e61d0ce95495e5072887e6fb6"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Jul 24 04:33:43 2011 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Jan 03 22:54:56 2012 -0500"
      },
      "message": "switch debugfs to umode_t\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "38b78eb855409a05f9d370228bec1955e6878e08",
      "tree": "4f07483d49aaa53f7b6905a482f05ddcde4834de",
      "parents": [
        "762e1207889b3451c50d365b741af6f9ce958886"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 15 14:31:35 2011 -0800"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:27:02 2011 -0500"
      },
      "message": "tracing: Factorize filter creation\n\nThere are four places where new filter for a given filter string is\ncreated, which involves several different steps.  This patch factors\nthose steps into create_[system_]filter() functions which in turn make\nuse of create_filter_{start|finish}() for common parts.\n\nThe only functional change is that if replace_filter_string() is\nrequested and fails, creation fails without any side effect instead of\nbeing ignored.\n\nNote that system filter is now installed after the processing is\ncomplete which makes freeing before and then restoring filter string\non error unncessary.\n\n-v2: Rebased to resolve conflict with 49aa29513e and updated both\n     create_filter() functions to always set *filterp instead of\n     requiring the caller to clear it to %NULL on entry.\n\nLink: http://lkml.kernel.org/r/1323988305-1469-2-git-send-email-tj@kernel.org\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "762e1207889b3451c50d365b741af6f9ce958886",
      "tree": "dcb1f4eacbddfa342181a29a97eb9b994922b009",
      "parents": [
        "2a85a37f168d2b4d74d493b578af4dc9032be92e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Mon Dec 19 22:01:00 2011 -0500"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Dec 21 07:26:49 2011 -0500"
      },
      "message": "tracing: Have stack tracing set filtered functions at boot\n\nAdd stacktrace_filter\u003d to the kernel command line that lets\nthe user pick specific functions to check the stack on.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    }
  ],
  "next": "2a85a37f168d2b4d74d493b578af4dc9032be92e"
}
