)]}'
{
  "log": [
    {
      "commit": "3ddeb912f41801fd1968c7880d031702a396e4d0",
      "tree": "3a2c34153fc097172820e14bfe9b33bfc563f852",
      "parents": [
        "213cc060797378059a28ebc5c539f3e9a80160bd"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Sat Dec 20 17:15:14 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Dec 21 09:46:45 2008 +0100"
      },
      "message": "ftrace: enable format arguments checking\n\nImpact: broaden gcc printf format checks for ftrace_printk()\n\nformat arguments checking for ftrace_printk() is __printf(1, 2),\nnot __printf(1, 0).\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "30cd324e9787ccc9a5ede59742d5409857550692",
      "tree": "e53027e0283119de0ef4c3a431b1d20cd43003fb",
      "parents": [
        "c71dd42db2c6f1637b92502a214587431c1a6ad2",
        "6d102bc68f3dd2ae0e305b09170b1751aa67baeb",
        "3d9101e92529e1ff6014f95a69afc82f37b9b13a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 09:42:40 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 19 09:42:40 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/ring-buffer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n\nConflicts:\n\tinclude/linux/ftrace.h\n"
    },
    {
      "commit": "f38f1d2aa5a3520cf05da7cd6bd12fe2b0c509b7",
      "tree": "5eef795a1a081c41686971eaaa5ba2d1098ceb9d",
      "parents": [
        "40874491f9e9a4cb08eaf663dbe018bf5671975a"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 16 23:06:40 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 18 12:56:24 2008 +0100"
      },
      "message": "trace: add a way to enable or disable the stack tracer\n\nImpact: enhancement to stack tracer\n\nThe stack tracer currently is either on when configured in or\noff when it is not. It can not be disabled when it is configured on.\n(besides disabling the function tracer that it uses)\n\nThis patch adds a way to enable or disable the stack tracer at\nrun time. It defaults off on bootup, but a kernel parameter \u0027stacktrace\u0027\nhas been added to enable it on bootup.\n\nA new sysctl has been added \"kernel.stack_tracer_enabled\" to let\nthe user enable or disable the stack tracer at run time.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9a9fafb89433c5fd1331bac0c84c4b321e358b42",
      "tree": "918ec5c858d043304a47e8744cbee1ad96170298",
      "parents": [
        "c33ba392147a8506b1b43899fdea6069e27e4277"
      ],
      "author": {
        "name": "Phil Endecott",
        "email": "usb_endian_patch@chezphil.org",
        "time": "Mon Dec 01 10:22:33 2008 -0500"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 17 10:49:14 2008 -0800"
      },
      "message": "USB: fix comment about endianness of descriptors\n\nThis patch fixes a comment and clarifies the documentation about the\nendianness of descriptors. The current policy is that descriptors will\nbe little-endian at the API even on big-endian systems; however the\n/proc/bus/usb API predates this policy and presents descriptors with\nsome multibyte fields byte-swapped.\n\nSigned-off-by: Phil Endecott \u003cusb_endian_patch@chezphil.org\u003e\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n\n"
    },
    {
      "commit": "9dfc3bc7d21864d47797d64b8d531d4dbbc0b618",
      "tree": "fdf0eb86fdb7a7ecfb4f7bc718ac26875f3f94a2",
      "parents": [
        "da485e0cb16726797e99a595a399b9fc721b91bc",
        "cbc34ed1ac36690f75fd272e19e7b4fc29aae5a2",
        "2bed8446819a7c5033aa1da138d9f230ae212edc",
        "ffc2238af8431d930d2c15f16feecf1fd6d75642"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 16 12:03:38 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 16 12:03:38 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/fastboot\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-graph-tracer\u0027 and \u0027tracing/hw-branch-tracing\u0027 into tracing/core\n"
    },
    {
      "commit": "7004405cb85cdc10074740705963d9ce3e887f47",
      "tree": "c78a69420f7307ac04866d1ad4d9a9384054bdb0",
      "parents": [
        "d2ff911882b6bc693d86ca9566daac70aacbb2b3",
        "4798a2b84ea5a98e4f36a815a646cb48ff521684"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 15 16:30:22 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 15 16:30:22 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  Phonet: keep TX queue disabled when the device is off\n  SCHED: netem: Correct documentation comment in code.\n  netfilter: update rwlock initialization for nat_table\n  netlabel: Compiler warning and NULL pointer dereference fix\n  e1000e: fix double release of mutex\n  IA64: HP_SIMETH needs to depend upon NET\n  netpoll: fix race on poll_list resulting in garbage entry\n  ipv6: silence log messages for locally generated multicast\n  sungem: improve ethtool output with internal pcs and serdes\n  tcp: tcp_vegas cong avoid fix \n  sungem: Make PCS PHY support partially work again.\n"
    },
    {
      "commit": "d2ff911882b6bc693d86ca9566daac70aacbb2b3",
      "tree": "4eb9a3fe04bc4f8f594034c4d5824fa77287acec",
      "parents": [
        "307257cf475aac25db30b669987f13d90c934e3a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon Dec 15 19:04:35 2008 +1030"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 15 16:28:57 2008 -0800"
      },
      "message": "Define smp_call_function_many for UP\n\nOtherwise those using it in transition patches (eg. kvm) can\u0027t compile\nwith CONFIG_SMP\u003dn:\n\narch/x86/kvm/../../../virt/kvm/kvm_main.c: In function \u0027make_all_cpus_request\u0027:\narch/x86/kvm/../../../virt/kvm/kvm_main.c:380: error: implicit declaration of function \u0027smp_call_function_many\u0027\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bcbc4f20b52c2c40c43a4d2337707dcdfe81bc3a",
      "tree": "897774cc2f53691b2736e3d1dbadc9d1e263d47a",
      "parents": [
        "a0343e823184070f55364d8359f832dcb33c57c7"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Dec 09 23:54:20 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 11:14:08 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: annotate do_IRQ and smp_apic_timer_interrupt\n\nImpact: move most important x86 irq entry-points to a separate subsection\n\nAnnotate do_IRQ and smp_apic_timer_interrupt to put them into the .irqentry.text\nsubsection. These function will so be recognized as hardirq entrypoints for the\nfunction-graph-tracer. We could also annotate other irq entries but the others\nare far less important but they can be added on request.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c2724775ce57c98b8af9694857b941dc61056516",
      "tree": "c3936699317da3233bc31e92d68cb582ec17d193",
      "parents": [
        "b0884e25fe361f2ca228808fb5fd1b74cb04e711"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Thu Dec 11 13:49:59 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 08:08:12 2008 +0100"
      },
      "message": "x86, bts: provide in-kernel branch-trace interface\n\nImpact: cleanup\n\nMove the BTS bits from ptrace.c into ds.c.\n\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f3134de60624829a57741c1f3796847d4de165f6",
      "tree": "7e05f048d7a6ac115b4e4acc4db0296d84d1e7d5",
      "parents": [
        "e726f5f91effd8944c76475a2688093a03ba0d10",
        "361b73d5c34f59c3fd107bb9dbe7a1fbff2c2517"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 07:40:08 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 12 07:40:08 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/function-graph-tracer\u0027 and \u0027tracing/ring-buffer\u0027 into tracing/core\n"
    },
    {
      "commit": "9c24624727f6d6c460e45762a408ca5f5b9b8ef2",
      "tree": "39f41dc5e46a9f0e1151963eb1d4f2b7ff77ee3d",
      "parents": [
        "6ee5a399d6a92a52646836a6e10faf255c16393e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Tue Dec 09 13:14:27 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:54 2008 -0800"
      },
      "message": "KSYM_SYMBOL_LEN fixes\n\nMiles Lane tailing /sys files hit a BUG which Pekka Enberg has tracked\nto my 966c8c12dc9e77f931e2281ba25d2f0244b06949 sprint_symbol(): use\nless stack exposing a bug in slub\u0027s list_locations() -\nkallsyms_lookup() writes a 0 to namebuf[KSYM_NAME_LEN-1], but that was\nbeyond the end of page provided.\n\nThe 100 slop which list_locations() allows at end of page looks roughly\nenough for all the other stuff it might print after the symbol before\nit checks again: break out KSYM_SYMBOL_LEN earlier than before.\n\nLatencytop and ftrace and are using KSYM_NAME_LEN buffers where they\nneed KSYM_SYMBOL_LEN buffers, and vmallocinfo a 2*KSYM_NAME_LEN buffer\nwhere it wants a KSYM_SYMBOL_LEN buffer: fix those before anyone copies\nthem.\n\n[akpm@linux-foundation.org: ftrace.h needs module.h]\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc Miles Lane \u003cmiles.lane@gmail.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02d211688727ad02bb4555b1aa8ae2de16b21b39",
      "tree": "2ee10b2f0cbfb615c40a2df98627426b8543d6cd",
      "parents": [
        "71c5576fbd809f2015f4eddf72e501e298720cf3"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 09 13:14:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:52 2008 -0800"
      },
      "message": "revert \"percpu_counter: new function percpu_counter_sum_and_set\"\n\nRevert\n\n    commit e8ced39d5e8911c662d4d69a342b9d053eaaac4e\n    Author: Mingming Cao \u003ccmm@us.ibm.com\u003e\n    Date:   Fri Jul 11 19:27:31 2008 -0400\n\n        percpu_counter: new function percpu_counter_sum_and_set\n\nAs described in\n\n\trevert \"percpu counter: clean up percpu_counter_sum_and_set()\"\n\nthe new percpu_counter_sum_and_set() is racy against updates to the\ncpu-local accumulators on other CPUs.  Revert that change.\n\nThis means that ext4 will be slow again.  But correct.\n\nReported-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.27.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "71c5576fbd809f2015f4eddf72e501e298720cf3",
      "tree": "b2d1ac56e6c3c9a60946a180cd45d493fc60738a",
      "parents": [
        "fd3d664fef97cf01f8e28fe0b024ad52f3bbc1bc"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Tue Dec 09 13:14:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Dec 10 08:01:52 2008 -0800"
      },
      "message": "revert \"percpu counter: clean up percpu_counter_sum_and_set()\"\n\nRevert\n\n    commit 1f7c14c62ce63805f9574664a6c6de3633d4a354\n    Author: Mingming Cao \u003ccmm@us.ibm.com\u003e\n    Date:   Thu Oct 9 12:50:59 2008 -0400\n\n        percpu counter: clean up percpu_counter_sum_and_set()\n\nBefore this patch we had the following:\n\npercpu_counter_sum(): return the percpu_counter\u0027s value\n\npercpu_counter_sum_and_set(): return the percpu_counter\u0027s value, copying\nthat value into the central value and zeroing the per-cpu counters before\nreturning.\n\nAfter this patch, percpu_counter_sum_and_set() has gone, and\npercpu_counter_sum() gets the old percpu_counter_sum_and_set()\nfunctionality.\n\nProblem is, as Eric points out, the old percpu_counter_sum_and_set()\nfunctionality was racy and wrong.  It zeroes out counters on \"other\" cpus,\nwithout holding any locks which will prevent races agaist updates from\nthose other CPUS.\n\nThis patch reverts 1f7c14c62ce63805f9574664a6c6de3633d4a354.  This means\nthat percpu_counter_sum_and_set() still has the race, but\npercpu_counter_sum() does not.\n\nNote that this is not a simple revert - ext4 has since started using\npercpu_counter_sum() for its dirty_blocks counter as well.\n\nNote that this revert patch changes percpu_counter_sum() semantics.\n\nBefore the patch, a call to percpu_counter_sum() will bring the counter\u0027s\ncentral counter mostly up-to-date, so a following percpu_counter_read()\nwill return a close value.\n\nAfter this patch, a call to percpu_counter_sum() will leave the counter\u0027s\ncentral accumulator unaltered, so a subsequent call to\npercpu_counter_read() can now return a significantly inaccurate result.\n\nIf there is any code in the tree which was introduced after\ne8ced39d5e8911c662d4d69a342b9d053eaaac4e was merged, and which depends\nupon the new percpu_counter_sum() semantics, that code will break.\n\nReported-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Mingming Cao \u003ccmm@us.ibm.com\u003e\nCc: \u003clinux-ext4@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b363e440021a1cf9ed76944b2685f48dacefb3e",
      "tree": "973e674ab7bfd29807075316489f357327fcf2e8",
      "parents": [
        "24fc7b86dc0470616803be2f921c8cd5c459175d"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Tue Dec 09 23:22:26 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Dec 09 23:22:26 2008 -0800"
      },
      "message": "netpoll: fix race on poll_list resulting in garbage entry\n\n\tA few months back a race was discused between the netpoll napi service\npath, and the fast path through net_rx_action:\nhttp://kerneltrap.org/mailarchive/linux-netdev/2007/10/16/345470\n\nA patch was submitted for that bug, but I think we missed a case.\n\nConsider the following scenario:\n\nINITIAL STATE\nCPU0 has one napi_struct A on its poll_list\nCPU1 is calling netpoll_send_skb and needs to call poll_napi on the same\nnapi_struct A that CPU0 has on its list\n\n\n\nCPU0\t\t\t\t\t\tCPU1\nnet_rx_action\t\t\t\t\tpoll_napi\n!list_empty (returns true)\t\t\tlocks poll_lock for A\n\t\t\t\t\t\t poll_one_napi\n\t\t\t\t\t\t  napi-\u003epoll\n\t\t\t\t\t\t   netif_rx_complete\n\t\t\t\t\t\t    __napi_complete\n\t\t\t\t\t\t    (removes A from poll_list)\nlist_entry(list-\u003enext)\n\n\nIn the above scenario, net_rx_action assumes that the per-cpu poll_list is\nexclusive to that cpu.  netpoll of course violates that, and because the netpoll\npath can dequeue from the poll list, its possible for CPU0 to detect a non-empty\nlist at the top of the while loop in net_rx_action, but have it become empty by\nthe time it calls list_entry.  Since the poll_list isn\u0027t surrounded by any other\nstructure, the returned data from that list_entry call in this situation is\ngarbage, and any number of crashes can result based on what exactly that garbage\nis.\n\nGiven that its not fasible for performance reasons to place exclusive locks\narround each cpus poll list to provide that mutal exclusion, I think the best\nsolution is modify the netpoll path in such a way that we continue to guarantee\nthat the poll_list for a cpu is in fact exclusive to that cpu.  To do this I\u0027ve\nimplemented the patch below.  It adds an additional bit to the state field in\nthe napi_struct.  When executing napi-\u003epoll from the netpoll_path, this bit will\nbe set. When a driver calls netif_rx_complete, if that bit is set, it will not\nremove the napi_struct from the poll_list.  That work will be saved for the next\niteration of net_rx_action.\n\nI\u0027ve tested this and it seems to work well.  About the biggest drawback I can\nsee to it is the fact that it might result in an extra loop through\nnet_rx_action in the event that the device is actually contended for (i.e. the\nnetpoll path actually preforms all the needed work no the device, and the call\nto net_rx_action winds up doing nothing, except removing the napi_struct from\nthe poll_list.  However I think this is probably a small price to pay, given\nthat the alternative is a crash.\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b749e3f8d7879c9c87e237d75b2256b4d1d04df2",
      "tree": "27589e391ecb12ad51243bf7e124c6dfcc7a5b66",
      "parents": [
        "6f8e5850df8eecee212c84831030b04f025c11ac",
        "48887e63d6e057543067327da6b091297f7fe645"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 09 08:28:13 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 09 08:28:13 2008 -0800"
      },
      "message": "Merge branch \u0027audit.b59\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current\n\n* \u0027audit.b59\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:\n  [PATCH] fix broken timestamps in AVC generated by kernel threads\n  [patch 1/1] audit: remove excess kernel-doc\n  [PATCH] asm/generic: fix bug - kernel fails to build when enable some common audit code on Blackfin\n  [PATCH] return records for fork() both to child and parent\n  [PATCH] Audit: make audit\u003d0 actually turn off audit\n"
    },
    {
      "commit": "48887e63d6e057543067327da6b091297f7fe645",
      "tree": "f290af5a887bcf840a63043eb2df3a4c02ccaea3",
      "parents": [
        "7f0ed77d241b60f70136f15b8eef30a3de1fa249"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Dec 06 01:05:50 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 02:27:41 2008 -0500"
      },
      "message": "[PATCH] fix broken timestamps in AVC generated by kernel threads\n\nTimestamp in audit_context is valid only if -\u003ein_syscall is set.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a64e64944f4b8ce3288519555dbaa0232414b8ac",
      "tree": "6b37f5444c49379580b6b4fead84a75ca474d0ab",
      "parents": [
        "a3f07114e3359fb98683069ae397220e8992a24a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Nov 12 18:37:41 2008 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Dec 09 02:27:38 2008 -0500"
      },
      "message": "[PATCH] return records for fork() both to child and parent\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f7a8db89c1f42e504bb12d2ae399cd96f755a7db",
      "tree": "0b98001ee746784e95a0809a8499483ace2450d5",
      "parents": [
        "6f84b4dbe92e3ffb00f4d8cbe9a31b5be5ecd8ca",
        "c49b9f295e513753e6d9bb4444ba502f1aa59b29"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 08 19:52:43 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 08 19:52:43 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:\n  tproxy: fixe a possible read from an invalid location in the socket match\n  zd1211rw: use unaligned safe memcmp() in-place of compare_ether_addr()\n  mac80211: use unaligned safe memcmp() in-place of compare_ether_addr()\n  ipw2200: fix netif_*_queue() removal regression\n  iwlwifi: clean key table in iwl_clear_stations_table function\n  tcp: tcp_vegas ssthresh bug fix\n  can: omit received RTR frames for single ID filter lists\n  ATM: CVE-2008-5079: duplicate listen() on socket corrupts the vcc table\n  netx-eth: initialize per device spinlock\n  tcp: make urg+gso work for real this time\n  enc28j60: Fix sporadic packet loss (corrected again)\n  hysdn: fix writing outside the field on 64 bits\n  b1isa: fix b1isa_exit() to really remove registered capi controllers\n  can: Fix CAN_(EFF|RTR)_FLAG handling in can_filter\n  Phonet: do not dump addresses from other namespaces\n  netlabel: Fix a potential NULL pointer dereference\n  bnx2: Add workaround to handle missed MSI.\n  xfrm: Fix kernel panic when flush and dump SPD entries\n"
    },
    {
      "commit": "380c4b1411ccd6885f92b2c8ceb08433a720f44e",
      "tree": "f3b571e1caff2de3e6b4cace87c2b1ec332667d7",
      "parents": [
        "8e1b82e0866befaa0b2920be296c6e4c3fc7f422"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 06 03:43:41 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:11:45 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: append the tracing_graph_flag\n\nImpact: Provide a way to pause the function graph tracer\n\nAs suggested by Steven Rostedt, the previous patch that prevented from\nspinlock function tracing shouldn\u0027t use the raw_spinlock to fix it.\nIt\u0027s much better to follow lockdep with normal spinlock, so this patch\nadds a new flag for each task to make the function graph tracer able\nto be paused. We also can send an ftrace_printk whithout worrying of\nthe irrelevant traced spinlock during insertion.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8b96f0119818964e4944fd1c423bf6770027d3ac",
      "tree": "02b5ec86d2fe45d6935d63913b997989f9339bf4",
      "parents": [
        "decbec3838d10ecd7aabdb4c0e05aac0e5f5dc0c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Dec 06 03:40:00 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 15:11:44 2008 +0100"
      },
      "message": "tracing/function-graph-tracer: introduce __notrace_funcgraph to filter special functions\n\nImpact: trace more functions\n\nWhen the function graph tracer is configured, three more files are not\ntraced to prevent only four functions to be traced. And this impacts the\nnormal function tracer too.\n\narch/x86/kernel/process_64/32.c:\n\nI had crashes when I let this file traced. After some debugging, I saw\nthat the \"current\" task point was changed inside__swtich_to(), ie:\n\"write_pda(pcurrent, next_p);\" inside process_64.c Since the tracer store\nthe original return address of the function inside current, we had\ncrashes. Only __switch_to() has to be excluded from tracing.\n\nkernel/module.c and kernel/extable.c:\n\nBecause of a function used internally by the function graph tracer:\n__kernel_text_address()\n\nTo let the other functions inside these files to be traced, this patch\nintroduces the __notrace_funcgraph function prefix which is __notrace if\nfunction graph tracer is configured and nothing if not.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "361b73d5c34f59c3fd107bb9dbe7a1fbff2c2517",
      "tree": "46006aac1b49ad080b14b17b6311ceca0dccc0e9",
      "parents": [
        "21bbecdaaef3a6acc19905ab88c0587817318870"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Dec 08 10:58:08 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 08 13:54:05 2008 +0100"
      },
      "message": "ring_buffer: fix comments\n\nImpact: comments cleanup\n\nfix incorrect comments for enum ring_buffer_type\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f2f1fa78a155524b849edf359e42a3001ea652c0",
      "tree": "8d38fc76e48fc219e393ee57ee5f76843b735258",
      "parents": [
        "24920a79a27dd28e67088bbfcf36746d15587f4d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 05 14:49:18 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 05 14:49:18 2008 -0800"
      },
      "message": "Enforce a minimum SG_IO timeout\n\nThere\u0027s no point in having too short SG_IO timeouts, since if the\ncommand does end up timing out, we\u0027ll end up through the reset sequence\nthat is several seconds long in order to abort the command that timed\nout.\n\nAs a result, shorter timeouts than a few seconds simply do not make\nsense, as the recovery would be longer than the timeout itself.\n\nAdd a BLK_MIN_SG_TIMEOUT to match the existign BLK_DEFAULT_SG_TIMEOUT.\n\nSuggested-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nAcked-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "21a8c466f99063eeb8567318b4e305eda9015408",
      "tree": "bc15ed9d28a4f1a52d390ceca6893d84de50a232",
      "parents": [
        "77d683f3e0258d522c5506e7b5fd05c9411184d9"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Dec 04 23:51:23 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:47:44 2008 +0100"
      },
      "message": "tracing/ftrace: provide the macro task_curr_ret_stack()\n\nImpact: cleanup\n\nAs suggested by Steven Rostedt, this patch provide a new macro\ntask_curr_ret_stack() to move the cpp conditionnal CONFIG into\nthe linux/ftrace.h headers.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "970987beb9c99ca806edc464518d411cc399fb4d",
      "tree": "51e2298b6eb7e6412009428b380a51e1f17b531b",
      "parents": [
        "faec2ec505d397e9426754722b6e80d519c4938f",
        "1fd8f2a3f9a91b287a876cef830b21baafc8a799",
        "feaf3848a813a106f163013af6fcf6c4bfec92d9"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:45:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Dec 05 14:45:22 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027, \u0027tracing/function-graph-tracer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "fc9161e54d0dbf799beff9692ea1cc6237162b85",
      "tree": "07c08b1bd60cb3b8188aa3470fdf86612019c8ce",
      "parents": [
        "fd4ce1acd0f8558033b1a6968001552bd7671e6d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Nov 05 14:58:46 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 04 04:22:58 2008 -0500"
      },
      "message": "[PATCH 2/2] documnt FMODE_ constants\n\nMake sure all FMODE_ constants are documents, and ensure a coherent\nstyle for the already existing comments.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fd4ce1acd0f8558033b1a6968001552bd7671e6d",
      "tree": "7ce54f2b2c967fe2315917ffa2eb8eb7d47e7a2b",
      "parents": [
        "ebbefc011e56bd85b4745d01e5b8d7d05d95ed5d"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Wed Nov 05 14:58:42 2008 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 04 04:22:57 2008 -0500"
      },
      "message": "[PATCH 1/2] kill FMODE_NDELAY_NOW\n\nUpdate FMODE_NDELAY before each ioctl call so that we can kill the\nmagic FMODE_NDELAY_NOW.  It would be even better to do this directly\nin setfl(), but for that we\u0027d need to have FMODE_NDELAY for all files,\nnot just block special files.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5ef6476190d24419a9a537baa0b5641845136989",
      "tree": "668d3e02acf97745d2a2e701e4b161cbd6f890bf",
      "parents": [
        "804a685162a7080386714166776f57255a75238e"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Dec 04 00:26:39 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:09:37 2008 +0100"
      },
      "message": "pid: fix the do_each_pid_task() macro\n\nImpact: macro side-effects fix\n\nThis patch adds parenthesis around \u0027pid\u0027 in the do_each_pid_task\nmacro to allow callers to pass in more complex parameters.\n\ne.g.  do_each_pid_task(*pid, type, task)\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ea4e2bc4d9f7370e57a343ccb5e7c0ad3222ec3c",
      "tree": "64a4a1d9d7d3de0695cb2e8c7161886ab660e311",
      "parents": [
        "b29144c317fb748dae6d72c0f88eda9d43165b8d"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Wed Dec 03 15:36:57 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 04 09:09:34 2008 +0100"
      },
      "message": "ftrace: graph of a single function\n\nThis patch adds the file:\n\n   /debugfs/tracing/set_graph_function\n\nwhich can be used along with the function graph tracer.\n\nWhen this file is empty, the function graph tracer will act as\nusual. When the file has a function in it, the function graph\ntracer will only trace that function.\n\nFor example:\n\n # echo blk_unplug \u003e /debugfs/tracing/set_graph_function\n # cat /debugfs/tracing/trace\n [...]\n ------------------------------------------\n | 2)  make-19003  \u003d\u003e  kjournald-2219\n ------------------------------------------\n\n 2)               |  blk_unplug() {\n 2)               |    dm_unplug_all() {\n 2)               |      dm_get_table() {\n 2)      1.381 us |        _read_lock();\n 2)      0.911 us |        dm_table_get();\n 2)      1. 76 us |        _read_unlock();\n 2) +   12.912 us |      }\n 2)               |      dm_table_unplug_all() {\n 2)               |        blk_unplug() {\n 2)      0.778 us |          generic_unplug_device();\n 2)      2.409 us |        }\n 2)      5.992 us |      }\n 2)      0.813 us |      dm_table_put();\n 2) +   29. 90 us |    }\n 2) +   34.532 us |  }\n\nYou can add up to 32 functions into this file. Currently we limit it\nto 32, but this may change with later improvements.\n\nTo add another function, use the append \u0027\u003e\u003e\u0027:\n\n  # echo sys_read \u003e\u003e /debugfs/tracing/set_graph_function\n  # cat /debugfs/tracing/set_graph_function\n  blk_unplug\n  sys_read\n\nUsing the \u0027\u003e\u0027 will clear out the function and write anew:\n\n  # echo sys_write \u003e /debug/tracing/set_graph_function\n  # cat /debug/tracing/set_graph_function\n  sys_write\n\nNote, if you have function graph running while doing this, the small\ntime between clearing it and updating it will cause the graph to\nrecord all functions. This should not be an issue because after\nit sets the filter, only those functions will be recorded from then on.\nIf you need to only record a particular function then set this\nfile first before starting the function graph tracer. In the future\nthis side effect may be corrected.\n\nThe set_graph_function file is similar to the set_ftrace_filter but\nit does not take wild cards nor does it allow for more than one\nfunction to be set with a single write. There is no technical reason why\nthis is the case, I just do not have the time yet to implement that.\n\nNote, dynamic ftrace must be enabled for this to appear because it\nuses the dynamic ftrace records to match the name to the mcount\ncall sites.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d253eee20195b25e298bf162a6e72f14bf4803e5",
      "tree": "4fd5fef75d52ecae3f41dbd9ae62436e917e1699",
      "parents": [
        "bd7df219202f44e71e2e975a0fb5f76f946c1aef"
      ],
      "author": {
        "name": "Oliver Hartkopp",
        "email": "oliver@hartkopp.net",
        "time": "Wed Dec 03 15:52:35 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Wed Dec 03 15:52:35 2008 -0800"
      },
      "message": "can: Fix CAN_(EFF|RTR)_FLAG handling in can_filter\n\nDue to a wrong safety check in af_can.c it was not possible to filter\nfor SFF frames with a specific CAN identifier without getting the\nsame selected CAN identifier from a received EFF frame also.\n\nThis fix has a minimum (but user visible) impact on the CAN filter\nAPI and therefore the CAN version is set to a new date.\n\nIndeed the \u0027old\u0027 API is still working as-is. But when now setting\nCAN_(EFF|RTR)_FLAG in can_filter.can_mask you might get less traffic\nthan before - but still the stuff that you expected to get for your\ndefined filter ...\n\nThanks to Kurt Van Dijck for pointing at this issue and for the review.\n\nSigned-off-by: Oliver Hartkopp \u003coliver@hartkopp.net\u003e\nAcked-by: Kurt Van Dijck \u003ckurt.van.dijck@eia.be\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "0e435ac26e3f951d83338ed3d4ab7dc0fe0055bc",
      "tree": "8f208a3093de1a314a981ae47e5ef92a5909c13b",
      "parents": [
        "53a08807c01989c6847bb135d8d43f61c5dfdda5"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed Dec 03 12:55:08 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Dec 03 12:55:55 2008 +0100"
      },
      "message": "block: fix setting of max_segment_size and seg_boundary mask\n\nFix setting of max_segment_size and seg_boundary mask for stacked md/dm\ndevices.\n\nWhen stacking devices (LVM over MD over SCSI) some of the request queue\nparameters are not set up correctly in some cases by default, namely\nmax_segment_size and and seg_boundary mask.\n\nIf you create MD device over SCSI, these attributes are zeroed.\n\nProblem become when there is over this mapping next device-mapper mapping\n- queue attributes are set in DM this way:\n\nrequest_queue   max_segment_size  seg_boundary_mask\nSCSI                65536             0xffffffff\nMD RAID1                0                      0\nLVM                 65536                 -1 (64bit)\n\nUnfortunately bio_add_page (resp.  bio_phys_segments) calculates number of\nphysical segments according to these parameters.\n\nDuring the generic_make_request() is segment cout recalculated and can\nincrease bio-\u003ebi_phys_segments count over the allowed limit.  (After\nbio_clone() in stack operation.)\n\nThi is specially problem in CCISS driver, where it produce OOPS here\n\n    BUG_ON(creq-\u003enr_phys_segments \u003e MAXSGENTRIES);\n\n(MAXSEGENTRIES is 31 by default.)\n\nSometimes even this command is enough to cause oops:\n\n  dd iflag\u003ddirect if\u003d/dev/\u003cvg\u003e/\u003clv\u003e of\u003d/dev/null bs\u003d128000 count\u003d10\n\nThis command generates bios with 250 sectors, allocated in 32 4k-pages\n(last page uses only 1024 bytes).\n\nFor LVM layer, it allocates bio with 31 segments (still OK for CCISS),\nunfortunatelly on lower layer it is recalculated to 32 segments and this\nviolates CCISS restriction and triggers BUG_ON().\n\nThe patch tries to fix it by:\n\n * initializing attributes above in queue request constructor\n   blk_queue_make_request()\n\n * make sure that blk_queue_stack_limits() inherits setting\n\n (DM uses its own function to set the limits because it\n blk_queue_stack_limits() was introduced later.  It should probably switch\n to use generic stack limit function too.)\n\n * sets the default seg_boundary value in one place (blkdev.h)\n\n * use this mask as default in DM (instead of -1, which differs in 64bit)\n\nBugs related to this:\nhttps://bugzilla.redhat.com/show_bug.cgi?id\u003d471639\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d8672\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nReviewed-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nCc: Mike Miller \u003cmike.miller@hp.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "53a08807c01989c6847bb135d8d43f61c5dfdda5",
      "tree": "e2297de901dc82a0336e6af28b594864792c585d",
      "parents": [
        "bf91db18ac2852a3ff39fe25ff56c5557c0fff78"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Dec 03 12:41:26 2008 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Wed Dec 03 12:41:26 2008 +0100"
      },
      "message": "block: internal dequeue shouldn\u0027t start timer\n\nblkdev_dequeue_request() and elv_dequeue_request() are equivalent and\nboth start the timeout timer.  Barrier code dequeues the original\nbarrier request but doesn\u0027t passes the request itself to lower level\ndriver, only broken down proxy requests; however, as the original\nbarrier code goes through the same dequeue path and timeout timer is\nstarted on it.  If barrier sequence takes long enough, this timer\nexpires but the low level driver has no idea about this request and\noops follows.\n\nTimeout timer shouldn\u0027t have been started on the original barrier\nrequest as it never goes through actual IO.  This patch unexports\nelv_dequeue_request(), which has no external user anyway, and makes it\noperate on elevator proper w/o adding the timer and make\nblkdev_dequeue_request() call elv_dequeue_request() and add timer.\nInternal users which don\u0027t pass the request to driver - barrier code\nand end_that_request_last() - are converted to use\nelv_dequeue_request().\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Mike Anderson \u003candmike@linux.vnet.ibm.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "e49dc19c6a19ea112fcb94b7c62ec62cdd5c08aa",
      "tree": "851dcdfe321e16a327d656ecd7040ef6e8590bec",
      "parents": [
        "7ee991fbc6f947e9b04f29c9c6c1d057d0671a16"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 23:50:05 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:26 2008 +0100"
      },
      "message": "ftrace: function graph return for function entry\n\nImpact: feature, let entry function decide to trace or not\n\nThis patch lets the graph tracer entry function decide if the tracing\nshould be done at the end as well. This requires all function graph\nentry functions return 1 if it should trace, or 0 if the return should\nnot be traced.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "14a866c567e040ccf6240d68b083dd1dbbde63e6",
      "tree": "4e8d62ecc345d44e7cd45f973ffb931070637532",
      "parents": [
        "bb4304c71c97bf727ec43cd2f195c2c237c27fd3"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 23:50:02 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:23 2008 +0100"
      },
      "message": "ftrace: add ftrace_graph_stop()\n\nImpact: new ftrace_graph_stop function\n\nWhile developing more features of function graph, I hit a bug that\ncaused the WARN_ON to trigger in the prepare_ftrace_return function.\nWell, it was hard for me to find out that was happening because the\nbug would not print, it would just cause a hard lockup or reboot.\nThe reason is that it is not safe to call printk from this function.\n\nLooking further, I also found that it calls unregister_ftrace_graph,\nwhich grabs a mutex and calls kstop machine. This would definitely\nlock the box up if it were to trigger.\n\nThis patch adds a fast and safe ftrace_graph_stop() which will\nstop the function tracer. Then it is safe to call the WARN ON.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8789a9e7df6bf9b93739c4c7d4e380725bc9e936",
      "tree": "0930b286d987611b4a453766e8479bb005edbc27",
      "parents": [
        "abc9b56d66fbd4d93302ef4bf6fa726e1b8255f9"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Tue Dec 02 15:34:07 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:56:21 2008 +0100"
      },
      "message": "ring-buffer: read page interface\n\nImpact: new API to ring buffer\n\nThis patch adds a new interface into the ring buffer that allows a\npage to be read from the ring buffer on a given CPU. For every page\nread, one must also be given to allow for a \"swap\" of the pages.\n\n rpage \u003d ring_buffer_alloc_read_page(buffer);\n if (!rpage)\n\tgoto err;\n ret \u003d ring_buffer_read_page(buffer, \u0026rpage, cpu, full);\n if (!ret)\n\tgoto empty;\n process_page(rpage);\n ring_buffer_free_read_page(rpage);\n\nThe caller of these functions must handle any waits that are\nneeded to wait for new data. The ring_buffer_read_page will simply\nreturn 0 if there is no data, or if \"full\" is set and the writer\nis still on the current page.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "dfdc5437bd62dd6a26961e27f26b671374749875",
      "tree": "730ddeccfc74ca11b738a69e4d96644bc047e946",
      "parents": [
        "f0461d0146ee30927bc7efa2ae24ea8c6693b725",
        "061e41fdb5047b1fb161e89664057835935ca1d2",
        "878719e831d9e076961aa15d4049a57a6668c67a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:54:47 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Dec 03 08:55:34 2008 +0100"
      },
      "message": "Merge commit \u0027v2.6.28-rc7\u0027; branch \u0027x86/dumpstack\u0027 into tracing/ftrace\n\nMerge x86/dumpstack into tracing/ftrace because upcoming ftrace changes\ndepend on cleanups already in x86/dumpstack.\n\nAlso merge to latest upstream -rc.\n"
    },
    {
      "commit": "e1825e7515010053e44287e6e78f9078cd1916a9",
      "tree": "6c0a2a64926b8063ba934b7083f5f43011b43990",
      "parents": [
        "5d279dcf98350ac3cbfa43c6aa62f4305408f2df",
        "44ae98b53961e7c8c1d47bbffaf08c4f7bf29249"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:55:05 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:55:05 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (30 commits)\n  MAINTAINERS: add netdev to ATM\n  ATM: horizon, fix hrz_probe fail path\n  pppol2tp: Add missing sock_put() in pppol2tp_release()\n  net: Fix soft lockups/OOM issues w/ unix garbage collector\n  macvlan: don\u0027t broadcast PAUSE frames to macvlan devices\n  Phonet: fix oops in phonet_address_del() on non-Phonet device\n  netfilter: ctnetlink: fix GFP_KERNEL allocation under spinlock\n  sungem: Fix PCS_MIICTRL register write in gem_init_phy().\n  net: make skb_truesize_bug() call WARN()\n  net: hp-plus uses eip_poll\n  net/wireless/reg.c: fix bad WARN_ON in if statement\n  ath5k: disable beacon filter when station is not associated\n  ath5k: fix Security issue in DebugFS part of ath5k\n  ath9k: correct expected max RX buffer size\n  ath9k: Fix SW-IOMMU bounce buffer starvation\n  mac80211 : Fix setting ad-hoc mode and non-ibss channel\n  iwlagn: fix DMA sync\n  phylib: Add Vitesse VSC8221 SGMII PHY\n  rose: zero length frame filtering in af_rose.c\n  bridge: netfilter: fix update_pmtu crash with GRE\n  ...\n"
    },
    {
      "commit": "e2e29831cc463f4be61d4e36b8699ae7e071a685",
      "tree": "d5c40f6a328e07edb2db7186bef3a6c932c404fb",
      "parents": [
        "9a689bc4f09f8b89f88e65b1b0a2ea780b4f28de",
        "95964018d53f479529dfdc2b46fe30c0a14a00e0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:53:10 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:53:10 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bart/ide-2.6:\n  alim15x3: fix sparse warning\n  ide: remove dead code from drive_is_ready()\n  ide: fix build for DEBUG_PM\n  ide: respect current DMA setting during resume\n  ide: add SAMSUNG SP0822N with firmware WA100-10 to ivb_list[]\n  amd74xx: workaround unreliable AltStatus register for nVidia controllers\n  ide: fix the ide_release_lock imbalance\n"
    },
    {
      "commit": "1b79cd04fab80be61dcd2732e2423aafde9a4c1c",
      "tree": "b9ff5f0de1c0ef011ac62096218d2fd4bc70c56b",
      "parents": [
        "061e41fdb5047b1fb161e89664057835935ca1d2"
      ],
      "author": {
        "name": "Junjiro R. Okajima",
        "email": "hooanon05@yahoo.co.jp",
        "time": "Tue Dec 02 10:31:46 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Dec 02 15:50:40 2008 -0800"
      },
      "message": "nfsd: fix vm overcommit crash fix #2\n\nThe previous patch from Alan Cox (\"nfsd: fix vm overcommit crash\",\ncommit 731572d39fcd3498702eda4600db4c43d51e0b26) fixed the problem where\nknfsd crashes on exported shmemfs objects and strict overcommit is set.\n\nBut the patch forgot supporting the case when CONFIG_SECURITY is\ndisabled.\n\nThis patch copies a part of his fix which is mainly for detecting a bug\nearlier.\n\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Junjiro R. Okajima \u003chooanon05@yahoo.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6636487e8dc49a1c43fed336bdc4a2f3d7ce6881",
      "tree": "f23a8f126cd63a199907bd8c20f3d2f4423ca006",
      "parents": [
        "f9e3326dce0ef117308872cd234b903aa19aa40f"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Dec 02 20:40:03 2008 +0100"
      },
      "committer": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "bzolnier@gmail.com",
        "time": "Tue Dec 02 20:40:03 2008 +0100"
      },
      "message": "amd74xx: workaround unreliable AltStatus register for nVidia controllers\n\nIt seems that on some nVidia controllers using AltStatus register\ncan be unreliable so default to Status register if the PCI device\nis in Compatibility Mode.  In order to achieve this:\n\n* Add ide_pci_is_in_compatibility_mode() inline helper to \u003clinux/ide.h\u003e.\n\n* Add IDE_HFLAG_BROKEN_ALTSTATUS host flag and set it in amd74xx host\n  driver for nVidia controllers in Compatibility Mode.\n\n* Teach actual_try_to_identify() and drive_is_ready() about the new flag.\n\nThis fixes the regression caused by removal of CONFIG_IDEPCI_SHARE_IRQ\nconfig option in 2.6.25 and using AltStatus register unconditionally when\navailable (kernel.org bugs #11659 and #10216).\n\n[ Moreover for CONFIG_IDEPCI_SHARE_IRQ\u003dy (which is what most people\n  and distributions use) it never worked correctly. ]\n\nThanks to Remy LABENE and Lars Winterfeld for help with debugging the problem.\n\nMore info at:\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11659\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d10216\n\nReported-by: Remy LABENE \u003cremy.labene@free.fr\u003e\nTested-by: Remy LABENE \u003cremy.labene@free.fr\u003e\nTested-by: Lars Winterfeld \u003clars.winterfeld@tu-ilmenau.de\u003e\nAcked-by: Borislav Petkov \u003cpetkovbb@gmail.com\u003e\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cbzolnier@gmail.com\u003e\n"
    },
    {
      "commit": "6ff2d39b91aec3dcae951afa982059e3dd9b49dc",
      "tree": "8d480975d95adf85f3a87dd478e36e4ac0b0edd0",
      "parents": [
        "1d678f365dae28420fa7329a2a35390b3582678d"
      ],
      "author": {
        "name": "Manfred Spraul",
        "email": "manfred@colorfullife.com",
        "time": "Mon Dec 01 13:14:02 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:25 2008 -0800"
      },
      "message": "lib/idr.c: fix rcu related race with idr_find\n\n2nd part of the fixes needed for\nhttp://bugzilla.kernel.org/show_bug.cgi?id\u003d11796.\n\nWhen the idr tree is either grown or shrunk, then the update to the number\nof layers and the top pointer were not atomic.  This race caused crashes.\n\nThe attached patch fixes that by replicating the layers counter in each\nlayer, thus idr_find doesn\u0027t need idp-\u003elayers anymore.\n\nSigned-off-by: Manfred Spraul \u003cmanfred@colorfullife.com\u003e\nCc: Clement Calmels \u003ccboulte@gmail.com\u003e\nCc: Nadia Derbey \u003cNadia.Derbey@bull.net\u003e\nCc: Pierre Peiffer \u003cpeifferp@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ef9964e6d1b911b78709f144000aacadd0ebc21",
      "tree": "30667d0a2f8e53973ff48d2c02df48bbc6fe74aa",
      "parents": [
        "b7d271df873c5121a4ca1c70dea126b5920ec2f1"
      ],
      "author": {
        "name": "Davide Libenzi",
        "email": "davidel@xmailserver.org",
        "time": "Mon Dec 01 13:13:55 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 19:55:24 2008 -0800"
      },
      "message": "epoll: introduce resource usage limits\n\nIt has been thought that the per-user file descriptors limit would also\nlimit the resources that a normal user can request via the epoll\ninterface.  Vegard Nossum reported a very simple program (a modified\nversion attached) that can make a normal user to request a pretty large\namount of kernel memory, well within the its maximum number of fds.  To\nsolve such problem, default limits are now imposed, and /proc based\nconfiguration has been introduced.  A new directory has been created,\nnamed /proc/sys/fs/epoll/ and inside there, there are two configuration\npoints:\n\n  max_user_instances \u003d Maximum number of devices - per user\n\n  max_user_watches   \u003d Maximum number of \"watched\" fds - per user\n\nThe current default for \"max_user_watches\" limits the memory used by epoll\nto store \"watches\", to 1/32 of the amount of the low RAM.  As example, a\n256MB 32bit machine, will have \"max_user_watches\" set to roughly 90000.\nThat should be enough to not break existing heavy epoll users.  The\ndefault value for \"max_user_instances\" is set to 128, that should be\nenough too.\n\nThis also changes the userspace, because a new error code can now come out\nfrom EPOLL_CTL_ADD (-ENOSPC).  The EMFILE from epoll_create() was already\nlisted, so that should be ok.\n\n[akpm@linux-foundation.org: use get_current_user()]\nSigned-off-by: Davide Libenzi \u003cdavidel@xmailserver.org\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: \u003cstable@kernel.org\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@gmail.com\u003e\nReported-by: Vegard Nossum \u003cvegardno@ifi.uio.no\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ac01108e71ca8ccc2ded4ee98035d0e5db9c981",
      "tree": "afb50d33254337c73d450687cfeae18aa096b6c0",
      "parents": [
        "4bc2a9bf8cbb63f3bb9797b2bf30b2316bd27a2b",
        "ac70a964b0e22a95af3628c344815857a01461b7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 11:23:33 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 11:23:33 2008 -0800"
      },
      "message": "Merge branch \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev\n\n* \u0027upstream-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:\n  libata: blacklist Seagate drives which time out FLUSH_CACHE when used with NCQ\n  [libata] pata_rb532_cf: fix signature of the xfer function\n  [libata] pata_rb532_cf: fix and rename register definitions\n  ata_piix: add borked Tecra M4 to broken suspend list\n"
    },
    {
      "commit": "4bc2a9bf8cbb63f3bb9797b2bf30b2316bd27a2b",
      "tree": "a02a03a4c75e3da0843168456124f60afae49200",
      "parents": [
        "6a1214113090905aca6a492fc8ef10d84c608a69",
        "b0f43dcca8a1f46e17b26d10f3cb1b297ebfb44e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 11:01:54 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 01 11:01:54 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:\n  IB/mlx4: Fix MTT leakage in resize CQ\n  IB/ehca: Fix problem with generated flush work completions\n  IB/ehca: Change misleading error message on memory hotplug\n  mlx4_core: Save/restore default port IB capability mask\n"
    },
    {
      "commit": "ac70a964b0e22a95af3628c344815857a01461b7",
      "tree": "c5711139bd95053b9b5c8897e3f7cd50b8331141",
      "parents": [
        "03f60840fa462e92220b093f778b2426ceab23af"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Nov 27 13:36:48 2008 +0900"
      },
      "committer": {
        "name": "Jeff Garzik",
        "email": "jgarzik@redhat.com",
        "time": "Mon Dec 01 13:49:27 2008 -0500"
      },
      "message": "libata: blacklist Seagate drives which time out FLUSH_CACHE when used with NCQ\n\nSome recent Seagate harddrives have firmware bug which causes FLUSH\nCACHE to timeout under certain circumstances if NCQ is being used.\nThis can be worked around by disabling NCQ and fixed by updating the\nfirmware.  Implement ATA_HORKAGE_FIRMWARE_UPDATE and blacklist these\ndevices.\n\nThe wiki page has been updated to contain information on this issue.\n\n  http://ata.wiki.kernel.org/index.php/Known_issues\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Jeff Garzik \u003cjgarzik@redhat.com\u003e\n"
    },
    {
      "commit": "4ec8f077e4dd51f713984669781e7b568b8c41e2",
      "tree": "4c951595e2824b19ca9d9c7190a6046481322c14",
      "parents": [
        "a6e470fd1bbfea8e51d2b10b0713e802b782f19a",
        "af38d90d6a5e135b546a3f86222ba2ad895ba4ae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 16:39:06 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 16:39:06 2008 -0800"
      },
      "message": "Merge master.kernel.org:/home/rmk/linux-2.6-arm\n\n* master.kernel.org:/home/rmk/linux-2.6-arm:\n  Allow architectures to override copy_user_highpage()\n  [ARM] pxa/palmtx: misc fixes to use generic GPIO API\n  ARM: OMAP: Fixes for suspend / resume GPIO wake-up handling\n  [ARM] pxa/corgi: update default config to exclude tosa from being built\n  [ARM] pxa/pcm990: use negative number for an invalid GPIO in camera data\n  ARM: OMAP: Typo fix for clock_allow_idle\n  ARM: OMAP: Remove broken LCD driver for SX1\n  [ARM] 5335/1: pxa25x_udc: Fix is_vbus_present to return 1 or 0\n  [ARM] pxa/MioA701: bluetooth resume fix\n  [ARM] pxa/MioA701: fix memory corruption.\n"
    },
    {
      "commit": "72244c0e68dd664b894adb34a8772a6e4673b4c1",
      "tree": "5fa5bd9ff7b3d52f9b89898c0f12cfe163b72987",
      "parents": [
        "93b10052f9146eab4e848b474baf10c2ea22acb3",
        "2ed1cdcf9a83205d1343f29b630abff232eaa72c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:06:20 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 13:06:20 2008 -0800"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  irq.h: fix missing/extra kernel-doc\n  genirq: __irq_set_trigger: change pr_warning to pr_debug\n  irq: fix typo\n  x86: apic honour irq affinity which was set in early boot\n  genirq: fix the affinity setting in setup_irq\n  genirq: keep affinities set from userspace across free/request_irq()\n"
    },
    {
      "commit": "96b8936a9ed08746e47081458a5eb9e43a751e24",
      "tree": "d1a738fdd95dda182f99c90fe3079283e0b07307",
      "parents": [
        "16799c6a4d5156c6ee185b51b7586cca1aae0800"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Tue Nov 25 08:10:03 2008 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 11:00:15 2008 -0800"
      },
      "message": "remove __ARCH_WANT_COMPAT_SYS_PTRACE\n\nAll architectures now use the generic compat_sys_ptrace, as should every\nnew architecture that needs 32bit compat (if we\u0027ll ever get another).\n\nRemove the now superflous __ARCH_WANT_COMPAT_SYS_PTRACE define, and also\nkill a comment about __ARCH_SYS_PTRACE that was added after\n__ARCH_SYS_PTRACE was already gone.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02d0e6753d8ab0173b63338157929e52eac86d12",
      "tree": "c878c5dd9a1829ed1359fdd3a010272253801823",
      "parents": [
        "d3a307f32ec3554739033762672e533e2d246dae"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Nov 22 17:38:34 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 10:03:38 2008 -0800"
      },
      "message": "hotplug_memory_notifier section annotation\n\nSame as for hotplug_cpu - we want static notifier_block in there in meminitdata,\nto avoid false positives whenever it\u0027s used.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31168481c32c8a485e1003af9433124dede57f8d",
      "tree": "0d0bb17b8f45cb3b176acc63dee4f2a57aaca500",
      "parents": [
        "ed313489badef16d700f5a3be50e8fd8f8294bc8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Nov 22 17:33:24 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Nov 30 10:03:35 2008 -0800"
      },
      "message": "meminit section warnings\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a5aa622dd4cd22b5e0fe83e4a9c0c768d4e2dea",
      "tree": "95e975a4959a890bd1050645b04488272aa4643c",
      "parents": [
        "4ffaf869c7780bbdfc11291e5fd4b61dde662b1c"
      ],
      "author": {
        "name": "Jack Morgenstein",
        "email": "jackm@dev.mellanox.co.il",
        "time": "Fri Nov 28 21:29:46 2008 -0800"
      },
      "committer": {
        "name": "Roland Dreier",
        "email": "rolandd@cisco.com",
        "time": "Fri Nov 28 21:29:46 2008 -0800"
      },
      "message": "mlx4_core: Save/restore default port IB capability mask\n\nCommit 7ff93f8b (\"mlx4_core: Multiple port type support\") introduced\nsupport for different port types.  As part of that support, SET_PORT\nis invoked to set the port type during driver startup.  However, as a\nside-effect, for IB ports the invocation of this command also sets the\nport\u0027s capability mask to zero (losing the default value set by FW).\n\nTo fix this, get the default ib port capabilities (via a MAD_IFC Port\nInfo query) during driver startup, and save them for use in the\nmlx4_SET_PORT command when setting the port-type to Infiniband.\n\nThis patch fixes problems with subnet manager (SM) failover such as\n\u003chttps://bugs.openfabrics.org/show_bug.cgi?id\u003d1183\u003e, which occurred\nbecause the IsTrapSupported bit in the capability mask was zeroed.\n\nSigned-off-by: Jack Morgenstein \u003cjackm@dev.mellanox.co.il\u003e\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\n"
    },
    {
      "commit": "a838c2ec6ea1f18431da74dfe4978c57355b95f3",
      "tree": "c51852ff62ec383c27e21f318f5e3180f141b885",
      "parents": [
        "c7cc77307669336a08928ab8668bdb3f3bcc021b"
      ],
      "author": {
        "name": "Wu Fengguang",
        "email": "fengguang.wu@intel.com",
        "time": "Thu Nov 27 16:14:44 2008 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 28 16:47:41 2008 +0100"
      },
      "message": "markers: comment marker_synchronize_unregister() on data dependency\n\nAdd document and comments on marker_synchronize_unregister(): it\nshould be called before freeing resources that the probes depend on.\n\nBased on comments from Lai Jiangshan and Mathieu Desnoyers.\n\nSigned-off-by: Wu Fengguang \u003cwfg@linux.intel.com\u003e\nReviewed-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nReviewed-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "487ff32082a9bd7489d8185cf7d7a2fdf18a22fa",
      "tree": "59f792ef961670026b2e71a88453fed1136aba02",
      "parents": [
        "6417a917b564106dcf2b8f42687f92ad94635ddd"
      ],
      "author": {
        "name": "Russell King",
        "email": "rmk@dyn-67.arm.linux.org.uk",
        "time": "Thu Nov 27 11:13:58 2008 +0000"
      },
      "committer": {
        "name": "Russell King",
        "email": "rmk+kernel@arm.linux.org.uk",
        "time": "Thu Nov 27 23:39:48 2008 +0000"
      },
      "message": "Allow architectures to override copy_user_highpage()\n\nWith aliasing VIPT cache support, the ARM implementation of\nclear_user_page() and copy_user_page() sets up a temporary kernel space\nmapping such that we have the same cache colour as the userspace page.\nThis avoids having to consider any userspace aliases from this operation.\n\nHowever, when highmem is enabled, kmap_atomic() have to setup mappings.\nThe copy_user_highpage() and clear_user_highpage() call these functions\nbefore delegating the copies to copy_user_page() and clear_user_page().\n\nThe effect of this is that each of the *_user_highpage() functions setup\ntheir own kmap mapping, followed by the *_user_page() functions setting\nup another mapping.  This is rather wasteful.\n\nThankfully, copy_user_highpage() can be overriden by architectures by\ndefining __HAVE_ARCH_COPY_USER_HIGHPAGE.  However, replacement of\nclear_user_highpage() is more difficult because its inline definition\nis not conditional.  It seems that you\u0027re expected to define\n__HAVE_ARCH_ALLOC_ZEROED_USER_HIGHPAGE and provide a replacement\n__alloc_zeroed_user_highpage() implementation instead.\n\nThe allocation itself is fine, so we don\u0027t want to override that.  What\nwe really want to do is to override clear_user_highpage() with our own\nversion which doesn\u0027t kmap_atomic() unnecessarily.\n\nOther VIPT architectures (PARISC and SH) would also like to override\nthis function as well.\n\nAcked-by: Hugh Dickins \u003chugh@veritas.com\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\n"
    },
    {
      "commit": "c7cc77307669336a08928ab8668bdb3f3bcc021b",
      "tree": "c9f2997a7266cc5d8c5b61e964d8e014f274f5d3",
      "parents": [
        "0bfc24559d7945506184d86739fe365a181f06b7",
        "d144d5ee6a265823d39f75ecfed351a516295183",
        "437f24fb897d409a9978eb71ecfaf279dcd94acd",
        "f3f47a6768a29448866da4422b6f6bee485c947f"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:56:13 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Nov 27 10:56:13 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/blktrace\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-graph-tracer\u0027 and \u0027tracing/power-tracer\u0027 into tracing/core\n"
    },
    {
      "commit": "5f3ea37c7716db4e894a480e0c18b24399595b6b",
      "tree": "db6784635d024894f641b340dcd7c5060c446077",
      "parents": [
        "509dceef6470442d8c7b8a43ec34125205840b3c"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Thu Oct 30 08:34:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 12:13:34 2008 +0100"
      },
      "message": "blktrace: port to tracepoints\n\nThis was a forward port of work done by Mathieu Desnoyers, I changed it to\nencode the \u0027what\u0027 parameter on the tracepoint name, so that one can register\ninterest in specific events and not on classes of events to then check the\n\u0027what\u0027 parameter.\n\nSigned-off-by: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f3f47a6768a29448866da4422b6f6bee485c947f",
      "tree": "ba4bf1b79cbd13412871eec50250294d7140fd09",
      "parents": [
        "509dceef6470442d8c7b8a43ec34125205840b3c"
      ],
      "author": {
        "name": "Arjan van de Ven",
        "email": "arjan@infradead.org",
        "time": "Sun Nov 23 16:49:58 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 08:29:32 2008 +0100"
      },
      "message": "tracing: add \"power-tracer\": C/P state tracer to help power optimization\n\nImpact: new \"power-tracer\" ftrace plugin\n\nThis patch adds a C/P-state ftrace plugin that will generate\ndetailed statistics about the C/P-states that are being used,\nso that we can look at detailed decisions that the C/P-state\ncode is making, rather than the too high level \"average\"\nthat we have today.\n\nAn example way of using this is:\n\n mount -t debugfs none /sys/kernel/debug\n echo cstate \u003e /sys/kernel/debug/tracing/current_tracer\n echo 1 \u003e /sys/kernel/debug/tracing/tracing_enabled\n sleep 1\n echo 0 \u003e /sys/kernel/debug/tracing/tracing_enabled\n cat /sys/kernel/debug/tracing/trace | perl scripts/trace/cstate.pl \u003e out.svg\n\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5a45cfe1c64862e8cd3b0d79d7c4ba71c3118915",
      "tree": "0a7edf3a9dc88d74b7c7053445ac8aff033a75fa",
      "parents": [
        "df4fc31558dd2a3a30292ddb3a64c2a5befcec73"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Wed Nov 26 00:16:24 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 06:52:54 2008 +0100"
      },
      "message": "ftrace: use code patching for ftrace graph tracer\n\nImpact: more efficient code for ftrace graph tracer\n\nThis patch uses the dynamic patching, when available, to patch\nthe function graph code into the kernel.\n\nThis patch will ease the way for letting both function tracing\nand function graph tracing run together.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "287b6e68ca7209caec40b2f44f837c580a413bae",
      "tree": "b0867d75868f6049dc5747bd39fdae2d477dde66",
      "parents": [
        "fb52607afcd0629776f1dc9e657647ceae81dd50"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Nov 26 00:57:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 01:59:45 2008 +0100"
      },
      "message": "tracing/function-return-tracer: set a more human readable output\n\nImpact: feature\n\nThis patch sets a C-like output for the function graph tracing.\nFor this aim, we now call two handler for each function: one on the entry\nand one other on return. This way we can draw a well-ordered call stack.\n\nThe pid of the previous trace is loosely stored to be compared against\nthe one of the current trace to see if there were a context switch.\n\nWithout this little feature, the call tree would seem broken at\nsome locations.\nWe could use the sched_tracer to capture these sched_events but this\nway of processing is much more simpler.\n\n2 spaces have been chosen for indentation to fit the screen while deep\ncalls. The time of execution in nanosecs is printed just after closed\nbraces, it seems more easy this way to find the corresponding function.\nIf the time was printed as a first column, it would be not so easy to\nfind the corresponding function if it is called on a deep depth.\n\nI plan to output the return value but on 32 bits CPU, the return value\ncan be 32 or 64, and its difficult to guess on which case we are.\nI don\u0027t know what would be the better solution on X86-32: only print\neax (low-part) or even edx (high-part).\n\nActually it\u0027s thee same problem when a function return a 8 bits value, the\nhigh part of eax could contain junk values...\n\nHere is an example of trace:\n\nsys_read() {\n  fget_light() {\n  } 526\n  vfs_read() {\n    rw_verify_area() {\n      security_file_permission() {\n        cap_file_permission() {\n        } 519\n      } 1564\n    } 2640\n    do_sync_read() {\n      pipe_read() {\n        __might_sleep() {\n        } 511\n        pipe_wait() {\n          prepare_to_wait() {\n          } 760\n          deactivate_task() {\n            dequeue_task() {\n              dequeue_task_fair() {\n                dequeue_entity() {\n                  update_curr() {\n                    update_min_vruntime() {\n                    } 504\n                  } 1587\n                  clear_buddies() {\n                  } 512\n                  add_cfs_task_weight() {\n                  } 519\n                  update_min_vruntime() {\n                  } 511\n                } 5602\n                dequeue_entity() {\n                  update_curr() {\n                    update_min_vruntime() {\n                    } 496\n                  } 1631\n                  clear_buddies() {\n                  } 496\n                  update_min_vruntime() {\n                  } 527\n                } 4580\n                hrtick_update() {\n                  hrtick_start_fair() {\n                  } 488\n                } 1489\n              } 13700\n            } 14949\n          } 16016\n          msecs_to_jiffies() {\n          } 496\n          put_prev_task_fair() {\n          } 504\n          pick_next_task_fair() {\n          } 489\n          pick_next_task_rt() {\n          } 496\n          pick_next_task_fair() {\n          } 489\n          pick_next_task_idle() {\n          } 489\n\n------------8\u003c---------- thread 4 ------------8\u003c----------\n\nfinish_task_switch() {\n} 1203\ndo_softirq() {\n  __do_softirq() {\n    __local_bh_disable() {\n    } 669\n    rcu_process_callbacks() {\n      __rcu_process_callbacks() {\n        cpu_quiet() {\n          rcu_start_batch() {\n          } 503\n        } 1647\n      } 3128\n      __rcu_process_callbacks() {\n      } 542\n    } 5362\n    _local_bh_enable() {\n    } 587\n  } 8880\n} 9986\nkthread_should_stop() {\n} 669\ndeactivate_task() {\n  dequeue_task() {\n    dequeue_task_fair() {\n      dequeue_entity() {\n        update_curr() {\n          calc_delta_mine() {\n          } 511\n          update_min_vruntime() {\n          } 511\n        } 2813\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fb52607afcd0629776f1dc9e657647ceae81dd50",
      "tree": "7bf43b41ff8510d3098c089913cce56a9049f0fd",
      "parents": [
        "509dceef6470442d8c7b8a43ec34125205840b3c"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Nov 25 21:07:04 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 01:59:45 2008 +0100"
      },
      "message": "tracing/function-return-tracer: change the name into function-graph-tracer\n\nImpact: cleanup\n\nThis patch changes the name of the \"return function tracer\" into\nfunction-graph-tracer which is a more suitable name for a tracing\nwhich makes one able to retrieve the ordered call stack during\nthe code flow.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "509dceef6470442d8c7b8a43ec34125205840b3c",
      "tree": "b02f0a55bf98aa5e7d44698cc80e23a01a41edef",
      "parents": [
        "1e9b51c28312f7334394aa30be56ff52c2b65b7e",
        "14bfc987e395797dfe03e915e8b4c7fc9e5078e4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 01:58:05 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 26 01:58:05 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/hw-branch-tracing\u0027 and \u0027tracing/branch-tracer\u0027 into tracing/core\n"
    },
    {
      "commit": "6abb11aecd888d1da6276399380b7355f127c006",
      "tree": "ef64f865780fa85f4ef102e6de4dd0a589302d32",
      "parents": [
        "ca0002a179bfa532d009a9272d619732872c49bd"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Tue Nov 25 09:05:27 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 17:31:12 2008 +0100"
      },
      "message": "x86, bts, ptrace: move BTS buffer allocation from ds.c into ptrace.c\n\nImpact: restructure DS memory allocation to be done by the usage site of DS\n\nRequire pre-allocated buffers in ds.h.\n\nMove the BTS buffer allocation for ptrace into ptrace.c.\nThe pointer to the allocated buffer is stored in the traced task\u0027s\ntask_struct together with the handle returned by ds_request_bts().\n\nRemoves memory accounting code.\n\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca0002a179bfa532d009a9272d619732872c49bd",
      "tree": "9a9ca02164dfb2c13afaa38ab67f3f15d8dd5ce8",
      "parents": [
        "7d55718b0c19ba611241c330f688ee824e9bab79"
      ],
      "author": {
        "name": "Markus Metzger",
        "email": "markus.t.metzger@intel.com",
        "time": "Tue Nov 25 09:01:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 17:31:11 2008 +0100"
      },
      "message": "x86, bts: base in-kernel ds interface on handles\n\nImpact: generalize the DS code to shared buffers\n\nChange the in-kernel ds.h interface to identify the tracer via a\nhandle returned on ds_request_~().\n\nTracers used to be identified via their task_struct.\n\nThe changes are required to allow DS to be shared between different\ntasks, which is needed for perfmon2 and for ftrace.\n\nFor ptrace, the handle is stored in the traced task\u0027s task_struct.\nThis should probably go into a (arch-specific) ptrace context some\ntime.\n\nSigned-off-by: Markus Metzger \u003cmarkus.t.metzger@intel.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "14bfc987e395797dfe03e915e8b4c7fc9e5078e4",
      "tree": "660992b9d637e3055b0479ebabfdfdf0bd0cb004",
      "parents": [
        "0429149fb5e01edc410648591c19095d2074ee00"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 08:58:11 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 25 08:59:44 2008 +0100"
      },
      "message": "tracing, tty: fix warnings caused by branch tracing and tty_kref_get()\n\nStephen Rothwell reported tht this warning started triggering in\nlinux-next:\n\n  In file included from init/main.c:27:\n  include/linux/tty.h: In function ‘tty_kref_get’:\n  include/linux/tty.h:330: warning: ‘______f’ is static but declared in inline function ‘tty_kref_get’ which is not static\n\nWhich gcc emits for \u0027extern inline\u0027 functions that nevertheless define\nstatic variables. Change it to \u0027static inline\u0027, which is the norm\nin the kernel anyway.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f79fca55f9a6fe54635ad32ddc8a38f92a94ec30",
      "tree": "15343dc8350f4e3f902c20c13b43a86e366f843f",
      "parents": [
        "b54ad409fd09a395b839fb81f300880d76861c0e"
      ],
      "author": {
        "name": "Jan Engelhardt",
        "email": "jengelh@medozas.de",
        "time": "Mon Nov 24 16:06:17 2008 -0800"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Nov 24 16:06:17 2008 -0800"
      },
      "message": "netfilter: xtables: add missing const qualifier to xt_tgchk_param\n\nWhen entryinfo was a standalone parameter to functions, it used to be\n\"const void *\". Put the const back in.\n\nSigned-off-by: Jan Engelhardt \u003cjengelh@medozas.de\u003e\nSigned-off-by: Patrick McHardy \u003ckaber@trash.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "6f893fb2e89287a4d755f928c3cda9d18440355c",
      "tree": "e2b2d9b3974567bc25a5298b14660062d6afb871",
      "parents": [
        "0429149fb5e01edc410648591c19095d2074ee00",
        "1d926f2756392c6909f60e0c9fe2a09d5462e376",
        "69bb54ec05f57da7f6fac2cec0820cbc970df20f",
        "65afa5e603d507014580ead016ec887b49e1afa6",
        "cbe2f5a6e84eebb98ab42fc5e58c3cd5b7767349",
        "813b8520f5c240c71df55d14095a7b171de264ce",
        "033601a32b2012b6948e80e739cca40bff4de4a0",
        "958086d1784459be3fe85e4cad79d42b17d33381",
        "fb91ee6cf5b8be5360acec577458e29ec7e97e5e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:46:24 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 24 17:46:24 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027, \u0027tracing/fastboot\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-return-tracer\u0027, \u0027tracing/power-tracer\u0027, \u0027tracing/powerpc\u0027, \u0027tracing/ring-buffer\u0027, \u0027tracing/stack-tracer\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "8d26487fd4ddda7a0237da418fb8669fb06ae557",
      "tree": "df518f9aef1c0f830ada2f2ad221ee41fd38ba1e",
      "parents": [
        "cffa10aecb6891f090a4d53a075bc40c082c45fc"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sun Nov 23 12:39:08 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:53:50 2008 +0100"
      },
      "message": "tracing/stack-tracer: introduce CONFIG_USER_STACKTRACE_SUPPORT\n\nImpact: cleanup\n\nUser stack tracing is just implemented for x86, but it is not x86 specific.\n\nIntroduce a generic config flag, that is currently enabled only for x86.\nWhen other arches implement it, they will have to\nSELECT USER_STACKTRACE_SUPPORT.\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8d7c6a96164651dbbab449ef0b5c20ae1f76a3a1",
      "tree": "f7474eb4873f62df30915897c3424048f3142b4f",
      "parents": [
        "b54d3de9f3b8956653b06f1a32e9f9321c6d9027"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sun Nov 23 12:39:06 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:53:48 2008 +0100"
      },
      "message": "tracing/stack-tracer: fix style issues\n\nImpact: cleanup\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "69bb54ec05f57da7f6fac2cec0820cbc970df20f",
      "tree": "cdee5802117c2e78cf18df7fa524c7390d1bdb67",
      "parents": [
        "e58918ab9d4cd375f6d842e6d88cf4d7a55cbfcc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 12:59:38 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:45:34 2008 +0100"
      },
      "message": "ftrace: add ftrace_off_permanent\n\nImpact: add new API to disable all of ftrace on anomalies\n\nIt case of a serious anomaly being detected (like something caught by\nlockdep) it is a good idea to disable all tracing immediately, without\ngrabing any locks.\n\nThis patch adds ftrace_off_permanent that disables the tracers, function\ntracing and ring buffers without a way to enable them again. This should\nonly be used when something serious has been detected.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "033601a32b2012b6948e80e739cca40bff4de4a0",
      "tree": "79f5fb4de0c76472174a1fd46c28e1503ac88dfc",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 12:41:55 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:44:37 2008 +0100"
      },
      "message": "ring-buffer: add tracing_off_permanent\n\nImpact: feature to permanently disable ring buffer\n\nThis patch adds a API to the ring buffer code that will permanently\ndisable the ring buffer from ever recording. This should only be\ncalled when some serious anomaly is detected, and the system\nmay be in an unstable state. When that happens, shutting down the\nrecording to the ring buffers may be appropriate.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2bcd521a684cc94befbe2ce7d5b613c841b0d304",
      "tree": "63bc4dbc52defa27c8cac9e46dddadfcb36c1c7a",
      "parents": [
        "bac28bfe42ba98ee67503f78984d1d5e1ebbbb78"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 01:30:54 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:41:01 2008 +0100"
      },
      "message": "trace: profile all if conditionals\n\nImpact: feature to profile if statements\n\nThis patch adds a branch profiler for all if () statements.\nThe results will be found in:\n\n  /debugfs/tracing/profile_branch\n\nFor example:\n\n   miss      hit    %        Function                  File              Line\n ------- ---------  -        --------                  ----              ----\n       0        1 100 x86_64_start_reservations      head64.c             127\n       0        1 100 copy_bootdata                  head64.c             69\n       1        0   0 x86_64_start_kernel            head64.c             111\n      32        0   0 set_intr_gate                  desc.h               319\n       1        0   0 reserve_ebda_region            head.c               51\n       1        0   0 reserve_ebda_region            head.c               47\n       0        1 100 reserve_ebda_region            head.c               42\n       0        0   X maxcpus                        main.c               165\n\nMiss means the branch was not taken. Hit means the branch was taken.\nThe percent is the percentage the branch was taken.\n\nThis adds a significant amount of overhead and should only be used\nby those analyzing their system.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "45b797492a0758e64dff74e9db70e1f65e0603a5",
      "tree": "75db13ee888a6c7f90c92c17a743bff8ce42d86a",
      "parents": [
        "42f565e116e0408b5ddc21a33c4a4d41fd572420"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 21 00:40:40 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:39:56 2008 +0100"
      },
      "message": "trace: consolidate unlikely and likely profiler\n\nImpact: clean up to make one profiler of like and unlikely tracer\n\nThe likely and unlikely profiler prints out the file and line numbers\nof the annotated branches that it is profiling. It shows the number\nof times it was correct or incorrect in its guess. Having two\ndifferent files or sections for that matter to tell us if it was a\nlikely or unlikely is pretty pointless. We really only care if\nit was correct or not.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "42f565e116e0408b5ddc21a33c4a4d41fd572420",
      "tree": "d4599c10d5771c91615e5ec9f6cdf4315b6e4091",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Nov 20 23:57:47 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 11:39:28 2008 +0100"
      },
      "message": "trace: remove extra assign in branch check\n\nImpact: clean up of branch check\n\nThe unlikely/likely profiler does an extra assign of the f.line.\nThis is not needed since it is already calculated at compile time.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2ed1cdcf9a83205d1343f29b630abff232eaa72c",
      "tree": "97304ced8d05b5b7497e37b661abbce4540f0194",
      "parents": [
        "9f1441644213e5f6faa150206399fe511eba2eb6"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Fri Nov 21 16:59:57 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:52:45 2008 +0100"
      },
      "message": "irq.h: fix missing/extra kernel-doc\n\nImpact: fix kernel-doc build\n\nFix missing \u0026 excess irq.h kernel-doc:\n\nWarning(include/linux/irq.h:182): No description found for parameter \u0027irq\u0027\nWarning(include/linux/irq.h:182): Excess struct/union/enum/typedef member \u0027affinity_entry\u0027 description in \u0027irq_desc\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9f1441644213e5f6faa150206399fe511eba2eb6",
      "tree": "e59d4e6475aa84f7e821a8c607deb56b85e19e95",
      "parents": [
        "3ff68a6a106c362a6811d3e51bced58e6fc87de7",
        "13d428afc007fcfcd6deeb215618f54cf9c0cae6"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:52:33 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 10:52:33 2008 +0100"
      },
      "message": "Merge commit \u0027v2.6.28-rc6\u0027 into irq/urgent\n"
    },
    {
      "commit": "74e2f334f4440cbcb63e9ebbcdcea430d41bdfa3",
      "tree": "99a0aa61963601d998563e45b3ea40c5f2e4357c",
      "parents": [
        "02b67518e2b1c490787dac7f35e1204e74fe21ba"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sat Nov 22 13:28:48 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:45:39 2008 +0100"
      },
      "message": "vfs, seqfile: make mangle_path() global\n\nImpact: expose new VFS API\n\nmake mangle_path() available, as per the suggestions of Christoph Hellwig\nand Al Viro:\n\n  http://lkml.org/lkml/2008/11/4/338\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "02b67518e2b1c490787dac7f35e1204e74fe21ba",
      "tree": "a3d92846e1a09a829f300ab15726ee9c288cb49e",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Török Edwin",
        "email": "edwintorok@gmail.com",
        "time": "Sat Nov 22 13:28:47 2008 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:25:15 2008 +0100"
      },
      "message": "tracing: add support for userspace stacktraces in tracing/iter_ctrl\n\nImpact: add new (default-off) tracing visualization feature\n\nUsage example:\n\n mount -t debugfs nodev /sys/kernel/debug\n cd /sys/kernel/debug/tracing\n echo userstacktrace \u003eiter_ctrl\n echo sched_switch \u003ecurrent_tracer\n echo 1 \u003etracing_enabled\n .... run application ...\n echo 0 \u003etracing_enabled\n\nThen read one of \u0027trace\u0027,\u0027latency_trace\u0027,\u0027trace_pipe\u0027.\n\nTo get the best output you can compile your userspace programs with\nframe pointers (at least glibc + the app you are tracing).\n\nSigned-off-by: Török Edwin \u003cedwintorok@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "82f60f0bc854aada696f27d863c03bef91f1509d",
      "tree": "521fbccfc12f6c8a36f261b20eacbc84a4a31add",
      "parents": [
        "f201ae2356c74bcae130b2177b3dca903ea98071"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:18:56 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:19:35 2008 +0100"
      },
      "message": "tracing/function-return-tracer: clean up task start/exit callbacks\n\nImpact: cleanup\n\nEliminate #ifdefs in core code by using empty inline functions.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f201ae2356c74bcae130b2177b3dca903ea98071",
      "tree": "c4b1b43fbe0a4594cb86749b2e7098fe15eb86ba",
      "parents": [
        "a0a70c735ef714fe1b6777b571630c3d50c7b008"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 23 06:22:56 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:17:26 2008 +0100"
      },
      "message": "tracing/function-return-tracer: store return stack into task_struct and allocate it dynamically\n\nImpact: use deeper function tracing depth safely\n\nSome tests showed that function return tracing needed a more deeper depth\nof function calls. But it could be unsafe to store these return addresses\nto the stack.\n\nSo these arrays will now be allocated dynamically into task_struct of current\nonly when the tracer is activated.\n\nTypical scheme when tracer is activated:\n- allocate a return stack for each task in global list.\n- fork: allocate the return stack for the newly created task\n- exit: free return stack of current\n- idle init: same as fork\n\nI chose a default depth of 50. I don\u0027t have overruns anymore.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a0a70c735ef714fe1b6777b571630c3d50c7b008",
      "tree": "3f4f3bb23441a284107bede9890c4e45827634e0",
      "parents": [
        "9676e73a9e0cbdc521e1ebf4e13e6e5aada34247",
        "60a515132086b2c28a8141d873297fdf7a180ca7",
        "0231022cc32d5f2e7f3c06b75691dda0ad6aec33",
        "522a110b42b306d696cf84e34c677ed0e7080194"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:10:32 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 23 09:10:32 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/profiling\u0027, \u0027tracing/options\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "f481891fdc49d3d1b8a9674a1825d183069a805f",
      "tree": "4f027a1321dcd06165394d0a23e49df51c8befc1",
      "parents": [
        "ac97b9f9a2d0b83488e0bbcb8517b229d5c9b142"
      ],
      "author": {
        "name": "Miao Xie",
        "email": "miaox@cn.fujitsu.com",
        "time": "Wed Nov 19 15:36:30 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:58 2008 -0800"
      },
      "message": "cpuset: update top cpuset\u0027s mems after adding a node\n\nAfter adding a node into the machine, top cpuset\u0027s mems isn\u0027t updated.\n\nBy reviewing the code, we found that the update function\n\n  cpuset_track_online_nodes()\n\nwas invoked after node_states[N_ONLINE] changes.  It is wrong because\nN_ONLINE just means node has pgdat, and if node has/added memory, we use\nN_HIGH_MEMORY.  So, We should invoke the update function after\nnode_states[N_HIGH_MEMORY] changes, just like its commit says.\n\nThis patch fixes it.  And we use notifier of memory hotplug instead of\ndirect calling of cpuset_track_online_nodes().\n\nSigned-off-by: Miao Xie \u003cmiaox@cn.fujitsu.com\u003e\nAcked-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Paul Menage \u003cmenage@google.com\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "de11defebf00007677fb7ee91d9b089b78786fbb",
      "tree": "8219faf1b7992be77a612e778c2573c55f56cf19",
      "parents": [
        "cf7ee554f3a324e98181b0ea249d9d5be3a0acb8"
      ],
      "author": {
        "name": "Ulrich Drepper",
        "email": "drepper@redhat.com",
        "time": "Wed Nov 19 15:36:14 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Nov 19 18:49:57 2008 -0800"
      },
      "message": "reintroduce accept4\n\nIntroduce a new accept4() system call.  The addition of this system call\nmatches analogous changes in 2.6.27 (dup3(), evenfd2(), signalfd4(),\ninotify_init1(), epoll_create1(), pipe2()) which added new system calls\nthat differed from analogous traditional system calls in adding a flags\nargument that can be used to access additional functionality.\n\nThe accept4() system call is exactly the same as accept(), except that\nit adds a flags bit-mask argument.  Two flags are initially implemented.\n(Most of the new system calls in 2.6.27 also had both of these flags.)\n\nSOCK_CLOEXEC causes the close-on-exec (FD_CLOEXEC) flag to be enabled\nfor the new file descriptor returned by accept4().  This is a useful\nsecurity feature to avoid leaking information in a multithreaded\nprogram where one thread is doing an accept() at the same time as\nanother thread is doing a fork() plus exec().  More details here:\nhttp://udrepper.livejournal.com/20407.html \"Secure File Descriptor Handling\",\nUlrich Drepper).\n\nThe other flag is SOCK_NONBLOCK, which causes the O_NONBLOCK flag\nto be enabled on the new open file description created by accept4().\n(This flag is merely a convenience, saving the use of additional calls\nfcntl(F_GETFL) and fcntl (F_SETFL) to achieve the same result.\n\nHere\u0027s a test program.  Works on x86-32.  Should work on x86-64, but\nI (mtk) don\u0027t have a system to hand to test with.\n\nIt tests accept4() with each of the four possible combinations of\nSOCK_CLOEXEC and SOCK_NONBLOCK set/clear in \u0027flags\u0027, and verifies\nthat the appropriate flags are set on the file descriptor/open file\ndescription returned by accept4().\n\nI tested Ulrich\u0027s patch in this thread by applying against 2.6.28-rc2,\nand it passes according to my test program.\n\n/* test_accept4.c\n\n  Copyright (C) 2008, Linux Foundation, written by Michael Kerrisk\n       \u003cmtk.manpages@gmail.com\u003e\n\n  Licensed under the GNU GPLv2 or later.\n*/\n#define _GNU_SOURCE\n#include \u003cunistd.h\u003e\n#include \u003csys/syscall.h\u003e\n#include \u003csys/socket.h\u003e\n#include \u003cnetinet/in.h\u003e\n#include \u003cstdlib.h\u003e\n#include \u003cfcntl.h\u003e\n#include \u003cstdio.h\u003e\n#include \u003cstring.h\u003e\n\n#define PORT_NUM 33333\n\n#define die(msg) do { perror(msg); exit(EXIT_FAILURE); } while (0)\n\n/**********************************************************************/\n\n/* The following is what we need until glibc gets a wrapper for\n  accept4() */\n\n/* Flags for socket(), socketpair(), accept4() */\n#ifndef SOCK_CLOEXEC\n#define SOCK_CLOEXEC    O_CLOEXEC\n#endif\n#ifndef SOCK_NONBLOCK\n#define SOCK_NONBLOCK   O_NONBLOCK\n#endif\n\n#ifdef __x86_64__\n#define SYS_accept4 288\n#elif __i386__\n#define USE_SOCKETCALL 1\n#define SYS_ACCEPT4 18\n#else\n#error \"Sorry -- don\u0027t know the syscall # on this architecture\"\n#endif\n\nstatic int\naccept4(int fd, struct sockaddr *sockaddr, socklen_t *addrlen, int flags)\n{\n   printf(\"Calling accept4(): flags \u003d %x\", flags);\n   if (flags !\u003d 0) {\n       printf(\" (\");\n       if (flags \u0026 SOCK_CLOEXEC)\n           printf(\"SOCK_CLOEXEC\");\n       if ((flags \u0026 SOCK_CLOEXEC) \u0026\u0026 (flags \u0026 SOCK_NONBLOCK))\n           printf(\" \");\n       if (flags \u0026 SOCK_NONBLOCK)\n           printf(\"SOCK_NONBLOCK\");\n       printf(\")\");\n   }\n   printf(\"\\n\");\n\n#if USE_SOCKETCALL\n   long args[6];\n\n   args[0] \u003d fd;\n   args[1] \u003d (long) sockaddr;\n   args[2] \u003d (long) addrlen;\n   args[3] \u003d flags;\n\n   return syscall(SYS_socketcall, SYS_ACCEPT4, args);\n#else\n   return syscall(SYS_accept4, fd, sockaddr, addrlen, flags);\n#endif\n}\n\n/**********************************************************************/\n\nstatic int\ndo_test(int lfd, struct sockaddr_in *conn_addr,\n       int closeonexec_flag, int nonblock_flag)\n{\n   int connfd, acceptfd;\n   int fdf, flf, fdf_pass, flf_pass;\n   struct sockaddr_in claddr;\n   socklen_t addrlen;\n\n   printf(\"\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\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\\n\");\n\n   connfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n   if (connfd \u003d\u003d -1)\n       die(\"socket\");\n   if (connect(connfd, (struct sockaddr *) conn_addr,\n               sizeof(struct sockaddr_in)) \u003d\u003d -1)\n       die(\"connect\");\n\n   addrlen \u003d sizeof(struct sockaddr_in);\n   acceptfd \u003d accept4(lfd, (struct sockaddr *) \u0026claddr, \u0026addrlen,\n                      closeonexec_flag | nonblock_flag);\n   if (acceptfd \u003d\u003d -1) {\n       perror(\"accept4()\");\n       close(connfd);\n       return 0;\n   }\n\n   fdf \u003d fcntl(acceptfd, F_GETFD);\n   if (fdf \u003d\u003d -1)\n       die(\"fcntl:F_GETFD\");\n   fdf_pass \u003d ((fdf \u0026 FD_CLOEXEC) !\u003d 0) \u003d\u003d\n              ((closeonexec_flag \u0026 SOCK_CLOEXEC) !\u003d 0);\n   printf(\"Close-on-exec flag is %sset (%s); \",\n           (fdf \u0026 FD_CLOEXEC) ? \"\" : \"not \",\n           fdf_pass ? \"OK\" : \"failed\");\n\n   flf \u003d fcntl(acceptfd, F_GETFL);\n   if (flf \u003d\u003d -1)\n       die(\"fcntl:F_GETFD\");\n   flf_pass \u003d ((flf \u0026 O_NONBLOCK) !\u003d 0) \u003d\u003d\n              ((nonblock_flag \u0026 SOCK_NONBLOCK) !\u003d0);\n   printf(\"nonblock flag is %sset (%s)\\n\",\n           (flf \u0026 O_NONBLOCK) ? \"\" : \"not \",\n           flf_pass ? \"OK\" : \"failed\");\n\n   close(acceptfd);\n   close(connfd);\n\n   printf(\"Test result: %s\\n\", (fdf_pass \u0026\u0026 flf_pass) ? \"PASS\" : \"FAIL\");\n   return fdf_pass \u0026\u0026 flf_pass;\n}\n\nstatic int\ncreate_listening_socket(int port_num)\n{\n   struct sockaddr_in svaddr;\n   int lfd;\n   int optval;\n\n   memset(\u0026svaddr, 0, sizeof(struct sockaddr_in));\n   svaddr.sin_family \u003d AF_INET;\n   svaddr.sin_addr.s_addr \u003d htonl(INADDR_ANY);\n   svaddr.sin_port \u003d htons(port_num);\n\n   lfd \u003d socket(AF_INET, SOCK_STREAM, 0);\n   if (lfd \u003d\u003d -1)\n       die(\"socket\");\n\n   optval \u003d 1;\n   if (setsockopt(lfd, SOL_SOCKET, SO_REUSEADDR, \u0026optval,\n                  sizeof(optval)) \u003d\u003d -1)\n       die(\"setsockopt\");\n\n   if (bind(lfd, (struct sockaddr *) \u0026svaddr,\n            sizeof(struct sockaddr_in)) \u003d\u003d -1)\n       die(\"bind\");\n\n   if (listen(lfd, 5) \u003d\u003d -1)\n       die(\"listen\");\n\n   return lfd;\n}\n\nint\nmain(int argc, char *argv[])\n{\n   struct sockaddr_in conn_addr;\n   int lfd;\n   int port_num;\n   int passed;\n\n   passed \u003d 1;\n\n   port_num \u003d (argc \u003e 1) ? atoi(argv[1]) : PORT_NUM;\n\n   memset(\u0026conn_addr, 0, sizeof(struct sockaddr_in));\n   conn_addr.sin_family \u003d AF_INET;\n   conn_addr.sin_addr.s_addr \u003d htonl(INADDR_LOOPBACK);\n   conn_addr.sin_port \u003d htons(port_num);\n\n   lfd \u003d create_listening_socket(port_num);\n\n   if (!do_test(lfd, \u0026conn_addr, 0, 0))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, SOCK_CLOEXEC, 0))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, 0, SOCK_NONBLOCK))\n       passed \u003d 0;\n   if (!do_test(lfd, \u0026conn_addr, SOCK_CLOEXEC, SOCK_NONBLOCK))\n       passed \u003d 0;\n\n   close(lfd);\n\n   exit(passed ? EXIT_SUCCESS : EXIT_FAILURE);\n}\n\n[mtk.manpages@gmail.com: rewrote changelog, updated test program]\nSigned-off-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nTested-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: \u003clinux-api@vger.kernel.org\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9676e73a9e0cbdc521e1ebf4e13e6e5aada34247",
      "tree": "b5ea1cace6c4f2f57fcebfc42418b7f53fee84e5",
      "parents": [
        "5a209c2d58e70f9bc415b9cdf0e3b9aaefb70371",
        "86fa2f60674540df0b34f5c547ed0c1cf3a8f212",
        "6d5b43a67accf6793ed259f6534b4bd53b1e5696"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 10:04:25 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Nov 19 10:04:25 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/ftrace\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n\nConflicts:\n\tkernel/trace/ftrace.c\n\n[ We conflicted here because we backported a few fixes to\n  tracing/urgent - which has different internal APIs. ]\n"
    },
    {
      "commit": "7f0f598a0069d1ab072375965a4b69137233169c",
      "tree": "00cb9320e0caef179d6075b54fa611de6551e3e2",
      "parents": [
        "a6a0c4ca7edb378a8a7332501f097089cb1051c4",
        "c26156b2534c75bb3cdedf76f6ad1340971cf5bd"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:07:51 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:07:51 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block:\n  block: hold extra reference to bio in blk_rq_map_user_iov()\n  relay: fix cpu offline problem\n  Release old elevator on change elevator\n  block: fix boot failure with CONFIG_DEBUG_BLOCK_EXT_DEVT\u003dy and nash\n  block/md: fix md autodetection\n  block: make add_partition() return pointer to hd_struct\n  block: fix add_partition() error path\n"
    },
    {
      "commit": "72b51a6b4d803381f16d819df392dd1efd1c7181",
      "tree": "7e27a03c10cb2f5e6593dd599b3c8b0bcd0f9ee9",
      "parents": [
        "8c60bfb0666952728b3be73ef9bc133d686aebba",
        "e270219f4372b58bd3eeac12bd9f7edc592b8f6b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:35 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Nov 18 08:06:35 2008 -0800"
      },
      "message": "Merge branch \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  kernel/profile.c: fix section mismatch warning\n  function tracing: fix wrong pos computing when read buffer has been fulfilled\n  tracing: fix mmiotrace resizing crash\n  ring-buffer: no preempt for sched_clock()\n  ring-buffer: buffer record on/off switch\n"
    },
    {
      "commit": "ba32929a91fe2c0628f5be62d1597b379c8d3062",
      "tree": "09ea54ed2d2299d25b92fee6a6dde4d7527a3d37",
      "parents": [
        "eb60fa1066622ddb2278732cf61e0c4544e82c6f"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Nov 10 15:29:58 2008 +0900"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jens.axboe@oracle.com",
        "time": "Tue Nov 18 15:08:56 2008 +0100"
      },
      "message": "block: make add_partition() return pointer to hd_struct\n\nMake add_partition() return pointer to the new hd_struct on success\nand ERR_PTR() value on failure.  This change will be used to fix md\nautodetection bug.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Neil Brown \u003cneilb@suse.de\u003e\nSigned-off-by: Jens Axboe \u003cjens.axboe@oracle.com\u003e\n"
    },
    {
      "commit": "0231022cc32d5f2e7f3c06b75691dda0ad6aec33",
      "tree": "b45429e95fc7d52bae32e62ef514f3d7ccf62ce6",
      "parents": [
        "0619faf657806b943e6acf51f60f1cd023a96c78"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Mon Nov 17 03:22:41 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Nov 18 11:11:00 2008 +0100"
      },
      "message": "tracing/function-return-tracer: add the overrun field\n\nImpact: help to find the better depth of trace\n\nWe decided to arbitrary define the depth of function return trace as\n\"20\". Perhaps this is not enough. To help finding an optimal depth, we\nmeasure now the overrun: the number of functions that have been missed\nfor the current thread. By default this is not displayed, we have to\ndo set a particular flag on the return tracer: echo overrun \u003e\n/debug/tracing/trace_options And the overrun will be printed on the\nright.\n\nAs the trace shows below, the current 20 depth is not enough.\n\nupdate_wall_time+0x37f/0x8c0 -\u003e update_xtime_cache (345 ns) (Overruns: 2838)\nupdate_wall_time+0x384/0x8c0 -\u003e clocksource_get_next (1141 ns) (Overruns: 2838)\ndo_timer+0x23/0x100 -\u003e update_wall_time (3882 ns) (Overruns: 2838)\ntick_do_update_jiffies64+0xbf/0x160 -\u003e do_timer (5339 ns) (Overruns: 2838)\ntick_sched_timer+0x6a/0xf0 -\u003e tick_do_update_jiffies64 (7209 ns) (Overruns: 2838)\nvgacon_set_cursor_size+0x98/0x120 -\u003e native_io_delay (2613 ns) (Overruns: 274)\nvgacon_cursor+0x16e/0x1d0 -\u003e vgacon_set_cursor_size (33151 ns) (Overruns: 274)\nset_cursor+0x5f/0x80 -\u003e vgacon_cursor (36432 ns) (Overruns: 274)\ncon_flush_chars+0x34/0x40 -\u003e set_cursor (38790 ns) (Overruns: 274)\nrelease_console_sem+0x1ec/0x230 -\u003e up (721 ns) (Overruns: 274)\nrelease_console_sem+0x225/0x230 -\u003e wake_up_klogd (316 ns) (Overruns: 274)\ncon_flush_chars+0x39/0x40 -\u003e release_console_sem (2996 ns) (Overruns: 274)\ncon_write+0x22/0x30 -\u003e con_flush_chars (46067 ns) (Overruns: 274)\nn_tty_write+0x1cc/0x360 -\u003e con_write (292670 ns) (Overruns: 274)\nsmp_apic_timer_interrupt+0x2a/0x90 -\u003e native_apic_mem_write (330 ns) (Overruns: 274)\nirq_enter+0x17/0x70 -\u003e idle_cpu (413 ns) (Overruns: 274)\nsmp_apic_timer_interrupt+0x2f/0x90 -\u003e irq_enter (1525 ns) (Overruns: 274)\nktime_get_ts+0x40/0x70 -\u003e getnstimeofday (465 ns) (Overruns: 274)\nktime_get_ts+0x60/0x70 -\u003e set_normalized_timespec (436 ns) (Overruns: 274)\nktime_get+0x16/0x30 -\u003e ktime_get_ts (2501 ns) (Overruns: 274)\nhrtimer_interrupt+0x77/0x1a0 -\u003e ktime_get (3439 ns) (Overruns: 274)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nAcked-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "847e9170c77d3b4f57822ae1f4cf4f65c65a8254",
      "tree": "23f931fa2c3f9cf967deb638fed9804806d07357",
      "parents": [
        "72eb8c6747b49e41fd2b042510f03ac7c13426fc",
        "5f9021cfdc3524a4c5e3d7ae2d049eb7adcd6776"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 17 07:53:25 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 17 07:53:25 2008 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (27 commits)\n  rtnetlink: propagate error from dev_change_flags in do_setlink()\n  isdn: remove extra byteswap in isdn_net_ciscohdlck_slarp_send_reply\n  Phonet: refuse to send bigger than MTU packets\n  e1000e: fix IPMI traffic\n  e1000e: fix warn_on reload after phy_id error\n  phy: fix phy address bug\n  e100: fix dma error in direction for mapping\n  igb: use dev_printk instead of printk\n  qla3xxx: Cleanup: Fix link print statements.\n  igb: Use device_set_wakeup_enable\n  e1000: Use device_set_wakeup_enable\n  e1000e: Use device_set_wakeup_enable\n  via-velocity: enable perfect filtering for multicast packets\n  phy: Add support for Marvell 88E1118 PHY\n  mlx4_en: Pause parameters per port\n  phylib: fix premature freeing of struct mii_bus\n  atl1: Do not enumerate options unsupported by chip\n  atl1e: fix broken multicast by removing unnecessary crc inversion\n  gianfar: Fix DMA unmap invocations\n  net/ucc_geth: Fix oops in uec_get_ethtool_stats()\n  ...\n"
    },
    {
      "commit": "3f8e402f34ecc7d1d00b54703d3baa401b8bdd78",
      "tree": "b1f515a1c5426809c076dd854f9385efb750683b",
      "parents": [
        "072b40a15616fe6bea68466e6bffcfcbf5c8f26f",
        "e7d3737ea1b102030f44e96c97754101e41515f0",
        "227a837567e339c74d9d4243d03a29bd943a018c",
        "5821e1b74f0d08952cb5da4bfd2d9a388d8df58e"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 17 09:36:22 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Nov 17 09:36:22 2008 +0100"
      },
      "message": "Merge branches \u0027tracing/branch-tracer\u0027, \u0027tracing/ftrace\u0027, \u0027tracing/function-return-tracer\u0027, \u0027tracing/tracepoints\u0027 and \u0027tracing/urgent\u0027 into tracing/core\n"
    },
    {
      "commit": "7e066fb870fcd1025ec3ba7bbde5d541094f4ce1",
      "tree": "52acda06de25c029b9834110d7bf6b4abc50353b",
      "parents": [
        "32f85742778dfc2c74975cf0b9f5bdb13470cb32"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:47 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:36 2008 +0100"
      },
      "message": "tracepoints: add DECLARE_TRACE() and DEFINE_TRACE()\n\nImpact: API *CHANGE*. Must update all tracepoint users.\n\nAdd DEFINE_TRACE() to tracepoints to let them declare the tracepoint\nstructure in a single spot for all the kernel. It helps reducing memory\nconsumption, especially when declaring a lot of tracepoints, e.g. for\nkmalloc tracing.\n\n*API CHANGE WARNING*: now, DECLARE_TRACE() must be used in headers for\ntracepoint declarations rather than DEFINE_TRACE(). This is the sane way\nto do it. The name previously used was misleading.\n\nUpdates scheduler instrumentation to follow this API change.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5f382671def7cb9c0f4b75d586dc5f60dca5e1c3",
      "tree": "ee90d469b24a893c8ec777775a43d41cdfb6f76f",
      "parents": [
        "c420970ef476d7d68df119711700666224001f43"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:45 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:34 2008 +0100"
      },
      "message": "tracepoints: do not put arguments in name\n\nImpact: cleanup\n\nThat\u0027s overkill, takes space. We have a global tracepoint registery in\nheader files anyway.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c420970ef476d7d68df119711700666224001f43",
      "tree": "c10ebb11a03199f99d779472037bd49129b43abb",
      "parents": [
        "da7b3eab167091693ad215ad7692f7d0d24d1356"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:44 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:33 2008 +0100"
      },
      "message": "tracepoints: use unregister return value\n\nImpact: bugfix.\n\nUnregistering a tracepoint can fail. Return the error value.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "da7b3eab167091693ad215ad7692f7d0d24d1356",
      "tree": "a879fc523166fdaf196fe128e11246996eda0480",
      "parents": [
        "de0baf9ad661ac630a45a50ea1717cc4f4b33ace"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:43 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:32 2008 +0100"
      },
      "message": "tracepoints: use rcu_*_sched_notrace\n\nMake sure tracepoints can be called within ftrace callbacks.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a0bca6a59ebc052751eed6e3b182c153495672d8",
      "tree": "657ca4a1c63cb6303a28a7b512a99af592e45a20",
      "parents": [
        "c1df1bd2c4d4b20c83755a0f41956b57aec4842a"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:40 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:30 2008 +0100"
      },
      "message": "markers: create DEFINE_MARKER and GET_MARKER (new API)\n\nImpact: new API.\n\nAllow markers to be used only for declaration, without function call\nassociated. Useful to create specialized probes.\n\nThe problem we had is that two function calls were required when one\nwanted to put a marker in a tracepoint probe. Now the marker can be used\nsimply for trace data type declaration, leaving the trace write work\nwithin the tracepoint probe without any additional function call.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c1df1bd2c4d4b20c83755a0f41956b57aec4842a",
      "tree": "08761333b0850c6acfb31d72d7777dccc135ebde",
      "parents": [
        "a419246ac7c2d9282dfd843103702895bb3f3fd7"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:39 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:29 2008 +0100"
      },
      "message": "markers: auto enable tracepoints (new API : trace_mark_tp())\n\nImpact: new API\n\nAdd a new API trace_mark_tp(), which declares a marker within a\ntracepoint probe. When the marker is activated, the tracepoint is\nautomatically enabled.\n\nNo branch test is used at the marker site, because it would be a\nduplicate of the branch already present in the tracepoint.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e3f8c4b9117d70127a8cab480af83bbfd048a28b",
      "tree": "9a752539f2d940d9ac1f8c8a855ed6678cbd4d4e",
      "parents": [
        "2bdba316c989da028a59becf7516c6350ce3c173"
      ],
      "author": {
        "name": "Arnaldo Carvalho de Melo",
        "email": "acme@redhat.com",
        "time": "Fri Nov 14 17:47:36 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:27 2008 +0100"
      },
      "message": "markers: add missing stdargs.h include, needed due to va_list usage\n\nImpact: build fix (for future changes)\n\nThat seemed to cause built issue when marker.h is included early, even\nthough stdargs.h is included in kernel.h.\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "954e100d2275cb2f150f2b18d5cddcdf67b956ac",
      "tree": "9142df2ddbb0715bd1ffcc6aa86fa57abab5663b",
      "parents": [
        "c91add5fa68ea9b1f2923b3788c5dae0e60e1f6b"
      ],
      "author": {
        "name": "Mathieu Desnoyers",
        "email": "mathieu.desnoyers@polymtl.ca",
        "time": "Fri Nov 14 17:47:34 2008 -0500"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 09:01:25 2008 +0100"
      },
      "message": "rcu: add rcu_read_*_sched_notrace()\n\nImpact: new API, useful for tracepoints and markers.\n\nAdd _notrace version to rcu_read_*_sched().\n\nSigned-off-by: Mathieu Desnoyers \u003cmathieu.desnoyers@polymtl.ca\u003e\nReviewed-by: Paul E McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "e7d3737ea1b102030f44e96c97754101e41515f0",
      "tree": "44fdc3dea100d1fa639e6ba3cb1bfca2ab40e70b",
      "parents": [
        "b01c746617da5e260803eb10ed64ca043e9a1241"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sun Nov 16 06:02:06 2008 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:57:38 2008 +0100"
      },
      "message": "tracing/function-return-tracer: support for dynamic ftrace on function return tracer\n\nThis patch adds the support for dynamic tracing on the function return tracer.\nThe whole difference with normal dynamic function tracing is that we don\u0027t need\nto hook on a particular callback. The only pro that we want is to nop or set\ndynamically the calls to ftrace_caller (which is ftrace_return_caller here).\n\nSome security checks ensure that we are not trying to launch dynamic tracing for\nreturn tracing while normal function tracing is already running.\n\nAn example of trace with getnstimeofday set as a filter:\n\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (2283 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1396 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1825 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1426 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1464 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1524 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1382 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1434 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1464 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1502 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1404 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1397 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1051 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1314 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1344 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1163 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1390 ns)\nktime_get_ts+0x22/0x50 -\u003e getnstimeofday (1374 ns)\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "31e889098a80ceb3e9e3c555d522b2686a6663c6",
      "tree": "2acb73507de4191d4a9aa5ccf08fa24e7044c89e",
      "parents": [
        "d51ad7ac48f991c4a8834485727efa99a691cb87"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Nov 14 16:21:19 2008 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Nov 16 07:36:02 2008 +0100"
      },
      "message": "ftrace: pass module struct to arch dynamic ftrace functions\n\nImpact: allow archs more flexibility on dynamic ftrace implementations\n\nDynamic ftrace has largly been developed on x86. Since x86 does not\nhave the same limitations as other architectures, the ftrace interaction\nbetween the generic code and the architecture specific code was not\nflexible enough to handle some of the issues that other architectures\nhave.\n\nMost notably, module trampolines. Due to the limited branch distance\nthat archs make in calling kernel core code from modules, the module\nload code must create a trampoline to jump to what will make the\nlarger jump into core kernel code.\n\nThe problem arises when this happens to a call to mcount. Ftrace checks\nall code before modifying it and makes sure the current code is what\nit expects. Right now, there is not enough information to handle modifying\nmodule trampolines.\n\nThis patch changes the API between generic dynamic ftrace code and\nthe arch dependent code. There is now two functions for modifying code:\n\n  ftrace_make_nop(mod, rec, addr) - convert the code at rec-\u003eip into\n       a nop, where the original text is calling addr. (mod is the\n       module struct if called by module init)\n\n  ftrace_make_caller(rec, addr) - convert the code rec-\u003eip that should\n       be a nop into a caller to addr.\n\nThe record \"rec\" now has a new field called \"arch\" where the architecture\ncan add any special attributes to each call site record.\n\nSigned-off-by: Steven Rostedt \u003csrostedt@redhat.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b42ccbc521f2acad48eb96b32883efe2f3e16b45",
      "tree": "85f45ef13f3c409850431a52fd5e04ff3e826e0c",
      "parents": [
        "d659fc14cbd39fef625072819c6968044975fda7",
        "131d3a7a009d56a96cc7117b4e9d0c90c2e2a1dc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 19:02:48 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 19:02:48 2008 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:\n  HID: don\u0027t grab devices with no input\n  HID: fix radio-mr800 hidquirks\n  HID: fix kworld fm700 radio hidquirks\n  HID: fix start/stop cycle in usbhid driver\n  HID: use single threaded work queue for hid_compat\n  HID: map macbook keys for \"Expose\" and \"Dashboard\"\n  HID: support for new unibody macbooks\n  HID: fix locking in hidraw_open()\n"
    },
    {
      "commit": "8f7b0ba1c853919b85b54774775f567f30006107",
      "tree": "1acd2b7ed5ed0de3eecfff9da5da4e779731f8a8",
      "parents": [
        "0d3b71009737511ea937ac405205fd8214b898bb"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Sat Nov 15 01:15:43 2008 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 12:26:44 2008 -0800"
      },
      "message": "Fix inotify watch removal/umount races\n\nInotify watch removals suck violently.\n\nTo kick the watch out we need (in this order) inode-\u003einotify_mutex and\nih-\u003emutex.  That\u0027s fine if we have a hold on inode; however, for all\nother cases we need to make damn sure we don\u0027t race with umount.  We can\n*NOT* just grab a reference to a watch - inotify_unmount_inodes() will\nhappily sail past it and we\u0027ll end with reference to inode potentially\noutliving its superblock.\n\nIdeally we just want to grab an active reference to superblock if we\ncan; that will make sure we won\u0027t go into inotify_umount_inodes() until\nwe are done.  Cleanup is just deactivate_super().\n\nHowever, that leaves a messy case - what if we *are* racing with\numount() and active references to superblock can\u0027t be acquired anymore?\nWe can bump -\u003es_count, grab -\u003es_umount, which will almost certainly wait\nuntil the superblock is shut down and the watch in question is pining\nfor fjords.  That\u0027s fine, but there is a problem - we might have hit the\nwindow between -\u003es_active getting to 0 / -\u003es_count - below S_BIAS (i.e.\nthe moment when superblock is past the point of no return and is heading\nfor shutdown) and the moment when deactivate_super() acquires\n-\u003es_umount.\n\nWe could just do drop_super() yield() and retry, but that\u0027s rather\nantisocial and this stuff is luser-triggerable.  OTOH, having grabbed\n-\u003es_umount and having found that we\u0027d got there first (i.e.  that\n-\u003es_root is non-NULL) we know that we won\u0027t race with\ninotify_umount_inodes().\n\nSo we could grab a reference to watch and do the rest as above, just\nwith drop_super() instead of deactivate_super(), right? Wrong.  We had\nto drop ih-\u003emutex before we could grab -\u003es_umount.  So the watch\ncould\u0027ve been gone already.\n\nThat still can be dealt with - we need to save watch-\u003ewd, do idr_find()\nand compare its result with our pointer.  If they match, we either have\nthe damn thing still alive or we\u0027d lost not one but two races at once,\nthe watch had been killed and a new one got created with the same -\u003ewd\nat the same address.  That couldn\u0027t have happened in inotify_destroy(),\nbut inotify_rm_wd() could run into that.  Still, \"new one got created\"\nis not a problem - we have every right to kill it or leave it alone,\nwhatever\u0027s more convenient.\n\nSo we can use idr_find(...) \u003d\u003d watch \u0026\u0026 watch-\u003einode-\u003ei_sb \u003d\u003d sb as\n\"grab it and kill it\" check.  If it\u0027s been our original watch, we are\nfine, if it\u0027s a newcomer - nevermind, just pretend that we\u0027d won the\nrace and kill the fscker anyway; we are safe since we know that its\nsuperblock won\u0027t be going away.\n\nAnd yes, this is far beyond mere \"not very pretty\"; so\u0027s the entire\nconcept of inotify to start with.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "537a2f889ac847468c9aa040910c247b218302a7",
      "tree": "ea21b1dfd11e4234b108059c84c2a42887dc9254",
      "parents": [
        "fab349cceb25f92bac1400601c5ef8345a166958",
        "272966c070237c8cb540fe67e06df51bc6ea9cc2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 12:10:32 2008 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Nov 15 12:10:32 2008 -0800"
      },
      "message": "Merge branch \u0027sh/for-2.6.28\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6\n\n* \u0027sh/for-2.6.28\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:\n  serial: sh-sci: Reorder the SCxTDR write after the TDxE clear.\n  sh: __copy_user function can corrupt the stack in case of exception\n  sh: Fixed the TMU0 reload value on resume\n  sh: Don\u0027t factor in PAGE_OFFSET for valid_phys_addr_range() check.\n  sh: early printk port type fix\n  i2c: fix i2c-sh_mobile rx underrun\n  sh: Provide a sane valid_phys_addr_range() to prevent TLB reset with PMB.\n  usb: r8a66597-hcd: fix wrong data access in SuperH on-chip USB\n  fix sci type for SH7723\n  serial: sh-sci: fix cannot work SH7723 SCIFA\n  sh: Handle fixmap TLB eviction more coherently.\n"
    }
  ],
  "next": "d091c2f58ba32029495a933b721e8e02fbd12caa"
}
