)]}'
{
  "log": [
    {
      "commit": "1551260d1f0fb1d23f264582092b862fce5e2dbd",
      "tree": "d06a0d20c74adda44a78bc2dc9a3e3016de380d6",
      "parents": [
        "c93f216b5b985a12a18323e5ca2eb01db3d2f000",
        "5e34437840d33554f69380584311743b39e8fbeb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:11:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:11:07 2009 -0700"
      },
      "message": "Merge branch \u0027core/softlockup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core/softlockup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  softlockup: make DETECT_HUNG_TASK default depend on DETECT_SOFTLOCKUP\n  softlockup: move \u0027one\u0027 to the softlockup section in sysctl.c\n  softlockup: ensure the task has been switched out once\n  softlockup: remove timestamp checking from hung_task\n  softlockup: convert read_lock in hung_task to rcu_read_lock\n  softlockup: check all tasks in hung_task\n  softlockup: remove unused definition for spawn_softlockup_task\n  softlockup: fix potential race in hung_task when resetting timeout\n  softlockup: fix to allow compiling with !DETECT_HUNG_TASK\n  softlockup: decouple hung tasks check from softlockup detection\n"
    },
    {
      "commit": "c93f216b5b985a12a18323e5ca2eb01db3d2f000",
      "tree": "45fa35b290005f8b241dd76b6342875b81432fc3",
      "parents": [
        "c61b79b6ef266890954213a701d8f6021d8c1289",
        "ab3c9c686e22ab264269337ce7b75d9760211198"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:10:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:10:10 2009 -0700"
      },
      "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  branch tracer, intel-iommu: fix build with CONFIG_BRANCH_TRACER\u003dy\n  branch tracer: Fix for enabling branch profiling makes sparse unusable\n  ftrace: Correct a text align for event format output\n  Update /debug/tracing/README\n  tracing/ftrace: alloc the started cpumask for the trace file\n  tracing, x86: remove duplicated #include\n  ftrace: Add check of sched_stopped for probe_sched_wakeup\n  function-graph: add proper initialization for init task\n  tracing/ftrace: fix missing include string.h\n  tracing: fix incorrect return type of ns2usecs()\n  tracing: remove CALLER_ADDR2 from wakeup tracer\n  blktrace: fix pdu_len when tracing packet command requests\n  blktrace: small cleanup in blk_msg_write()\n  blktrace: NUL-terminate user space messages\n  tracing: move scripts/trace/power.pl to scripts/tracing/power.pl\n"
    },
    {
      "commit": "c61b79b6ef266890954213a701d8f6021d8c1289",
      "tree": "9b000a7dae5a782a0d667137ab43e4f1bea70d58",
      "parents": [
        "2b2ec7554cf7ec5e4412f89a5af6abe8ce950700",
        "9efe21cb82b5dbe3b0b2ae4de4eccc64ecb94e95"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:07:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 14:07:52 2009 -0700"
      },
      "message": "Merge branch \u0027irq/threaded\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq/threaded\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: fix devres.o build for GENERIC_HARDIRQS\u003dn\n  genirq: provide old request_irq() for CONFIG_GENERIC_HARDIRQ\u003dn\n  genirq: threaded irq handlers review fixups\n  genirq: add support for threaded interrupts to devres\n  genirq: add threaded interrupt handler support\n"
    },
    {
      "commit": "de5bd88d5a5cce3cacea904d3503e5ebdb3852a2",
      "tree": "da24ac8b38d371ee03a21ed0f3647c518689ebd3",
      "parents": [
        "e579abeb58eb4b8d7321c6eb44dd9e2d0cbaebaa"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 06 19:01:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:08 2009 -0700"
      },
      "message": "kprobes: support per-kprobe disabling\n\nAdd disable_kprobe() and enable_kprobe() to disable/enable kprobes\ntemporarily.\n\ndisable_kprobe() asynchronously disables probe handlers of specified\nkprobe.  So, after calling it, some handlers can be called at a while.\nenable_kprobe() enables specified kprobe.\n\naggr_pre_handler and aggr_post_handler check disabled probes.  On the\nother hand aggr_break_handler and aggr_fault_handler don\u0027t check it\nbecause these handlers will be called while executing pre or post handlers\nand usually those help error handling.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e579abeb58eb4b8d7321c6eb44dd9e2d0cbaebaa",
      "tree": "56ebd4b392408ddba88a5da54004fd0a1bfbccf9",
      "parents": [
        "cc00e9cfe0e5c4c31057c722e49fdf2c76dd5953"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 06 19:01:01 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:08 2009 -0700"
      },
      "message": "kprobes: rename kprobe_enabled to kprobes_all_disarmed\n\nRename kprobe_enabled to kprobes_all_disarmed and invert logic due to\navoiding naming confusion from per-probe disabling.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99081ab553d6a88dd6b3774af5eef94dbb8faad7",
      "tree": "a78c2a07ec780b110e49939c8b954e2468398e16",
      "parents": [
        "b918e5e60d775549478e4268155142156a95aa17"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 06 19:00:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:08 2009 -0700"
      },
      "message": "kprobes: move EXPORT_SYMBOL_GPL just after function definitions\n\nClean up positions of EXPORT_SYMBOL_GPL in kernel/kprobes.c according to\ncheckpatch.pl.\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b918e5e60d775549478e4268155142156a95aa17",
      "tree": "92e7d435088772803b24b1d9901ea3e17e6a9189",
      "parents": [
        "96a6d9aa096aeb758273a8fb6388c279ecef5e7e"
      ],
      "author": {
        "name": "Masami Hiramatsu",
        "email": "mhiramat@redhat.com",
        "time": "Mon Apr 06 19:00:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:07 2009 -0700"
      },
      "message": "kprobes: cleanup aggr_kprobe related code\n\nCurrently, kprobes can disable all probes at once, but can\u0027t disable it\nindividually (not unregister, just disable an kprobe, because\nunregistering needs to wait for scheduler synchronization).  These patches\nintroduce APIs for on-the-fly per-probe disabling and re-enabling by\ndis-arming/re-arming its breakpoint instruction.\n\nThis patch:\n\nChange old_p to ap in add_new_kprobe() for readability, copy flags member\nin add_aggr_kprobe(), and simplify the code flow of\nregister_aggr_kprobe().\n\nSigned-off-by: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nAcked-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fafd688e4c0c34da0f3de909881117d374e4c7af",
      "tree": "5c61d499b96d78f5b56507a5d34af0ccd7c69060",
      "parents": [
        "a56ed663047fc9927ec8b35750d23ece54f85dc7"
      ],
      "author": {
        "name": "Peter W Morreale",
        "email": "pmorreale@novell.com",
        "time": "Mon Apr 06 19:00:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Apr 07 08:31:03 2009 -0700"
      },
      "message": "mm: add /proc controls for pdflush threads\n\nAdd /proc entries to give the admin the ability to control the minimum and\nmaximum number of pdflush threads.  This allows finer control of pdflush\non both large and small machines.\n\nThe rationale is simply one size does not fit all.  Admins on large and/or\nsmall systems may want to tune the min/max pdflush thread count to best\nsuit their needs.  Right now the min/max is hardcoded to 2/8.  While\nprobably a fair estimate for smaller machines, large machines with large\nnumbers of CPUs and large numbers of filesystems/block devices may benefit\nfrom larger numbers of threads working on different block devices.\n\nEven if the background flushing algorithm is radically changed, it is\nstill likely that multiple threads will be involved and admins would still\ndesire finer control on the min/max other than to have to recompile the\nkernel.\n\nThe patch adds \u0027/proc/sys/vm/nr_pdflush_threads_min\u0027 and\n\u0027/proc/sys/vm/nr_pdflush_threads_max\u0027 with r/w permissions.\n\nThe minimum value for nr_pdflush_threads_min is 1 and the maximum value is\nthe current value of nr_pdflush_threads_max.  This minimum is required\nsince additional thread creation is performed in a pdflush thread itself.\n\nThe minimum value for nr_pdflush_threads_max is the current value of\nnr_pdflush_threads_min and the maximum value can be 1000.\n\nDocumentation/sysctl/vm.txt is also updated.\n\n[akpm@linux-foundation.org: fix comment, fix whitespace, use __read_mostly]\nSigned-off-by: Peter W Morreale \u003cpmorreale@novell.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1bbe2a83ab68e5cf8c66c372c7cb3b51910c2cfe",
      "tree": "6973301d436978f1cd2324927ee40b60ce91347d",
      "parents": [
        "bc2b6871c17b3aff79fb14e1a1c06c5f5a187f76"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Fri Apr 03 18:24:46 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:02:42 2009 +0200"
      },
      "message": "ftrace: Correct a text align for event format output\n\nIf we cat debugfs/tracing/events/ftrace/bprint/format, we\u0027ll see:\nname: bprint\nID: 6\nformat:\n\tfield:unsigned char common_type;\toffset:0;\tsize:1;\n\tfield:unsigned char common_flags;\toffset:1;\tsize:1;\n\tfield:unsigned char common_preempt_count;\toffset:2;\tsize:1;\n\tfield:int common_pid;\toffset:4;\tsize:4;\n\tfield:int common_tgid;\toffset:8;\tsize:4;\n\n\tfield:unsigned long ip;\toffset:12;\tsize:4;\n\tfield:char * fmt;\toffset:16;\tsize:4;\n\tfield: char buf;\toffset:20;\tsize:0;\n\nprint fmt: \"%08lx (%d) fmt:%p %s\"\n\nThere is an inconsistent blank before char buf.\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nLKML-Reference: \u003c49D5E3EE.70201@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "bc2b6871c17b3aff79fb14e1a1c06c5f5a187f76",
      "tree": "2be32adf56b100f5bc565bbf641651a8067f8608",
      "parents": [
        "b0dfa978c7a1699fb3506fbfcba0b6a5c4bd17ae"
      ],
      "author": {
        "name": "Nikanth Karthikesan",
        "email": "knikanth@suse.de",
        "time": "Mon Mar 23 11:58:31 2009 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:02:36 2009 +0200"
      },
      "message": "Update /debug/tracing/README\n\nSome of the tracers have been renamed, which was not updated in the in-kernel\nrun-time README file. Update it.\n\nSigned-off-by: Nikanth Karthikesan \u003cknikanth@suse.de\u003e\nLKML-Reference: \u003c200903231158.32151.knikanth@suse.de\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b0dfa978c7a1699fb3506fbfcba0b6a5c4bd17ae",
      "tree": "4e52215e4d2f67c7063f813b9d788763d6f341a8",
      "parents": [
        "5ab8026a3016fbed5c73aa070d9f6989cf791099"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Apr 01 22:53:08 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:02:03 2009 +0200"
      },
      "message": "tracing/ftrace: alloc the started cpumask for the trace file\n\nImpact: fix a crash while cat trace file\n\nCurrently we are using a cpumask to remind each cpu where a\ntrace occured. It lets us notice the user that a cpu just had\nits first trace.\n\nBut on latest -tip we have the following crash once we cat the trace\nfile:\n\nIP: [\u003cc0270c4a\u003e] print_trace_fmt+0x45/0xe7\n*pde \u003d 00000000\nOops: 0000 [#1] PREEMPT SMP\nlast sysfs file: /sys/class/net/eth0/carrier\nPid: 3897, comm: cat Not tainted (2.6.29-tip-02825-g0f22972-dirty #81)\nEIP: 0060:[\u003cc0270c4a\u003e] EFLAGS: 00010297 CPU: 0\nEIP is at print_trace_fmt+0x45/0xe7\nEAX: 00000000 EBX: 00000000 ECX: c12d9e98 EDX: ccdb7010\nESI: d31f4000 EDI: 00322401 EBP: d31f3f10 ESP: d31f3efc\nDS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068\nProcess cat (pid: 3897, ti\u003dd31f2000 task\u003dd3b3cf20 task.ti\u003dd31f2000)\nStack:\nd31f4080 ccdb7010 d31f4000 d691fe70 ccdb7010 d31f3f24 c0270e5c d31f4000\nd691fe70 d31f4000 d31f3f34 c02718e8 c12d9e98 d691fe70 d31f3f70 c02bfc33\n00001000 09130000 d3b46e00 d691fe98 00000000 00000079 00000001 00000000\nCall Trace:\n[\u003cc0270e5c\u003e] ? print_trace_line+0x170/0x17c\n[\u003cc02718e8\u003e] ? s_show+0xa7/0xbd\n[\u003cc02bfc33\u003e] ? seq_read+0x24a/0x327\n[\u003cc02bf9e9\u003e] ? seq_read+0x0/0x327\n[\u003cc02ab18b\u003e] ? vfs_read+0x86/0xe1\n[\u003cc02ab289\u003e] ? sys_read+0x40/0x65\n[\u003cc0202d8f\u003e] ? sysenter_do_call+0x12/0x3c\nCode: 00 00 00 89 45 ec f7 c7 00 20 00 00 89 55 f0 74 4e f6 86 98 10 00 00 02 74 45 8b 86 8c 10 00 00 8b 9e a8 10 00 00 e8 52 f3 ff ff \u003c0f\u003e a3 03 19 c0 85 c0 75 2b 8b 86 8c 10 00 00 8b 9e a8 10 00 00\nEIP: [\u003cc0270c4a\u003e] print_trace_fmt+0x45/0xe7 SS:ESP 0068:d31f3efc\nCR2: 0000000000000000\n---[ end trace aa9cf38e5ebed9dd ]---\n\nThis is because we alloc the iter-\u003estarted cpumask on tracing_pipe_open but\nnot on tracing_open.\n\nIt hadn\u0027t been noticed until now because we need to have ring buffer overruns\nto activate the starting of cpu buffer detection.\n\nAlso, we need a check to not print the messagge for the first trace on the file.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1238619188-6109-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8bcae09b93e7f96f700b6bb372c2b3f2b36636dc",
      "tree": "035ba58e3d2faaf639da6225b52c6d8428ac9307",
      "parents": [
        "5ac9f62267dc92c7735c642a5942d9e6c1190308"
      ],
      "author": {
        "name": "Zhaolei",
        "email": "zhaolei@cn.fujitsu.com",
        "time": "Tue Mar 31 15:24:51 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:01:11 2009 +0200"
      },
      "message": "ftrace: Add check of sched_stopped for probe_sched_wakeup\n\nThe wakeup tracing in sched_switch does not stop when a user\ndisables tracing. This is because the probe_sched_wakeup() is missing\nthe check to prevent the wakeup from being traced.\n\nSigned-off-by: Zhao Lei \u003czhaolei@cn.fujitsu.com\u003e\nLKML-Reference: \u003c49D1C543.3010307@cn.fujitsu.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5f0c6c03c5fee91c02c696bc9bf4c0d41392abe7",
      "tree": "54d45e35314d28d835b85ed623a79c3b5501affa",
      "parents": [
        "cf8e3474654f20433aab9aa35826d43b5f245008"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Mar 27 14:22:10 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 14:00:18 2009 +0200"
      },
      "message": "tracing/ftrace: fix missing include string.h\n\nBuilding a kernel with tracing can raise the following warning on\ntip/master:\n\nkernel/trace/trace.c:1249: error: implicit declaration of function \u0027vbin_printf\u0027\n\nWe are missing an include to string.h\n\nReported-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c1238160130-7437-1-git-send-email-fweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "cf8e3474654f20433aab9aa35826d43b5f245008",
      "tree": "bbb3e87ca324ae4192fd524c0777047ee075c5d9",
      "parents": [
        "301fd748e2c81e78e74edbc694a64caa7b95dda2"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Mon Mar 30 13:48:00 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:59:23 2009 +0200"
      },
      "message": "tracing: fix incorrect return type of ns2usecs()\n\nImpact: fix time output bug in 32bits system\n\nns2usecs() returns \u0027long\u0027, it\u0027s incorrect.\n\n(In i386)\n...\n          \u003cidle\u003e-0     [000]   521.442100: _spin_lock \u003c-tick_do_update_jiffies64\n          \u003cidle\u003e-0     [000]   521.442101: do_timer \u003c-tick_do_update_jiffies64\n          \u003cidle\u003e-0     [000]   521.442102: update_wall_time \u003c-do_timer\n          \u003cidle\u003e-0     [000]   521.442102: update_xtime_cache \u003c-update_wall_time\n....\n(It always print the time less than 2200 seconds besides ...)\nBecause \u0027long\u0027 is 32bits in i386. ( (1\u003c\u003c31) useconds is about 2200 seconds)\n\n...\n          \u003cidle\u003e-0     [001] 4154502640.134759: rcu_bh_qsctr_inc \u003c-__do_softirq\n          \u003cidle\u003e-0     [001] 4154502640.134760: _local_bh_enable \u003c-__do_softirq\n          \u003cidle\u003e-0     [001] 4154502640.134761: idle_cpu \u003c-irq_exit\n...\n(very large value)\nBecause \u0027long\u0027 is a signed type and it is 32bits in i386.\n\nChanges in v2:\nreturn \u0027unsigned long long\u0027 instead of \u0027cycle_t\u0027\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nLKML-Reference: \u003c49D05D10.4030009@cn.fujitsu.com\u003e\nReported-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "301fd748e2c81e78e74edbc694a64caa7b95dda2",
      "tree": "563f5e7796b451fbefb49fa441f18374a4a761a1",
      "parents": [
        "a053958f073740219df1da596b42bfefdab634c4"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Fri Apr 03 11:12:23 2009 -0400"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:58:54 2009 +0200"
      },
      "message": "tracing: remove CALLER_ADDR2 from wakeup tracer\n\nManeesh Soni was getting a crash when running the wakeup tracer.\nWe debugged it down to the recording of the function with the\nCALLER_ADDR2 macro.  This is used to get the location of the caller\nto schedule.\n\nBut the problem comes when schedule is called by assmebly. In the case\nthat Maneesh had, retint_careful would call schedule. But retint_careful\ndoes not set up a proper frame pointer. CALLER_ADDR2 is defined as\n__builtin_return_address(2). This produces the following assembly in\nthe wakeup tracer code.\n\n   mov    0x0(%rbp),%rcx  \u003c--- get the frame pointer of the caller\n   mov    %r14d,%r8d\n   mov    0xf2de8e(%rip),%rdi\n\n   mov    0x8(%rcx),%rsi  \u003c-- this is __builtin_return_address(1)\n   mov    0x28(%rdi,%rax,8),%rbx\n\n   mov    (%rcx),%rax  \u003c-- get the frame pointer of the caller\u0027s caller\n   mov    %r12,%rcx\n   mov    0x8(%rax),%rdx \u003c-- this is __builtin_return_address(2)\n\nAt the reading of 0x8(%rax) Maneesh\u0027s machine would take a fault.\nThe reason is that retint_careful did not set up the return address\nand the content of %rax here was zero.\n\nTo verify this, I sent Maneesh a patch to create a frame pointer\nin retint_careful. He ran the test again but this time he would take\nthe same type of fault from sysret_careful. The retint_careful was no\nlonger an issue, but there are other callers that still have issues.\n\nInstead of adding frame pointers for all callers to schedule (in possibly\nall archs), it is much safer to simply not use CALLER_ADDR2. This\nloses out on knowing what called schedule, but the function tracer\nwill help there if needed.\n\nReported-by: Maneesh Soni \u003cmaneesh@in.ibm.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a053958f073740219df1da596b42bfefdab634c4",
      "tree": "f681f808db3d5df5d7987199c8224031982bcf3f",
      "parents": [
        "4fafd5b03875612a24a5b17dac0c63217a65de42",
        "e2494e1b42ebac402324105d57646489d19e2b01"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:40:49 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 13:40:55 2009 +0200"
      },
      "message": "Merge branch \u0027tracing/blktrace-fixes\u0027 into tracing/urgent\n\nMerge reason: this used to be a tracing/blktrace-v2 devel topic still\n              cooking during the merge window - has propagated to fixes\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "5e34437840d33554f69380584311743b39e8fbeb",
      "tree": "e081135619ee146af5efb9ee883afca950df5757",
      "parents": [
        "77d05632baee21b1cef8730d7c06aa69601e4dca",
        "d508afb437daee7cf07da085b635c44a4ebf9b38"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 11:15:40 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Apr 07 11:15:40 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into core/softlockup\n\nConflicts:\n\tkernel/sysctl.c\n"
    },
    {
      "commit": "2e45e77787c9d0720b046eb69856edf43b17e33e",
      "tree": "56c2bd470e3eec849bb8bb0a2263a6ef0b4b7694",
      "parents": [
        "d508afb437daee7cf07da085b635c44a4ebf9b38"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Apr 07 17:12:43 2009 +0930"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Apr 07 17:12:43 2009 +0930"
      },
      "message": "Revert \"module: remove the SHF_ALLOC flag on the __versions section.\"\n\nThis reverts commit 9cb610d8e35fe3ec95a2fe2030b02f85aeea83c1.\n\nThis was an impressively stupid patch.  Firstly, we reset the SHF_ALLOC\nflag lower down in the same function, so the patch was useless.  Even\nbetter, find_sec() ignores sections with SHF_ALLOC not set, so\nit breaks CONFIG_MODVERSIONS\u003dy with CONFIG_MODULE_FORCE_LOAD\u003dn, which\nrefuses to load the module since it can\u0027t find the __versions section.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "432870dab85a2f69dc417022646cb9a70acf7f94",
      "tree": "4c9c08d7fb77744b1fd04615a76ab0a9105fad07",
      "parents": [
        "22ae77bc7ac115b9d518d5cbc13d39317079b2b0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Apr 06 16:16:02 2009 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 14:57:23 2009 -0700"
      },
      "message": "exit_notify: kill the wrong capable(CAP_KILL) check\n\nThe CAP_KILL check in exit_notify() looks just wrong, kill it.\n\nWhatever logic we have to reset -\u003eexit_signal, the malicious user\ncan bypass it if it execs the setuid application before exiting.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cd5f9a4c3199b090e91ea0064cb110985ba54814",
      "tree": "67d4da296ab85a96f28580420bf4cdef84d3aaaa",
      "parents": [
        "609862be074cc20e007c640fd936ffe798b41abc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:38:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:38:46 2009 -0700"
      },
      "message": "kernel/sysctl.c: avoid annoying warnings\n\nSome of the limit constants are used only depending on some complex\nconfiguration dependencies, yet it\u0027s not worth making the simple\nvariables depend on those configuration details.  Just mark them as\nperhaps not being unused, and avoid the warning.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "609862be074cc20e007c640fd936ffe798b41abc",
      "tree": "2ebcacf036fce1b075fe267f608b6abe3f196c67",
      "parents": [
        "12fe32e4f942ac5c71a4ab70b039fee65c0dc29d",
        "eedeeabdeeadb016b8c783e3620d06b98d0cb4e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:37:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:37:30 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  lockdep: add stack dumps to asserts\n  hrtimer: fix rq-\u003elock inversion (again)\n"
    },
    {
      "commit": "12fe32e4f942ac5c71a4ab70b039fee65c0dc29d",
      "tree": "b0878e49e9fab1fd154fde1dd57057391831b668",
      "parents": [
        "a63856252d2112e7c452696037a86ceb12f47f80",
        "2121db74ba0fd2259f0e2265511684fadda9ac49"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:30:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Apr 06 13:30:00 2009 -0700"
      },
      "message": "Merge branch \u0027kmemtrace-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027kmemtrace-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  kmemtrace: trace kfree() calls with NULL or zero-length objects\n  kmemtrace: small cleanups\n  kmemtrace: restore original tracing data binary format, improve ABI\n  kmemtrace: kmemtrace_alloc() must fill type_id\n  kmemtrace: use tracepoints\n  kmemtrace, rcu: don\u0027t include unnecessary headers, allow kmemtrace w/ tracepoints\n  kmemtrace, rcu: fix rcupreempt.c data structure dependencies\n  kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies\n  kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies\n  kmemtrace, mm: fix slab.h dependency problem in mm/failslab.c\n  kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_unlzma.c\n  kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_bunzip2.c\n  kmemtrace, kbuild: fix slab.h dependency problem in lib/decompress_inflate.c\n  kmemtrace, squashfs: fix slab.h dependency problem in squasfs\n  kmemtrace, befs: fix slab.h dependency problem\n  kmemtrace, security: fix linux/key.h header file dependencies\n  kmemtrace, fs: fix linux/fdtable.h header file dependencies\n  kmemtrace, fs: uninline simple_transaction_set()\n  kmemtrace, fs, security: move alloc_secdata() and free_secdata() to linux/security.h\n"
    },
    {
      "commit": "9efe21cb82b5dbe3b0b2ae4de4eccc64ecb94e95",
      "tree": "7ff8833745d2f268f897f6fa4a27263b4a572245",
      "parents": [
        "de18836e447c2dc30120c0919b8db8ddc0401cc4",
        "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 06 01:41:22 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Apr 06 01:41:22 2009 +0200"
      },
      "message": "Merge branch \u0027linus\u0027 into irq/threaded\n\nConflicts:\n\tinclude/linux/irq.h\n\tkernel/irq/handle.c\n"
    },
    {
      "commit": "0221c81b1b8eb0cbb6b30a0ced52ead32d2b4e4c",
      "tree": "fe96cf58638e23d123d43eab2f6c56d1af341d9c",
      "parents": [
        "48f286a28fe13fcbc510720fcffb872a184b51dd",
        "def57543418a5f47debae28a0a9dea2effc11692"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 12:36:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 12:36:11 2009 -0700"
      },
      "message": "Merge branch \u0027audit.b62\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current\n\n* \u0027audit.b62\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current:\n  Audit: remove spaces from audit_log_d_path\n  audit: audit_set_auditable defined but not used\n  audit: incorrect ref counting in audit tree tag_chunk\n  audit: Fix possible return value truncation in audit_get_context()\n  audit: ignore terminating NUL in AUDIT_USER_TTY messages\n  Audit: fix handling of \u0027strings\u0027 with NULL characters\n  make the e-\u003erule.xxx shorter in kernel auditfilter.c\n  auditsc: fix kernel-doc notation\n  audit: EXECVE record - removed bogus newline\n"
    },
    {
      "commit": "714f83d5d9f7c785f622259dad1f4fad12d64664",
      "tree": "20563541ae438e11d686b4d629074eb002a481b7",
      "parents": [
        "8901e7ffc2fa78ede7ce9826dbad68a3a25dc2dc",
        "645dae969c3b8651c5bc7c54a1835ec03820f85f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 11:04:19 2009 -0700"
      },
      "message": "Merge branch \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027tracing-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (413 commits)\n  tracing, net: fix net tree and tracing tree merge interaction\n  tracing, powerpc: fix powerpc tree and tracing tree interaction\n  ring-buffer: do not remove reader page from list on ring buffer free\n  function-graph: allow unregistering twice\n  trace: make argument \u0027mem\u0027 of trace_seq_putmem() const\n  tracing: add missing \u0027extern\u0027 keywords to trace_output.h\n  tracing: provide trace_seq_reserve()\n  blktrace: print out BLK_TN_MESSAGE properly\n  blktrace: extract duplidate code\n  blktrace: fix memory leak when freeing struct blk_io_trace\n  blktrace: fix blk_probes_ref chaos\n  blktrace: make classic output more classic\n  blktrace: fix off-by-one bug\n  blktrace: fix the original blktrace\n  blktrace: fix a race when creating blk_tree_root in debugfs\n  blktrace: fix timestamp in binary output\n  tracing, Text Edit Lock: cleanup\n  tracing: filter fix for TRACE_EVENT_FORMAT events\n  ftrace: Using FTRACE_WARN_ON() to check \"freed record\" in ftrace_release()\n  x86: kretprobe-booster interrupt emulation code fix\n  ...\n\nFix up trivial conflicts in\n arch/parisc/include/asm/ftrace.h\n include/linux/memory.h\n kernel/extable.c\n kernel/module.c\n"
    },
    {
      "commit": "def57543418a5f47debae28a0a9dea2effc11692",
      "tree": "9f27756c75502f6331c5c4260f36779a7b9555bc",
      "parents": [
        "679173b724631f49e537a15fa48ea2000bdc1808"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Mar 10 18:00:14 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Apr 05 13:49:04 2009 -0400"
      },
      "message": "Audit: remove spaces from audit_log_d_path\n\naudit_log_d_path had spaces in the strings which would be emitted on the\nerror paths.  This patch simply replaces those spaces with an _ or removes\nthe needless spaces entirely.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "679173b724631f49e537a15fa48ea2000bdc1808",
      "tree": "f5211fea378788dab49654e15916f6ba73faa4b4",
      "parents": [
        "318b6d3d7ddbcad3d6867e630711b8a705d873d7"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Mon Jan 26 18:09:45 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Apr 05 13:48:52 2009 -0400"
      },
      "message": "audit: audit_set_auditable defined but not used\n\nafter 0590b9335a1c72a3f0defcc6231287f7817e07c8 audit_set_auditable() is now only\nused by the audit tree code.  If CONFIG_AUDIT_TREE is unset it will be defined\nbut unused.  This patch simply moves the function inside a CONFIG_AUDIT_TREE\nblock.\n\ncc1: warnings being treated as errors\n/home/acme_unencrypted/git/linux-2.6-tip/kernel/auditsc.c:745: error: ‘audit_set_auditable’ defined but not used\nmake[2]: *** [kernel/auditsc.o] Error 1\nmake[1]: *** [kernel] Error 2\nmake[1]: *** Waiting for unfinished jobs....\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "318b6d3d7ddbcad3d6867e630711b8a705d873d7",
      "tree": "bdf1d75e26b1dc5ea4db67c6061f444c26eb9799",
      "parents": [
        "6d208da89aabee8502debe842832ca0ab298d16d"
      ],
      "author": {
        "name": "Eric Paris",
        "email": "eparis@redhat.com",
        "time": "Tue Jan 13 17:32:40 2009 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Apr 05 13:48:26 2009 -0400"
      },
      "message": "audit: incorrect ref counting in audit tree tag_chunk\n\ntag_chunk has bad exit paths in which the inotify ref counting is wrong.\nAt the top of the function we found \u0026old_watch using  inotify_find_watch().\ninotify_find_watch takes a reference to the watch.  This is never dropped\non an error path.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6d208da89aabee8502debe842832ca0ab298d16d",
      "tree": "3ed68e7cab94ac7887dcd1d03f1b1fd9a927a001",
      "parents": [
        "55ad2f8d340678397de5916b9cd960f17ebd7150"
      ],
      "author": {
        "name": "Paul Moore",
        "email": "paul.moore@hp.com",
        "time": "Wed Apr 01 15:47:27 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Apr 05 13:46:19 2009 -0400"
      },
      "message": "audit: Fix possible return value truncation in audit_get_context()\n\nThe audit subsystem treats syscall return codes as type long, unfortunately\nthe audit_get_context() function mistakenly converts the return code to an\nint type in the parameters which could cause problems on systems where the\nsizeof(int) !\u003d sizeof(long).\n\nSigned-off-by: Paul Moore \u003cpaul.moore@hp.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "55ad2f8d340678397de5916b9cd960f17ebd7150",
      "tree": "6df2974acdd023948fda996119ff94a3eaf6ab5d",
      "parents": [
        "b3897f567100d18e0597f638b911d23aa5e0dd23"
      ],
      "author": {
        "name": "Miloslav Trmac",
        "email": "mitr@redhat.com",
        "time": "Thu Mar 19 09:52:47 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Apr 05 13:43:36 2009 -0400"
      },
      "message": "audit: ignore terminating NUL in AUDIT_USER_TTY messages\n\nAUDIT_USER_TTY, like all other messages sent from user-space, is sent\nNUL-terminated.  Unlike other user-space audit messages, which come only\nfrom trusted sources, AUDIT_USER_TTY messages are processed using\naudit_log_n_untrustedstring().\n\nThis patch modifies AUDIT_USER_TTY handling to ignore the trailing NUL\nand use the \"quoted_string\" representation of the message if possible.\n\nSigned-off-by: Miloslav Trmac \u003cmitr@redhat.com\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Steve Grubb \u003csgrubb@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b3897f567100d18e0597f638b911d23aa5e0dd23",
      "tree": "32fa9d3d8faaae7a87de64163d450460b423fd87",
      "parents": [
        "c28bb7da74ab74a2860d652493aaff7de104d79e"
      ],
      "author": {
        "name": "Miloslav Trmac",
        "email": "mitr@redhat.com",
        "time": "Thu Mar 19 09:48:27 2009 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Apr 05 13:43:24 2009 -0400"
      },
      "message": "Audit: fix handling of \u0027strings\u0027 with NULL characters\n\ncurrently audit_log_n_untrustedstring() uses audit_string_contains_control()\nto check if the \u0027string\u0027 has any control characters.  If the \u0027string\u0027 has an\nembedded NULL audit_string_contains_control() will return that the data has\nno control characters and will then pass the string to audit_log_n_string\nwith the total length, not the length up to the first NULL.\naudit_log_n_string() does a memcpy of the entire length and so the actual\naudit record emitted may then contain a NULL and then whatever random memory\nis after the NULL.\n\nSince we want to log the entire octet stream (if we can\u0027t trust the data\nto be a string we can\u0027t trust that a NULL isn\u0027t actually a part of it)\nwe should just consider NULL as a control character.  If the caller is\ncertain they want to stop at the first NULL they should be using\naudit_log_untrustedstring.\n\nSigned-off-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c28bb7da74ab74a2860d652493aaff7de104d79e",
      "tree": "055fc031167b88138b2a213f908bab6d21a4464b",
      "parents": [
        "6b96255998053a89f45c0855de954b71f5c3887b"
      ],
      "author": {
        "name": "Zhenwen Xu",
        "email": "helight.xu@gmail.com",
        "time": "Thu Mar 12 22:16:12 2009 +0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Apr 05 13:40:33 2009 -0400"
      },
      "message": "make the e-\u003erule.xxx shorter in kernel auditfilter.c\n\nmake the e-\u003erule.xxx shorter in kernel/auditfilter.c\n--\n---------------------------------\nZhenwen Xu - Open and Free\nHome Page:\thttp://zhwen.org\nMy Studio:\thttp://dim4.cn\n\n\u003eFrom 99692dc640b278f1cb1a15646ce42f22e89c0f77 Mon Sep 17 00:00:00 2001\nFrom: Zhenwen Xu \u003cHelight.Xu@gmail.com\u003e\nDate: Thu, 12 Mar 2009 22:04:59 +0800\nSubject: [PATCH] make the e-\u003erule.xxx shorter in kernel/auditfilter.c\n\nSigned-off-by: Zhenwen Xu \u003cHelight.Xu@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "6b96255998053a89f45c0855de954b71f5c3887b",
      "tree": "d46ba7f03e56a81fee5b6903087bffae50c9b3a6",
      "parents": [
        "ca96a895a6bae7efe7b11a35d9f43e6228467562"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Mon Jan 05 13:41:13 2009 -0800"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Apr 05 13:39:19 2009 -0400"
      },
      "message": "auditsc: fix kernel-doc notation\n\nFix auditsc kernel-doc notation:\n\nWarning(linux-2.6.28-git7//kernel/auditsc.c:2156): No description found for parameter \u0027attr\u0027\nWarning(linux-2.6.28-git7//kernel/auditsc.c:2156): Excess function parameter \u0027u_attr\u0027 description in \u0027__audit_mq_open\u0027\nWarning(linux-2.6.28-git7//kernel/auditsc.c:2204): No description found for parameter \u0027notification\u0027\nWarning(linux-2.6.28-git7//kernel/auditsc.c:2204): Excess function parameter \u0027u_notification\u0027 description in \u0027__audit_mq_notify\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\ncc:\tAl Viro \u003cviro@zeniv.linux.org.uk\u003e\ncc:\tEric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ca96a895a6bae7efe7b11a35d9f43e6228467562",
      "tree": "f0a838bddc4d20b204720592811484bbe3e98a6a",
      "parents": [
        "6bb597507f9839b13498781e481f5458aea33620"
      ],
      "author": {
        "name": "Jiri Pirko",
        "email": "jpirko@redhat.com",
        "time": "Fri Jan 09 16:44:16 2009 +0100"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Apr 05 13:38:59 2009 -0400"
      },
      "message": "audit: EXECVE record - removed bogus newline\n\n(updated)\nAdded hunk that changes the comment, the rest is the same.\n\nEXECVE records contain a newline after every argument. auditd converts\n\"\\n\" to \" \" so you cannot see newlines even in raw logs, but they\u0027re\nthere nevertheless. If you\u0027re not using auditd, you need to work round\nthem. These \u0027\\n\u0027 chars are can be easily replaced by spaces when\ncreating record in kernel. Note there is no need for trailing \u0027\\n\u0027 in\nan audit record.\n\nrecord before this patch:\n\"type\u003dEXECVE msg\u003daudit(1231421801.566:31): argc\u003d4 a0\u003d\\\"./test\\\"\\na1\u003d\\\"a\\\"\\na2\u003d\\\"b\\\"\\na3\u003d\\\"c\\\"\\n\"\n\nrecord after this patch:\n\"type\u003dEXECVE msg\u003daudit(1231421801.566:31): argc\u003d4 a0\u003d\\\"./test\\\" a1\u003d\\\"a\\\" a2\u003d\\\"b\\\" a3\u003d\\\"c\\\"\"\n\nSigned-off-by: Jiri Pirko \u003cjpirko@redhat.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90975ef71246c5c688ead04e8ff6f36dc92d28b3",
      "tree": "eda44b2efe91509719b0e62219c2efec13a9e762",
      "parents": [
        "cab4e4c43f92582a2bfc026137b3d8a175bd0360",
        "558f6ab9106e6be701acb0257e7171df1bbccf04"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:33:07 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:33:07 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-cpumask: (36 commits)\n  cpumask: remove cpumask allocation from idle_balance, fix\n  numa, cpumask: move numa_node_id default implementation to topology.h, fix\n  cpumask: remove cpumask allocation from idle_balance\n  x86: cpumask: x86 mmio-mod.c use cpumask_var_t for downed_cpus\n  x86: cpumask: update 32-bit APM not to mug current-\u003ecpus_allowed\n  x86: microcode: cleanup\n  x86: cpumask: use work_on_cpu in arch/x86/kernel/microcode_core.c\n  cpumask: fix CONFIG_CPUMASK_OFFSTACK\u003dy cpu hotunplug crash\n  numa, cpumask: move numa_node_id default implementation to topology.h\n  cpumask: convert node_to_cpumask_map[] to cpumask_var_t\n  cpumask: remove x86 cpumask_t uses.\n  cpumask: use cpumask_var_t in uv_flush_tlb_others.\n  cpumask: remove cpumask_t assignment from vector_allocation_domain()\n  cpumask: make Xen use the new operators.\n  cpumask: clean up summit\u0027s send_IPI functions\n  cpumask: use new cpumask functions throughout x86\n  x86: unify cpu_callin_mask/cpu_callout_mask/cpu_initialized_mask/cpu_sibling_setup_mask\n  cpumask: convert struct cpuinfo_x86\u0027s llc_shared_map to cpumask_var_t\n  cpumask: convert node_to_cpumask_map[] to cpumask_var_t\n  x86: unify 32 and 64-bit node_to_cpumask_map\n  ...\n"
    },
    {
      "commit": "cab4e4c43f92582a2bfc026137b3d8a175bd0360",
      "tree": "2f0e8fbc2e7d2d0cd6f1658a5e084a53b1e83a2e",
      "parents": [
        "5412b5399e095730008a14f2107331b2123733e4",
        "49502677e11079c2e3e01867c922a894ce06a8be"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:30:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:30:21 2009 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-module-and-param\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-module-and-param:\n  module: use strstarts()\n  strstarts: helper function for !strncmp(str, prefix, strlen(prefix))\n  arm: allow usage of string functions in linux/string.h\n  module: don\u0027t use stop_machine on module load\n  module: create a request_module_nowait()\n  module: include other structures in module version check\n  module: remove the SHF_ALLOC flag on the __versions section.\n  module: clarify the force-loading taint message.\n  module: Export symbols needed for Ksplice\n  Ksplice: Add functions for walking kallsyms symbols\n  module: remove module_text_address()\n  module: __module_address\n  module: Make find_symbol return a struct kernel_symbol\n  kernel/module.c: fix an unused goto label\n  param: fix charp parameters set via sysfs\n\nFix trivial conflicts in kernel/extable.c manually.\n"
    },
    {
      "commit": "e4c393fd551654179c46b65e4a70ea20d831c783",
      "tree": "087c5c1f514a2ffeb75c925545e584fb269bea3a",
      "parents": [
        "0a053e8c71d666daf30da2d407147b1293923d8b",
        "38a6ed3ed8e108b662f4016a1ebf068dcf4c1ef4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:23:25 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Apr 05 10:23:25 2009 -0700"
      },
      "message": "Merge branch \u0027printk-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027printk-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  printk: correct the behavior of printk_timed_ratelimit()\n  vsprintf: unify the format decoding layer for its 3 users, cleanup\n  fix regression from \"vsprintf: unify the format decoding layer for its 3 users\"\n  vsprintf: fix bug in negative value printing\n  vsprintf: unify the format decoding layer for its 3 users\n  vsprintf: add binary printf\n  printk: introduce printk_once()\n\nFix trivial conflicts (printk_once vs log_buf_kexec_setup() added near\neach other) in include/linux/kernel.h.\n"
    },
    {
      "commit": "09f38dc19deba9eae1d668dde8bdd2aaed3479ed",
      "tree": "5eaf5da4572374948ad62ab6dd4403726938c32a",
      "parents": [
        "30a39e0e97f948e3ac8eeacd54d09f4bbfbab64b",
        "bbb76b552a9cef86777181c8577acc907b122b41"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:35:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:35:06 2009 -0700"
      },
      "message": "Merge branch \u0027core-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  ptrace: remove a useless goto\n"
    },
    {
      "commit": "30a39e0e97f948e3ac8eeacd54d09f4bbfbab64b",
      "tree": "ed7095cbce6a1d6e178ddd12a209004ca439ee1b",
      "parents": [
        "c7edad5fcb86c4398f9ab2ccea82ddcc067b88af",
        "4a44bac1f98223ed77e47bf3b42fcfd10cddd85f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:34:41 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:34:41 2009 -0700"
      },
      "message": "Merge branch \u0027stacktrace-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027stacktrace-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  symbols, stacktrace: look up init symbols after module symbols\n"
    },
    {
      "commit": "c7edad5fcb86c4398f9ab2ccea82ddcc067b88af",
      "tree": "775469b19ee1c6e5d791b63d318f1bb1a5251888",
      "parents": [
        "b1dbb67911fecb290db3f566281bcd9ccc9dc6df",
        "f69b17d7e745d8edd7c0d90390cbaa77e63c5ea3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:34:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:34:12 2009 -0700"
      },
      "message": "Merge branch \u0027rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  rcu: rcu_barrier VS cpu_hotplug: Ensure callbacks in dead cpu are migrated to online cpu\n"
    },
    {
      "commit": "b1dbb67911fecb290db3f566281bcd9ccc9dc6df",
      "tree": "f55add06f624f7fed8a68372d8c96b583ca578fe",
      "parents": [
        "492f59f526d95e73028f57bff475b4bbe3c8cb72",
        "70f454408e68fdba2c2529ab7d6ec3c3525e59f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:33:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:33:30 2009 -0700"
      },
      "message": "Merge branch \u0027ipi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027ipi-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  s390: remove arch specific smp_send_stop()\n  panic: clean up kernel/panic.c\n  panic, smp: provide smp_send_stop() wrapper on UP too\n  panic: decrease oops_in_progress only after having done the panic\n  generic-ipi: eliminate WARN_ON()s during oops/panic\n  generic-ipi: cleanups\n  generic-ipi: remove CSD_FLAG_WAIT\n  generic-ipi: remove kmalloc()\n  generic IPI: simplify barriers and locking\n"
    },
    {
      "commit": "492f59f526d95e73028f57bff475b4bbe3c8cb72",
      "tree": "8419a65de08183e350a468433fb3f4205e49ae80",
      "parents": [
        "f945b7abcb6cfd3106c9855aa2aa6e4396a19d76",
        "7bee946358c3cb957d4aa648fc5ab3cad0b232d0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:29:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 17:29:53 2009 -0700"
      },
      "message": "Merge branch \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027locking-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  locking: rename trace_softirq_[enter|exit] \u003d\u003e lockdep_softirq_[enter|exit]\n  lockdep: remove duplicate CONFIG_DEBUG_LOCKDEP definitions\n  lockdep: require framepointers for x86\n  lockdep: remove extra \"irq\" string\n  lockdep: fix incorrect state name\n"
    },
    {
      "commit": "811158b147a503fbdf9773224004ffd32002d1fe",
      "tree": "0a11dcfefe721bfc38ea9f1f4a238822dbae0dda",
      "parents": [
        "4e76c5ccd5ac9bd003467d3bb0f49b18572dd4cd",
        "b26e0ed4936b743b693a4cc1413561fa3e4eaf65"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Apr 03 15:24:35 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (28 commits)\n  trivial: Update my email address\n  trivial: NULL noise: drivers/mtd/tests/mtd_*test.c\n  trivial: NULL noise: drivers/media/dvb/frontends/drx397xD_fw.h\n  trivial: Fix misspelling of \"Celsius\".\n  trivial: remove unused variable \u0027path\u0027 in alloc_file()\n  trivial: fix a pdlfush -\u003e pdflush typo in comment\n  trivial: jbd header comment typo fix for JBD_PARANOID_IOFAIL\n  trivial: wusb: Storage class should be before const qualifier\n  trivial: drivers/char/bsr.c: Storage class should be before const qualifier\n  trivial: h8300: Storage class should be before const qualifier\n  trivial: fix where cgroup documentation is not correctly referred to\n  trivial: Give the right path in Documentation example\n  trivial: MTD: remove EOL from MODULE_DESCRIPTION\n  trivial: Fix typo in bio_split()\u0027s documentation\n  trivial: PWM: fix of #endif comment\n  trivial: fix typos/grammar errors in Kconfig texts\n  trivial: Fix misspelling of firmware\n  trivial: cgroups: documentation typo and spelling corrections\n  trivial: Update contact info for Jochen Hein\n  trivial: fix typo \"resgister\" -\u003e \"register\"\n  ...\n"
    },
    {
      "commit": "8f0aa2f25b31ba27db84259141e52ee6ec0d2820",
      "tree": "f2935c02ac8508dacd125bb1c8bb6f4879fe778e",
      "parents": [
        "12e22c5e4bc08ab4b05ac079fe40d9891c5e81a0"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "message": "Document the slow work thread pool\n\nDocument the slow work thread pool.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "12e22c5e4bc08ab4b05ac079fe40d9891c5e81a0",
      "tree": "e3d34a8f21d4c00dff311dfef564c59a76e1ae70",
      "parents": [
        "109d9272c423f46604d45fedfe87e21ee0b25180"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "message": "Make the slow work pool configurable\n\nMake the slow work pool configurable through /proc/sys/kernel/slow-work.\n\n (*) /proc/sys/kernel/slow-work/min-threads\n\n     The minimum number of threads that should be in the pool as long as it is\n     in use.  This may be anywhere between 2 and max-threads.\n\n (*) /proc/sys/kernel/slow-work/max-threads\n\n     The maximum number of threads that should in the pool.  This may be\n     anywhere between min-threads and 255 or NR_CPUS * 2, whichever is greater.\n\n (*) /proc/sys/kernel/slow-work/vslow-percentage\n\n     The percentage of active threads in the pool that may be used to execute\n     very slow work items.  This may be between 1 and 99.  The resultant number\n     is bounded to between 1 and one fewer than the number of active threads.\n     This ensures there is always at least one thread that can process very\n     slow work items, and always at least one thread that won\u0027t.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "109d9272c423f46604d45fedfe87e21ee0b25180",
      "tree": "b6bd1d94fd3e018ee97dedb577aa6757787db1a9",
      "parents": [
        "07fe7cb7c7c179f473fd9c823348fd3eb5dad369"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "message": "Make slow-work thread pool actually dynamic\n\nMake the slow-work thread pool actually dynamic in the number of threads it\ncontains.  With this patch, it will both create additional threads when it has\nextra work to do, and cull excess threads that aren\u0027t doing anything.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "07fe7cb7c7c179f473fd9c823348fd3eb5dad369",
      "tree": "516c959de929a4c39870629e550b3307601fa73f",
      "parents": [
        "8fe74cf053de7ad2124a894996f84fa890a81093"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Apr 03 16:42:35 2009 +0100"
      },
      "message": "Create a dynamically sized pool of threads for doing very slow work items\n\nCreate a dynamically sized pool of threads for doing very slow work items, such\nas invoking mkdir() or rmdir() - things that may take a long time and may\nsleep, holding mutexes/semaphores and hogging a thread, and are thus unsuitable\nfor workqueues.\n\nThe number of threads is always at least a settable minimum, but more are\nstarted when there\u0027s more work to do, up to a limit.  Because of the nature of\nthe load, it\u0027s not suitable for a 1-thread-per-CPU type pool.  A system with\none CPU may well want several threads.\n\nThis is used by FS-Cache to do slow caching operations in the background, such\nas looking up, creating or deleting cache objects.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nAcked-by: Steve Dickson \u003csteved@redhat.com\u003e\nAcked-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nTested-by: Daire Byrne \u003cDaire.Byrne@framestore.com\u003e\n"
    },
    {
      "commit": "e2494e1b42ebac402324105d57646489d19e2b01",
      "tree": "bd8d0beac5d8b8a7e6ff209c265b015a56fed1fd",
      "parents": [
        "7635b03adf3d7b84da7649b81efa91e6ebf11b85"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 13:43:26 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 15:29:26 2009 +0200"
      },
      "message": "blktrace: fix pdu_len when tracing packet command requests\n\nImpact: output all of packet commands - not just the first 4 / 8 bytes\n\nSince commit d7e3c3249ef23b4617393c69fe464765b4ff1645 (\"block: add\nlarge command support\"), struct request-\u003ecmd has been changed from\nunsinged char cmd[BLK_MAX_CDB] to unsigned char *cmd.\n\nv1 -\u003e v2: by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\n\n- make sure rq-\u003ecmd_len is always intialized, and then we can use\n  rq-\u003ecmd_len instead of BLK_MAX_CDB.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nLKML-Reference: \u003c49D4507E.2060602@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7635b03adf3d7b84da7649b81efa91e6ebf11b85",
      "tree": "072f7292c865162b7fb00fa33a68f0486f327563",
      "parents": [
        "a4b3ada83d06554d307dd54abdc62b2e5648264a"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Fri Apr 03 15:31:34 2009 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 14:48:11 2009 +0200"
      },
      "message": "blktrace: small cleanup in blk_msg_write()\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: \"Alan D. Brunelle\" \u003calan.brunelle@hp.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nLKML-Reference: \u003c49D5BB56.7000807@cn.fujitsu.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a4b3ada83d06554d307dd54abdc62b2e5648264a",
      "tree": "70413a3343c8a40a8d3b22ec6d020ef806ca7a9b",
      "parents": [
        "18cea4591a98817697017bcb056a848bae1205df"
      ],
      "author": {
        "name": "Carl Henrik Lunde",
        "email": "chlunde@ping.uio.no",
        "time": "Fri Apr 03 14:27:15 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 14:46:22 2009 +0200"
      },
      "message": "blktrace: NUL-terminate user space messages\n\nImpact: fix corrupted blkparse output\n\nMake sure messages from user space are NUL-terminated strings,\notherwise we could dump random memory to the block trace file.\n\nAdditionally, I\u0027ve limited the message to BLK_TN_MAX_MSG-1\ncharacters, because the last character would be stripped by\nvscnprintf anyway.\n\nSigned-off-by: Carl Henrik Lunde \u003cchlunde@ping.uio.no\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: \"Alan D. Brunelle\" \u003calan.brunelle@hp.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLKML-Reference: \u003c20090403122714.GT5178@kernel.dk\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "c826e3cd0c931d60d548f2468122da570d145556",
      "tree": "fc5e89fd51bc81f66ac6d3a53349103a1cf2e264",
      "parents": [
        "42af9054c0eeed09ec58d13ec8bf52d225ebcfcc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 23 16:14:13 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:09 2009 +0200"
      },
      "message": "kmemtrace: small cleanups\n\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nLKML-Reference: \u003c161be9ca8a27b432c4a6ab79f47788c4521652ae.1237813499.git.eduard.munteanu@linux360.ro\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "42af9054c0eeed09ec58d13ec8bf52d225ebcfcc",
      "tree": "6ae45d50bc1fb2b663b57cb0499374b018d7e204",
      "parents": [
        "da2635a9854423b4aa3a5f0e4e6efcc39ac99004"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Mon Mar 23 15:12:26 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:08 2009 +0200"
      },
      "message": "kmemtrace: restore original tracing data binary format, improve ABI\n\nWhen kmemtrace was ported to ftrace, the marker strings were taken as\nan indication of how the traced data was being exposed to the userspace.\nHowever, the actual format had been binary, not text.\n\nThis restores the original binary format, while also adding an origin CPU\nfield (since ftrace doesn\u0027t expose the data per-CPU to userspace), and\nre-adding the timestamp field. It also drops arch-independent field\nsizing where it didn\u0027t make sense, so pointers won\u0027t always be 64 bits\nwide like they used to.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nLKML-Reference: \u003c161be9ca8a27b432c4a6ab79f47788c4521652ae.1237813499.git.eduard.munteanu@linux360.ro\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "da2635a9854423b4aa3a5f0e4e6efcc39ac99004",
      "tree": "f05c3e67053f39156ebb91b41b650bd7972abe8f",
      "parents": [
        "ca2b84cb3c4a0d4d2143b46ec072cdff5d1b3b87"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Mon Mar 23 15:12:25 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:07 2009 +0200"
      },
      "message": "kmemtrace: kmemtrace_alloc() must fill type_id\n\nImpact: fix trace output\n\nkmemtrace_alloc() was not filling type_id, which allowed garbage to make\nit into tracing data.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nLKML-Reference: \u003c284dba2732a144849d5aa82258fe0de2ad8dcb0b.1237813499.git.eduard.munteanu@linux360.ro\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ca2b84cb3c4a0d4d2143b46ec072cdff5d1b3b87",
      "tree": "7163bac040f11c444b24cab53c4a784df73fa4f3",
      "parents": [
        "ac44021fccd8f1f2b267b004f23a2e8d7ef05f7b"
      ],
      "author": {
        "name": "Eduard - Gabriel Munteanu",
        "email": "eduard.munteanu@linux360.ro",
        "time": "Mon Mar 23 15:12:24 2009 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:06 2009 +0200"
      },
      "message": "kmemtrace: use tracepoints\n\nkmemtrace now uses tracepoints instead of markers. We no longer need to\nuse format specifiers to pass arguments.\n\nSigned-off-by: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\n[ folded: Use the new TP_PROTO and TP_ARGS to fix the build.     ]\n[ folded: fix build when CONFIG_KMEMTRACE is disabled.           ]\n[ folded: define tracepoints when CONFIG_TRACEPOINTS is enabled. ]\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nLKML-Reference: \u003cae61c0f37156db8ec8dc0d5778018edde60a92e3.1237813499.git.eduard.munteanu@linux360.ro\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "a979241c532f07c201fe94e0a632107268f02578",
      "tree": "f7022c71b4f9671c985398426662259d723e912b",
      "parents": [
        "6258c4fb59e77d748f7efc2c137ad420372edd07"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 16:42:24 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:04 2009 +0200"
      },
      "message": "kmemtrace, rcu: fix rcupreempt.c data structure dependencies\n\nImpact: cleanup\n\nWe want to remove percpu.h from rcupreempt.h, but if we do that\nthe percpu primitives there wont build anymore. Move them to the\n.c file instead.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: paulmck@linux.vnet.ibm.com\nLKML-Reference: \u003c1237898630.25315.83.camel@penberg-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6258c4fb59e77d748f7efc2c137ad420372edd07",
      "tree": "c1e2ae0f027e81e55613b043ce44965858475d59",
      "parents": [
        "b1f77b0581b8fd837acb4a973f7d5496cae6efee"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Wed Mar 25 16:42:24 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:03 2009 +0200"
      },
      "message": "kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies\n\nImpact: cleanup\n\nWe want to remove rcutree internals from the public rcutree.h file for\nupcoming kmemtrace changes - but kernel/rcutree_trace.c depends on them.\n\nIntroduce kernel/rcutree.h for internal definitions. (Probably all\nthe other data types from include/linux/rcutree.h could be\nmoved here too - except rcu_data.)\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: paulmck@linux.vnet.ibm.com\nLKML-Reference: \u003c1237898630.25315.83.camel@penberg-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "b1f77b0581b8fd837acb4a973f7d5496cae6efee",
      "tree": "4faa2e4285c31dd70d1d20b4172d1eed55ba7330",
      "parents": [
        "255d11bc910fd38153156a0c5ebb256657290882"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 13 03:20:49 2009 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Apr 03 12:23:02 2009 +0200"
      },
      "message": "kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies\n\nImpact: build fix for all non-x86 architectures\n\nWe want to remove percpu.h from rcuclassic.h/rcutree.h (for upcoming\nkmemtrace changes) but that would break the DECLARE_PER_CPU based\ndeclarations in these files.\n\nMove the quiescent counter management functions to their respective\nRCU implementation .c files - they were slightly above the inlining\nlimit anyway.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Eduard - Gabriel Munteanu \u003ceduard.munteanu@linux360.ro\u003e\nCc: paulmck@linux.vnet.ibm.com\nLKML-Reference: \u003c1237898630.25315.83.camel@penberg-laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8fe74cf053de7ad2124a894996f84fa890a81093",
      "tree": "77dcd8fbf33ce53a3821942233962fb28c6f2848",
      "parents": [
        "c2eb2fa6d2b6fe122d3479ec5b28d978418b2698",
        "ced117c73edc917e96dea7cca98c91383f0792f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 21:09:10 2009 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:\n  Remove two unneeded exports and make two symbols static in fs/mpage.c\n  Cleanup after commit 585d3bc06f4ca57f975a5a1f698f65a45ea66225\n  Trim includes of fdtable.h\n  Don\u0027t crap into descriptor table in binfmt_som\n  Trim includes in binfmt_elf\n  Don\u0027t mess with descriptor table in load_elf_binary()\n  Get rid of indirect include of fs_struct.h\n  New helper - current_umask()\n  check_unsafe_exec() doesn\u0027t care about signal handlers sharing\n  New locking/refcounting for fs_struct\n  Take fs_struct handling to new file (fs/fs_struct.c)\n  Get rid of bumping fs_struct refcount in pivot_root(2)\n  Kill unsharing fs_struct in __set_personality()\n"
    },
    {
      "commit": "f5f7eac41db827a47b2163330eecd7bb55ae9f12",
      "tree": "ae8ab45dba49c1b3d5f2088051389e6fd3e4a24c",
      "parents": [
        "e8c158bb313c1df421eab7dc4299cd39cbbf5895"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Thu Apr 02 16:59:46 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:11 2009 -0700"
      },
      "message": "Allow rwlocks to re-enable interrupts\n\nPass the original flags to rwlock arch-code, so that it can re-enable\ninterrupts if implemented for that architecture.\n\nInitially, make __raw_read_lock_flags and __raw_write_lock_flags stubs\nwhich just do the same thing as non-flags variants.\n\nSigned-off-by: Petr Tesarik \u003cptesarik@suse.cz\u003e\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e8c158bb313c1df421eab7dc4299cd39cbbf5895",
      "tree": "8a5f1d01e58d0e358b2b0c9407fc494912e83c27",
      "parents": [
        "41d577aa35aa0504fe28b76a948908bdb7fbec81"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Thu Apr 02 16:59:45 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:10 2009 -0700"
      },
      "message": "Factor out #ifdefs from kernel/spinlock.c to LOCK_CONTENDED_FLAGS\n\nSGI has observed that on large systems, interrupts are not serviced for a\nlong period of time when waiting for a rwlock.  The following patch series\nre-enables irqs while waiting for the lock, resembling the code which is\nalready there for spinlocks.\n\nI only made the ia64 version, because the patch adds some overhead to the\nfast path.  I assume there is currently no demand to have this for other\narchitectures, because the systems are not so large.  Of course, the\npossibility to implement raw_{read|write}_lock_flags for any architecture\nis still there.\n\nThis patch:\n\nThe new macro LOCK_CONTENDED_FLAGS expands to the correct implementation\ndepending on the config options, so that IRQ\u0027s are re-enabled when\npossible, but they remain disabled if CONFIG_LOCKDEP is set.\n\nSigned-off-by: Petr Tesarik \u003cptesarik@suse.cz\u003e\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c53d9109f077900e140edb8b766132ad93b81cc",
      "tree": "082c063da6c83fe2a2aa84ed0b33c504e19d05f4",
      "parents": [
        "edb79a213223488735fae1d408f4c136e9ed25d6"
      ],
      "author": {
        "name": "Aravind Srinivasan",
        "email": "raa.aars@gmail.com",
        "time": "Thu Apr 02 16:58:59 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:05 2009 -0700"
      },
      "message": "relay: fix for possible loss/corruption of produced subbufs\n\nFix possible loss/corruption of produced subbufs in\nrelay_subbufs_consumed().\n\nWhen buf-\u003esubbufs_produced wraps around after UINT_MAX and\nbuf-\u003esubbufs_consumed is still \u003c UINT_MAX, the condition\n\n\tif (buf-\u003esubbufs_consumed \u003e buf-\u003esubbufs_produced)\n\nwill be true even for certain valid values of subbufs_consumed.  This may\nlead to loss or corruption of produced subbufs.\n\nSigned-off-by: Aravind Srinivasan \u003craa.aars@gmail.com\u003e\nCc: Tom Zanussi \u003ctzanussi@gmail.com\u003e\nCc: Tom Zanussi \u003czanussi@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edb79a213223488735fae1d408f4c136e9ed25d6",
      "tree": "b89191aec3c415256ee2d5a646a4f2afb1125c89",
      "parents": [
        "04d491ab2a53008a1aa98ac09561768c7f3adda3"
      ],
      "author": {
        "name": "Dmitri Vorobiev",
        "email": "dmitri.vorobiev@movial.com",
        "time": "Thu Apr 02 16:58:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "kexec: vmcoreinfo_data[] can become static\n\nThe vmcoreinfo_data[] array is not used outside of kernel/kexec.c, and\ncan therefore become static. This patch adds the relevant keyword to the\ndefinition of the array.\n\nNoticed by sparse.\n\nSigned-off-by: Dmitri Vorobiev \u003cdmitri.vorobiev@movial.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "04d491ab2a53008a1aa98ac09561768c7f3adda3",
      "tree": "ab8fff6fb8674c8061b733ce64d6d6fba9d68ff3",
      "parents": [
        "23c36c1aec895fd52d7dd8cd3ce4bbce43c969fd"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Thu Apr 02 16:58:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:04 2009 -0700"
      },
      "message": "kexec: add dmesg log symbols to /proc/vmcoreinfo lists\n\nIt would be nice to be able to extract the dmesg log from a vmcore file\nwithout needing to keep the debug symbols for the running kernel handy all\nthe time.  We have a facility to do this in /proc/vmcore.  This patch adds\nthe log_buf and log_end symbols to the vmcoreinfo area so that tools (like\nmakedumpfile) can easily extract the dmesg logs from a vmcore image.\n\n[akpm@linux-foundation.org: several fixes and cleanups]\n[akpm@linux-foundation.org: fix unused log_buf_kexec_setup()]\n[akpm@linux-foundation.org: build fix]\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nAcked-by: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nCc: Vivek Goyal \u003cvgoyal@redhat.com\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b0f7ffd0ea27cd3a0b9ca04e3df9522048c32a3",
      "tree": "a8c27acdf95f55f93fe86661c6cba4cd36c8e4f1",
      "parents": [
        "52ee2dfdd4f51cf422ea6a96a0846dc94244aa37"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:39 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "pids: kill signal_struct-\u003e __pgrp/__session and friends\n\nWe are wasting 2 words in signal_struct without any reason to implement\ntask_pgrp_nr() and task_session_nr().\n\ntask_session_nr() has no callers since\n2e2ba22ea4fd4bb85f0fa37c521066db6775cbef, we can remove it.\n\ntask_pgrp_nr() is still (I believe wrongly) used in fs/autofsX and\nfs/coda.\n\nThis patch reimplements task_pgrp_nr() via task_pgrp_nr_ns(), and kills\n__pgrp/__session and the related helpers.\n\nThe change in drivers/char/tty_io.c is cosmetic, but hopefully makes sense\nanyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Alan Cox \u003cnumber6@the-village.bc.nu\u003e\t\t[tty parts]\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Eric Biederman \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "52ee2dfdd4f51cf422ea6a96a0846dc94244aa37",
      "tree": "e15753e01d2c2fbe980edc45f78a9ae77d2cf891",
      "parents": [
        "2ae448efc87df6d328f5835969076c7f9fce59c3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "pids: refactor vnr/nr_ns helpers to make them safe\n\nInho, the safety rules for vnr/nr_ns helpers are horrible and buggy.\n\ntask_pid_nr_ns(task) needs rcu/tasklist depending on task \u003d\u003d current.\n\nAs for \"special\" pids, vnr/nr_ns helpers always need rcu.  However, if\ntask !\u003d current, they are unsafe even under rcu lock, we can\u0027t trust\ntask-\u003egroup_leader without the special checks.\n\nAnd almost every helper has a callsite which needs a fix.\n\nAlso, it is a bit annoying that the implementations of, say,\ntask_pgrp_vnr() and task_pgrp_nr_ns() are not \"symmetrical\".\n\nThis patch introduces the new helper, __task_pid_nr_ns(), which is always\nsafe to use, and turns all other helpers into the trivial wrappers.\n\nAfter this I\u0027ll send another patch which converts task_tgid_xxx() as well,\nthey\u0027re are a bit special.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Louis Rilling \u003cLouis.Rilling@kerlabs.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2ae448efc87df6d328f5835969076c7f9fce59c3",
      "tree": "f110b43fa7c6b3c80f9b18a8e4fef728ed57f448",
      "parents": [
        "6dda81f4384b94930826eded254d8c16f89a9248"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:36 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:02 2009 -0700"
      },
      "message": "pids: improve get_task_pid() to fix the unsafe sys_wait4()-\u003etask_pgrp()\n\nsys_wait4() does get_pid(task_pgrp(current)), this is not safe.  We can\nadd rcu lock/unlock around, but we already have get_task_pid() which can\nbe improved to handle the special pids in more reliable manner.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Louis Rilling \u003cLouis.Rilling@kerlabs.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e654fba4a376f436bdfe361fc5cdbc87ac09b35",
      "tree": "849159802c4aec512a2d0671d88a04947c5165b2",
      "parents": [
        "303d379c54fc9ed553562e36c1cbd1791a3f5d17"
      ],
      "author": {
        "name": "Matthew Wilcox",
        "email": "matthew@wil.cx",
        "time": "Thu Apr 02 16:58:33 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "sysctl: fix suid_dumpable and lease-break-time sysctls\n\nArne de Bruijn points out that commit\n76fdbb25f963de5dc1e308325f0578a2f92b1c2d (\"coredump masking: bound\nsuid_dumpable sysctl\") mistakenly limits lease-break-time instead of\nsuid_dumpable.\n\nSigned-off-by: Matthew Wilcox \u003cmatthew@wil.cx\u003e\nReported-by: Arne de Bruijn \u003ckernelbt@arbruijn.dds.nl\u003e\nCc: Kawai, Hidehiro \u003chidehiro.kawai.ez@hitachi.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@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": "11dea1900931ac73184b2f5163a13d24a4e572ea",
      "tree": "409e081e9afa0cc8f05ae0051942de99a79cd9f0",
      "parents": [
        "e562aebc6ccd4385cbbf24debe88ab4bb500c5b4"
      ],
      "author": {
        "name": "Serge E. Hallyn",
        "email": "serue@us.ibm.com",
        "time": "Thu Apr 02 16:58:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:01 2009 -0700"
      },
      "message": "proc_sysctl: use CONFIG_PROC_SYSCTL around ipc and utsname proc_handlers\n\nAs pointed out by Cedric Le Goater (in response to Alexey\u0027s original\ncomment wrt mqns), ipc_sysctl.c and utsname_sysctl.c are using\nCONFIG_PROC_FS, not CONFIG_PROC_SYSCTL, to determine whether to define\nthe proc_handlers.  Change that.\n\nSigned-off-by: Serge E. Hallyn \u003cserue@us.ibm.com\u003e\nCc: Cedric Le Goater \u003cclg@fr.ibm.com\u003e\nAcked-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2355b70fd59cb5be7de2052a9edeee7afb7ff099",
      "tree": "93f192f9dab4748a313ec8d78041b1937e232f33",
      "parents": [
        "1ee1184485df9c9a3503d3a684b911fb7c73d259"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Thu Apr 02 16:58:24 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "workqueue: avoid recursion in run_workqueue()\n\n1) lockdep will complain when run_workqueue() performs recursion.\n\n2) The recursive implementation of run_workqueue() means that\n   flush_workqueue() and its documentation are inconsistent.  This may\n   hide deadlocks and other bugs.\n\n3) The recursion in run_workqueue() will poison cwq-\u003ecurrent_work, but\n   flush_work() and __cancel_work_timer(), etcetera need a reliable\n   cwq-\u003ecurrent_work.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Eric Dumazet \u003cdada1@cosmosbay.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": "1ee1184485df9c9a3503d3a684b911fb7c73d259",
      "tree": "0216bc3ebccf1c44b86617cd06e7b93510ef5bb8",
      "parents": [
        "95a3540da9c81a5987be810e1d9a83640a366bd5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:23 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "ptrace_untrace: fix the SIGNAL_STOP_STOPPED check\n\nThis bug is ancient too. ptrace_untrace() must not resume the task\nif the group stop in progress, we should set TASK_STOPPED instead.\n\nUnfortunately, we still have problems here:\n\n\t- if the process/thread was traced, SIGNAL_STOP_STOPPED\n\t  does not necessary means this thread group is stopped.\n\n\t- ptrace breaks the bookkeeping of -\u003egroup_stop_count.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95a3540da9c81a5987be810e1d9a83640a366bd5",
      "tree": "d5143f232f885f6aa8829288dc0ceb2cd9e6e34e",
      "parents": [
        "bb24c679a51b1a9b726b901330649e3861814ac0"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:21 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "ptrace_detach: the wrong wakeup breaks the ERESTARTxxx logic\n\nAnother ancient bug. Consider this trivial test-case,\n\n\tint main(void)\n\t{\n\t\tint pid \u003d fork();\n\n\t\tif (pid) {\n\t\t\tptrace(PTRACE_ATTACH, pid, NULL, NULL);\n\t\t\twait(NULL);\n\t\t\tptrace(PTRACE_DETACH, pid, NULL, NULL);\n\t\t} else {\n\t\t\tpause();\n\t\t\tprintf(\"WE HAVE A KERNEL BUG!!!\\n\");\n\t\t}\n\n\t\treturn 0;\n\t}\n\nthe child must not \"escape\" for sys_pause(), but it can and this was seen\nin practice.\n\nThis is because ptrace_detach does:\n\n\tif (!child-\u003eexit_state)\n\t\twake_up_process(child);\n\nthis wakeup can happen after this child has already restarted sys_pause(),\nbecause it gets another wakeup from ptrace_untrace().\n\nWith or without this patch, perhaps sys_pause() needs a fix.  But this\nwakeup also breaks the SIGNAL_STOP_STOPPED logic in ptrace_untrace().\n\nRemove this wakeup.  The caller saw this task in TASK_TRACED state, and\nunless it was SIGKILL\u0027ed in between __ptrace_unlink()-\u003eptrace_untrace()\nshould handle this case correctly.  If it was SIGKILL\u0027ed, we don\u0027t need to\nwakup the dying tracee too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dfc80be73dd0c212d2e6dd8dbf5afa07e680bbe",
      "tree": "ac173fb3fcfe2970781591f620f22d30f4ce090c",
      "parents": [
        "39c626ae47c469abdfd30c6e42eff884931380d6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:19 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "forget_original_parent: do not abuse child-\u003eptrace_entry\n\nBy discussion with Roland.\n\n- Use -\u003esibling instead of -\u003eptrace_entry to chain the need to be\n  release_task\u0027d childs. Nobody else can use -\u003esibling, this task\n  is EXIT_DEAD and nobody can find it on its own list.\n\n- rename ptrace_dead to dead_childs.\n\n- Now that we don\u0027t have the \"parallel\" untrace code, change back\n  reparent_thread() to return void, pass dead_childs as an argument.\n\nActually, I don\u0027t understand why do we notify /sbin/init when we\nreparent a zombie, probably it is better to reap it unconditionally.\n\n[akpm@linux-foundation.org: s/childs/children/]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Metzger, Markus T\" \u003cmarkus.t.metzger@intel.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "39c626ae47c469abdfd30c6e42eff884931380d6",
      "tree": "58cbe75bac79ce8ef55c94189df26448d0283918",
      "parents": [
        "7f5d3652d469cdf9eb2365dfea7ce3fb9e1409cc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:18 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:05:00 2009 -0700"
      },
      "message": "forget_original_parent: split out the un-ptrace part\n\nBy discussion with Roland.\n\n- Rename ptrace_exit() to exit_ptrace(), and change it to do all the\n  necessary work with -\u003eptraced list by its own.\n\n- Move this code from exit.c to ptrace.c\n\n- Update the comment in ptrace_detach() to explain the rechecking of\n  the child-\u003eptrace.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: \"Metzger, Markus T\" \u003cmarkus.t.metzger@intel.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f5d3652d469cdf9eb2365dfea7ce3fb9e1409cc",
      "tree": "590f845665e166694ba0f9ba0e6d2267e15d8aae",
      "parents": [
        "b1442b055c154699a6a2c436f3352f71b6beede3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:17 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: fix a zombie leak if /sbin/init ignores SIGCHLD\n\nIf /sbin/init ignores SIGCHLD and we re-parent a zombie, it is leaked.\nreparent_thread() does do_notify_parent() which sets -\u003eexit_signal \u003d -1 in\nthis case.  This means that nobody except us can reap it, the detached\ntask is not visible to do_wait().\n\nChange reparent_thread() to return a boolean (like __pthread_detach) to\nindicate that the thread is dead and must be released.  Also change\nforget_original_parent() to add the child to ptrace_dead list in this\ncase.\n\nThe naming becomes insane, the next patch does the cleanup.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1442b055c154699a6a2c436f3352f71b6beede3",
      "tree": "dda315fddb15936bc74eb9c74bec29b64e65b71c",
      "parents": [
        "0a967a044a777e8b9c739120927114ddc0094298"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:16 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: fix the \"is it traced\" check\n\nreparent_thread() uses ptrace_reparented() to check whether this thread is\nptraced, in that case we should not notify the new parent.\n\nBut ptrace_reparented() is not exactly correct when the reparented thread\nis traced by /sbin/init, because forget_original_parent() has already\nchanged -\u003ereal_parent.\n\nCurrently, the only problem is the false notification.  But with the next\npatch the kernel crash in this (yes, pathological) case.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0a967a044a777e8b9c739120927114ddc0094298",
      "tree": "aa1abba4c643e0f502623870045a4c978db5683b",
      "parents": [
        "4576145c1ecdaaea9ef8976a48335206aa1ebf91"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:15 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "reparent_thread: don\u0027t call kill_orphaned_pgrp() if task_detached()\n\nIf task_detached(p) \u003d\u003d T, then either\n\n  a) p is not the main thread, we will find the group leader on the\n     -\u003echildren list.\n\nor\n\n  b) p is the group leader but its -\u003eexit_state \u003d EXIT_DEAD.  This\n     can only happen when the last sub-thread has died, but in that case\n     that thread has already called kill_orphaned_pgrp() from\n     exit_notify().\n\nIn both cases kill_orphaned_pgrp() looks bogus.\n\nMove the task_detached() check up and simplify the code, this is also\nright from the \"common sense\" pov: we should do nothing with the detached\nchilds, except move them to the new parent\u0027s -\u003echildren list.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4576145c1ecdaaea9ef8976a48335206aa1ebf91",
      "tree": "b20b51848380b708f4158852b1bb4afa29ffc5f0",
      "parents": [
        "b1b4c6799fb59e710454bfe0ab477cb8523a8667"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:14 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: fix possible zombie leak on PTRACE_DETACH\n\nWhen ptrace_detach() takes tasklist, the tracee can be SIGKILL\u0027ed.  If it\nhas already passed exit_notify() we can leak a zombie, because a) ptracing\ndisables the auto-reaping logic, and b) -\u003ereal_parent was not notified\nabout the child\u0027s death.\n\nptrace_detach() should follow the ptrace_exit\u0027s logic, change the code\naccordingly.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nTested-by: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1b4c6799fb59e710454bfe0ab477cb8523a8667",
      "tree": "1cdd19f00c584a8800ce0d3a5530b78d1cbd6e56",
      "parents": [
        "6d69cb87f05eef3b02370b2f7bae608ad2301a00"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:13 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: reintroduce __ptrace_detach() as a callee of ptrace_exit()\n\nNo functional changes, preparation for the next patch.\n\nMove the \"should we release this child\" logic into the separate handler,\n__ptrace_detach().\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d69cb87f05eef3b02370b2f7bae608ad2301a00",
      "tree": "69f38afc49df51a1a75fc5c7792ced6888af329d",
      "parents": [
        "95c3eb76dc07fd81289888ffc42948196b34b444"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:12 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: simplify ptrace_exit()-\u003eignoring_children() path\n\nignoring_children() takes parent-\u003esighand-\u003esiglock and checks\nk_sigaction[SIGCHLD] atomically.  But this buys nothing, we can\u0027t get the\n\"really\" wrong result even if we race with sigaction(SIGCHLD).  If we read\nthe \"stale\" sa_handler/sa_flags we can pretend it was changed right after\nthe check.\n\nRemove spin_lock(-\u003esiglock), and kill \"int ign\" which caches the result of\nignoring_children() which becomes rather trivial.\n\nPerhaps it makes sense to export this helper, do_notify_parent() can use\nit too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "95c3eb76dc07fd81289888ffc42948196b34b444",
      "tree": "a656316699a090405387d0071bac2a03a7128f57",
      "parents": [
        "6588c1e3ff01418acafd938db0740e3477dc8cb7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:11 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:59 2009 -0700"
      },
      "message": "ptrace: kill __ptrace_detach(), fix -\u003eexit_state check\n\nMove the code from __ptrace_detach() to its single caller and kill this\nhelper.\n\nAlso, fix the -\u003eexit_state check, we shouldn\u0027t wake up EXIT_DEAD tasks.\nActually, I think task_is_stopped_or_traced() makes more sense, but this\nneeds another patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6588c1e3ff01418acafd938db0740e3477dc8cb7",
      "tree": "b58beed5813667619be47c5d064f8f78804e92d1",
      "parents": [
        "b3bfa0cba867f23365b81658b47efd906830879b"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:09 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: SI_USER: Masquerade si_pid when crossing pid ns boundary\n\nWhen sending a signal to a descendant namespace, set -\u003esi_pid to 0 since\nthe sender does not have a pid in the receiver\u0027s namespace.\n\nNote:\n\t- If rt_sigqueueinfo() sets si_code to SI_USER when sending a\n\t  signal across a pid namespace boundary, the value in -\u003esi_pid\n\t  will be cleared to 0.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3bfa0cba867f23365b81658b47efd906830879b",
      "tree": "e54d9a9c4c23fc00bb2ff3ed57ef5317a0660ea5",
      "parents": [
        "e4da026f980df125a4918c3bb9fe93185c7ef12a"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:08 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect cinit from blocked fatal signals\n\nNormally SIG_DFL signals to global and container-init are dropped early.\nBut if a signal is blocked when it is posted, we cannot drop the signal\nsince the receiver may install a handler before unblocking the signal.\nOnce this signal is queued however, the receiver container-init has no way\nof knowing if the signal was sent from an ancestor or descendant\nnamespace.  This patch ensures that contianer-init drops all SIG_DFL\nsignals in get_signal_to_deliver() except SIGKILL/SIGSTOP.\n\nIf SIGSTOP/SIGKILL originate from a descendant of container-init they are\nnever queued (i.e dropped in sig_ignored() in an earler patch).\n\nIf SIGSTOP/SIGKILL originate from parent namespace, the signal is queued\nand container-init processes the signal.\n\nIOW, if get_signal_to_deliver() sees a sig_kernel_only() signal for global\nor container-init, the signal must have been generated internally or must\nhave come from an ancestor ns and we process the signal.\n\nFurther, the signal_group_exit() check was needed to cover the case of a\nmulti-threaded init sending SIGKILL to other threads when doing an exit()\nor exec().  But since the new sig_kernel_only() check covers the SIGKILL,\nthe signal_group_exit() check is no longer needed and can be removed.\n\nFinally, now that we have all pieces in place, set SIGNAL_UNKILLABLE for\ncontainer-inits.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e4da026f980df125a4918c3bb9fe93185c7ef12a",
      "tree": "bb755bb687bca82feb05ba3bb6962ef57257dd9a",
      "parents": [
        "921cf9f63089c7442d44083477620132f4cea066"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:06 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: zap_pid_ns_process() should use force_sig()\n\nsend_signal() assumes that signals with SEND_SIG_PRIV are generated from\nwithin the same namespace.  So any nested container-init processes become\nimmune to the SIGKILL generated by kill_proc_info() in\nzap_pid_ns_processes().\n\nUse force_sig() in zap_pid_ns_processes() instead - force_sig() clears the\nSIGNAL_UNKILLABLE flag ensuring the signal is processed by\ncontainer-inits.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "921cf9f63089c7442d44083477620132f4cea066",
      "tree": "2a79eb0f7328ba2f05759d1b2c1e141bcfe4aafc",
      "parents": [
        "7978b567d31555fc828b8f945c605ad29e117b22"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:05 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect cinit from unblocked SIG_DFL signals\n\nDrop early any SIG_DFL or SIG_IGN signals to container-init from within\nthe same container.  But queue SIGSTOP and SIGKILL to the container-init\nif they are from an ancestor container.\n\nBlocked, fatal signals (i.e when SIG_DFL is to terminate) from within the\ncontainer can still terminate the container-init.  That will be addressed\nin the next patch.\n\nNote:\tTo be bisect-safe, SIGNAL_UNKILLABLE will be set for container-inits\n   \tin a follow-on patch. Until then, this patch is just a preparatory\n\tstep.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7978b567d31555fc828b8f945c605ad29e117b22",
      "tree": "a66d7880f3031e417c2afb76c990ed5340565816",
      "parents": [
        "f008faff0e2777c8b3fe853891b774ca465938d8"
      ],
      "author": {
        "name": "Sukadev Bhattiprolu",
        "email": "sukadev@linux.vnet.ibm.com",
        "time": "Thu Apr 02 16:58:04 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: add from_ancestor_ns parameter to send_signal()\n\nsend_signal() (or its helper) needs to determine the pid namespace of the\nsender.  But a signal sent via kill_pid_info_as_uid() comes from within\nthe kernel and send_signal() does not need to determine the pid namespace\nof the sender.  So define a helper for send_signal() which takes an\nadditional parameter, \u0027from_ancestor_ns\u0027 and have kill_pid_info_as_uid()\nuse that helper directly.\n\nThe \u0027from_ancestor_ns\u0027 parameter will be used in a follow-on patch.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f008faff0e2777c8b3fe853891b774ca465938d8",
      "tree": "d2f325995473a33652f7f7ead71e63d5298fbd01",
      "parents": [
        "43918f2bf4806675943416d539d9d5e4d585ebff"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:02 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: protect init from unwanted signals more\n\n(This is a modified version of the patch submitted by Oleg Nesterov\nhttp://lkml.org/lkml/2008/11/18/249 and tries to address comments that\ncame up in that discussion)\n\ninit ignores the SIG_DFL signals but we queue them anyway, including\nSIGKILL.  This is mostly OK, the signal will be dropped silently when\ndequeued, but the pending SIGKILL has 2 bad implications:\n\n        - it implies fatal_signal_pending(), so we confuse things\n          like wait_for_completion_killable/lock_page_killable.\n\n        - for the sub-namespace inits, the pending SIGKILL can\n          mask (legacy_queue) the subsequent SIGKILL from the\n          parent namespace which must kill cinit reliably.\n          (preparation, cinits don\u0027t have SIGNAL_UNKILLABLE yet)\n\nThe patch can\u0027t help when init is ptraced, but ptracing of init is not\n\"safe\" anyway.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "43918f2bf4806675943416d539d9d5e4d585ebff",
      "tree": "1de2ea08eed647b181b7f008f95e4bc4ec34c343",
      "parents": [
        "90bc8d8b1a38f1ab131a2399a202e1889db95de8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:58:00 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:58 2009 -0700"
      },
      "message": "signals: remove \u0027handler\u0027 parameter to tracehook functions\n\nContainer-init must behave like global-init to processes within the\ncontainer and hence it must be immune to unhandled fatal signals from\nwithin the container (i.e SIG_DFL signals that terminate the process).\n\nBut the same container-init must behave like a normal process to processes\nin ancestor namespaces and so if it receives the same fatal signal from a\nprocess in ancestor namespace, the signal must be processed.\n\nImplementing these semantics requires that send_signal() determine pid\nnamespace of the sender but since signals can originate from workqueues/\ninterrupt-handlers, determining pid namespace of sender may not always be\npossible or safe.\n\nThis patchset implements the design/simplified semantics suggested by\nOleg Nesterov.  The simplified semantics for container-init are:\n\n\t- container-init must never be terminated by a signal from a\n\t  descendant process.\n\n\t- container-init must never be immune to SIGKILL from an ancestor\n\t  namespace (so a process in parent namespace must always be able\n\t  to terminate a descendant container).\n\n\t- container-init may be immune to unhandled fatal signals (like\n\t  SIGUSR1) even if they are from ancestor namespace. SIGKILL/SIGSTOP\n\t  are the only reliable signals to a container-init from ancestor\n\t  namespace.\n\nThis patch:\n\nBased on an earlier patch submitted by Oleg Nesterov and comments from\nRoland McGrath (http://lkml.org/lkml/2008/11/19/258).\n\nThe handler parameter is currently unused in the tracehook functions.\nBesides, the tracehook functions are called with siglock held, so the\nfunctions can check the handler if they later need to.\n\nRemoving the parameter simiplifies changes to sig_ignored() in a follow-on\npatch.\n\nSigned-off-by: Sukadev Bhattiprolu \u003csukadev@linux.vnet.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Daniel Lezcano \u003cdaniel.lezcano@free.fr\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90bc8d8b1a38f1ab131a2399a202e1889db95de8",
      "tree": "97001737dc3c1c7fd364ddd995bcbfc1c27b4c3a",
      "parents": [
        "6d7b2f5f9e88902b19f91d0c8a7ef58a5455f1a2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Thu Apr 02 16:57:58 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "do_wait: fix waiting for the group stop with the dead leader\n\ndo_wait(WSTOPPED) assumes that p-\u003estate must be \u003d\u003d TASK_STOPPED, this is\nnot true if the leader is already dead.  Check SIGNAL_STOP_STOPPED instead\nand use signal-\u003egroup_exit_code.\n\nTrivial test-case:\n\n\tvoid *tfunc(void *arg)\n\t{\n\t\tpause();\n\t\treturn NULL;\n\t}\n\n\tint main(void)\n\t{\n\t\tpthread_t thr;\n\t\tpthread_create(\u0026thr, NULL, tfunc, NULL);\n\t\tpthread_exit(NULL);\n\t\treturn 0;\n\t}\n\nIt doesn\u0027t react to ^Z (and then to ^C or ^\\). The task is stopped, but\nbash can\u0027t see this.\n\nThe bug is very old, and it was reported multiple times. This patch was sent\nmore than a year ago (http://marc.info/?t\u003d119713920000003) but it was ignored.\n\nThis change also fixes other oddities (but not all) in this area.  For\nexample, before this patch:\n\n\t$ sleep 100\n\t^Z\n\t[1]+  Stopped                 sleep 100\n\t$ strace -p `pidof sleep`\n\tProcess 11442 attached - interrupt to quit\n\nstrace hangs in do_wait(), because -\u003eexit_code was already consumed by\nbash.  After this patch, strace happily proceeds:\n\n\t--- SIGTSTP (Stopped) @ 0 (0) ---\n\trestart_syscall(\u003c... resuming interrupted call ...\u003e\n\nTo me, this looks much more \"natural\" and correct.\n\nAnother example.  Let\u0027s suppose we have the main thread M and sub-thread\nT, the process is stopped, and its parent did wait(WSTOPPED).  Now we can\nptrace T but not M.  This looks at least strange to me.\n\nImho, do_wait() should not confuse the per-thread ptrace stops with the\nper-process job control stops.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Denys Vlasenko \u003cdvlasenk@redhat.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Jan Kratochvil \u003cjan.kratochvil@redhat.com\u003e\nCc: Kaz Kylheku \u003ckkylheku@gmail.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@googlemail.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d7b2f5f9e88902b19f91d0c8a7ef58a5455f1a2",
      "tree": "4ad594fcef55ad95424e58c39e10a723d1dcbe4f",
      "parents": [
        "db7f47cf4805e30decb0841764b21b7c4000f7dc"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Apr 02 16:57:57 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: prevent PF_THREAD_BOUND tasks from attaching to non-root cpusets\n\nKthreads that have the PF_THREAD_BOUND bit set in their flags are bound to a\nspecific cpu.  Thus, their set of allowed cpus shall not change.\n\nThis patch prevents such threads from attaching to non-root cpusets.  They do\nnot have mempolicies that restrict them to a subset of system nodes and, since\ntheir cpumask may never change, they cannot use any of the features of\ncpusets.\n\nThe tasks will forever be a member of the root cpuset and will be returned\nwhen listing the tasks attached to that cpuset.\n\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Dhaval Giani \u003cdhaval@linux.vnet.ibm.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "db7f47cf4805e30decb0841764b21b7c4000f7dc",
      "tree": "10a7ee574ae29fbd3c78a22bd6700e14efe80e65",
      "parents": [
        "a1bc5a4eee990a1f290735c8694d0aebdad095fa"
      ],
      "author": {
        "name": "Paul Menage",
        "email": "menage@google.com",
        "time": "Thu Apr 02 16:57:55 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: allow cpusets to be configured/built on non-SMP systems\n\nAllow cpusets to be configured/built on non-SMP systems\n\nCurrently it\u0027s impossible to build cpusets under UML on x86-64, since\ncpusets depends on SMP and x86-64 UML doesn\u0027t support SMP.\n\nThere\u0027s code in cpusets that doesn\u0027t depend on SMP.  This patch surrounds\nthe minimum amount of cpusets code with #ifdef CONFIG_SMP in order to\nallow cpusets to build/run on UP systems (for testing purposes under UML).\n\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1bc5a4eee990a1f290735c8694d0aebdad095fa",
      "tree": "f3e5849823444136df9c7f91f7217e1894235682",
      "parents": [
        "7f81b1ae18416b457e4d5ff23f0bd598e8a42224"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Thu Apr 02 16:57:54 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpusets: replace zone allowed functions with node allowed\n\nThe cpuset_zone_allowed() variants are actually only a function of the\nzone\u0027s node.\n\nCc: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7f81b1ae18416b457e4d5ff23f0bd598e8a42224",
      "tree": "8b484cec5b67d4cf00dfacd407b2648cd0d1b645",
      "parents": [
        "010cfac4ca0f9e85f54ba2117a372e72f4fb9a60"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:53 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: remove struct cpuset_hotplug_scanner\n\nUse cgroup_scanner.data, instead of introducing cpuset_hotplug_scanner.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "010cfac4ca0f9e85f54ba2117a372e72f4fb9a60",
      "tree": "47b8ed65b2e3cdfe269794545995020947a667a6",
      "parents": [
        "3b6766fe668b83c8a03c6ed01bcc2ac77cbae848"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:52 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: avoid changing cpuset\u0027s mems when errno returned\n\nWhen writing to cpuset.mems, cpuset has to update its mems_allowed before\ncalling update_tasks_nodemask(), but this function might return -ENOMEM.\n\nTo avoid this rare case, we allocate the memory before changing\nmems_allowed, and then pass to update_tasks_nodemask().  Similar to what\nupdate_cpumask() does.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3b6766fe668b83c8a03c6ed01bcc2ac77cbae848",
      "tree": "8b109576301d849406f080c61f4ce1809556ad0b",
      "parents": [
        "bd1a8ab73edd449fecda633449cc277b856ad4f5"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:51 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:57 2009 -0700"
      },
      "message": "cpuset: rewrite update_tasks_nodemask()\n\nThis patch uses cgroup_scan_tasks() to rebind tasks\u0027 vmas to new cpuset\u0027s\nmems_allowed.\n\nNot only simplify the code largely, but also avoid allocating an array to\nhold mm pointers of all the tasks in the cpuset.  This array can be big\n(size \u003e PAGESIZE) if we have lots of tasks in that cpuset, thus has a\nchance to fail the allocation when under memory stress.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b4217b3fdddc4a58939720d3ed809537577d48b",
      "tree": "9bda180eb4e9fed454453b4aeaf9447602c74022",
      "parents": [
        "83aae4c737866da3280f51fd15da58eddd788397"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:49 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:56 2009 -0700"
      },
      "message": "cpuset: fix possible races in cpu/memory hotplug\n\nChange to cpuset-\u003ecpus_allowed and cpuset-\u003emems_allowed should be protected\nby callback_mutex, otherwise the reader may read wrong cpus/mems. This is\ncpuset\u0027s lock rule.\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b7f569e45bb6be142d87017030669a6a7d327a1",
      "tree": "8df7877b95c093ebf4cb4e1006cea16f75fc79b7",
      "parents": [
        "81d39c20f5ee2437d71709beb82597e2a38efbbc"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Thu Apr 02 16:57:38 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:55 2009 -0700"
      },
      "message": "memcg: fix OOM killer under memcg\n\nThis patch tries to fix OOM Killer problems caused by hierarchy.\nNow, memcg itself has OOM KILL function (in oom_kill.c) and tries to\nkill a task in memcg.\n\nBut, when hierarchy is used, it\u0027s broken and correct task cannot\nbe killed. For example, in following cgroup\n\n\t/groupA/\thierarchy\u003d1, limit\u003d1G,\n\t\t01\tnolimit\n\t\t02\tnolimit\nAll tasks\u0027 memory usage under /groupA, /groupA/01, groupA/02 is limited to\ngroupA\u0027s 1Gbytes but OOM Killer just kills tasks in groupA.\n\nThis patch provides makes the bad process be selected from all tasks\nunder hierarchy. BTW, currently, oom_jiffies is updated against groupA\nin above case. oom_jiffies of tree should be updated.\n\nTo see how oom_jiffies is used, please check mem_cgroup_oom_called()\ncallers.\n\n[akpm@linux-foundation.org: build fix]\n[akpm@linux-foundation.org: const fix]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nCc: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Daisuke Nishimura \u003cnishimura@mxp.nes.nec.co.jp\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d969fbe69e07fcceb0558b35d4c75eb046041c5e",
      "tree": "e93bab346a32b061522a946fe3a012155c59c27c",
      "parents": [
        "0670e08bdfc67272f8c3087030417465629b8073"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:31 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "debug cgroup: remove unneeded cgroup_lock\n\nSince we are in cgroup write handler, so the cgrp is valid, so we don\u0027t\nhave to hold cgroup_mutex when calling cgroup_task_count().  One similar\nexample is in cgroup_tasks_open().\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0670e08bdfc67272f8c3087030417465629b8073",
      "tree": "44a4e3b6059aeb8c2a97d5fb8ccf743a2eaafd07",
      "parents": [
        "099fca3225b39f7a3ed853036038054172b55581"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:30 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: don\u0027t change release_agent when remount failed\n\nRemount can fail in either case:\n  - wrong mount options is specified, or option \u0027noprefix\u0027 is changed.\n  - a to-be-added subsys is already mounted/active.\n\nWhen using remount to change \u0027release_agent\u0027, for the above former failure\ncase, remount will return errno with release_agent unchanged, but for the\nlatter case, remount will return EBUSY with relase_agent changed, which is\nunexpected I think:\n\n # mount -t cgroup -o cpu xxx /cgrp1\n # mount -t cgroup -o cpuset,release_agent\u003dagent1 yyy /cgrp2\n # cat /cgrp2/release_agent\n agent1\n # mount -t cgroup -o remount,cpuset,noprefix,release_agent\u003dagent2 yyy /cgrp2\n mount: /cgrp2 not mounted already, or bad option\n # cat /cgrp2/release_agent\n agent1     \u003c-- ok\n # mount -t cgroup -o remount,cpu,cpuset,release_agent\u003dagent2 yyy /cgrp2\n mount: /cgrp2 is busy\n # cat /cgrp2/release_agent\n agent2     \u003c-- unexpected!\n\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "099fca3225b39f7a3ed853036038054172b55581",
      "tree": "c7a8863f9ca8a5c745297e9ee43b63494b6022d1",
      "parents": [
        "b6719ec1ad54e47e40633b19703f2c1254708842"
      ],
      "author": {
        "name": "Li Zefan",
        "email": "lizf@cn.fujitsu.com",
        "time": "Thu Apr 02 16:57:29 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "cgroups: show correct file mode\n\nWe have some read-only files and write-only files, but currently they are\nall set to 0644, which is counter-intuitive and cause trouble for some\ncgroup tools like libcgroup.\n\nThis patch adds \u0027mode\u0027 to struct cftype to allow cgroup subsys to set it\u0027s\nown files\u0027 file mode, and for the most cases cft-\u003emode can be default to 0\nand cgroup will figure out proper mode.\n\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66bdc9cfc77ba89a9ee6c82d28375b646ab4bb1d",
      "tree": "dd0d292a2f413f8c14d2219f8de94516fffe18b5",
      "parents": [
        "ec64f51545fffbc4cb968f0cea56341a4b07e85a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Thu Apr 02 16:57:27 2009 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Apr 02 19:04:54 2009 -0700"
      },
      "message": "kernel/cgroup.c: kfree(NULL) is legal\n\nReduces object file size a bit:\n\nBefore:\n$ size kernel/cgroup.o\n   text    data     bss     dec     hex filename\n  21593    7804    4924   34321    8611 kernel/cgroup.o\nAfter:\n$ size kernel/cgroup.o\n   text    data     bss     dec     hex filename\n  21537    7744    4924   34205    859d kernel/cgroup.o\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nCc: Paul Menage \u003cmenage@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "ec64f51545fffbc4cb968f0cea56341a4b07e85a"
}
