)]}'
{
  "log": [
    {
      "commit": "b82bab4bbe9efa7bc7177fc20620fff19bd95484",
      "tree": "c033a090fbd3caa61f2f3b6ece52c0b4dffeb229",
      "parents": [
        "d15aa2cc641bd193596382357de917b32f1b40cb"
      ],
      "author": {
        "name": "Jason Baron",
        "email": "jbaron@redhat.com",
        "time": "Tue Jul 27 13:18:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jul 27 14:32:06 2010 -0700"
      },
      "message": "dynamic debug: move ddebug_remove_module() down into free_module()\n\nThe command\n\n\techo \"file ec.c +p\" \u003e/sys/kernel/debug/dynamic_debug/control\n\ncauses an oops.\n\nMove the call to ddebug_remove_module() down into free_module().  In this\nway it should be called from all error paths.  Currently, we are missing\nthe remove if the module init routine fails.\n\nSigned-off-by: Jason Baron \u003cjbaron@redhat.com\u003e\nReported-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nTested-by: Thomas Renninger \u003ctrenn@suse.de\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.32+]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edd63cb6b91024332d6983fc51058ac1ef0c081e",
      "tree": "2df04fc5dc35899aa7d4f4c52197f7b492c16c8b",
      "parents": [
        "b0679c63db655fa12007558e267bc0eb1d486fdb"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "message": "sysrq,kdb: Use __handle_sysrq() for kdb\u0027s sysrq function\n\nThe kdb code should not toggle the sysrq state in case an end user\nwants to try and resume the normal kernel execution.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nAcked-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\n"
    },
    {
      "commit": "b0679c63db655fa12007558e267bc0eb1d486fdb",
      "tree": "b210de833621055d02c2114b77d419f09ea73a36",
      "parents": [
        "9e8b624fcaebf9c237b5be9116f4424bf168e6d1"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:07 2010 -0500"
      },
      "message": "debug_core,kdb: fix kgdb_connected bit set in the wrong place\n\nImmediately following an exit from the kdb shell the kgdb_connected\nvariable should be set to zero, unless there are breakpoints planted.\nIf the kgdb_connected variable is not zeroed out with kdb, it is\nimpossible to turn off kdb.\n\nThis patch is merely a work around for now, the real fix will check\nfor the breakpoints.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "9e8b624fcaebf9c237b5be9116f4424bf168e6d1",
      "tree": "9c46796acdbb4bbfe6adbf89bc731dd6eb0adf19",
      "parents": [
        "fb82c0ff27b2c40c6f7a3d1a94cafb154591fa80"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:06 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:06 2010 -0500"
      },
      "message": "Fix merge regression from external kdb to upstream kdb\n\nIn the process of merging kdb to the mainline, the kdb lsmod command\nstopped printing the base load address of kernel modules.  This is\nneeded for using kdb in conjunction with external tools such as gdb.\n\nSimply restore the functionality by adding a kdb_printf for the base\nload address of the kernel modules.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "fb82c0ff27b2c40c6f7a3d1a94cafb154591fa80",
      "tree": "98e49fdc15e9db7eb45e91571ca6187f9a5cf516",
      "parents": [
        "1396a21ba0d4ec381db19bc9cd5b6f25a89cf633"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "message": "repair gdbstub to match the gdbserial protocol specification\n\nThe gdbserial protocol handler should return an empty packet instead\nof an error string when ever it responds to a command it does not\nimplement.\n\nThe problem cases come from a debugger client sending\nqTBuffer, qTStatus, qSearch, qSupported.\n\nThe incorrect response from the gdbstub leads the debugger clients to\nnot function correctly.  Recent versions of gdb will not detach correctly as a result of this behavior.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nSigned-off-by: Dongdong Deng \u003cdongdong.deng@windriver.com\u003e\n"
    },
    {
      "commit": "1396a21ba0d4ec381db19bc9cd5b6f25a89cf633",
      "tree": "09bbe851de6b70d1896d0a72f832b21d98331d9d",
      "parents": [
        "d0c6f6258478e1dba532bf7c28e2cd6e1047d3a4"
      ],
      "author": {
        "name": "Martin Hicks",
        "email": "mort@sgi.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Wed Jul 21 19:27:05 2010 -0500"
      },
      "message": "kdb: break out of kdb_ll() when command is terminated\n\nWithout this patch the \"ll\" linked-list traversal command won\u0027t\nterminate when you hit q/Q.\n\nSigned-off-by: Martin Hicks \u003cmort@sgi.com\u003e\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\n"
    },
    {
      "commit": "9078370c0d2cfe4a905aa34f398bbb0d65921a2b",
      "tree": "0b0d3b1f2a9a6dd2f2deaae9fbf9c8c5509ac13c",
      "parents": [
        "7952f98818d561ed0e11434a7a16acd9a7bae859"
      ],
      "author": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jul 19 11:54:15 2010 +0100"
      },
      "committer": {
        "name": "Catalin Marinas",
        "email": "catalin.marinas@arm.com",
        "time": "Mon Jul 19 11:54:15 2010 +0100"
      },
      "message": "kmemleak: Add support for NO_BOOTMEM configurations\n\nWith commits 08677214 and 59be5a8e, alloc_bootmem()/free_bootmem() and\nfriends use the early_res functions for memory management when\nNO_BOOTMEM is enabled. This patch adds the kmemleak calls in the\ncorresponding code paths for bootmem allocations.\n\nSigned-off-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nAcked-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "ff49d74ad383f54041378144ca1a229ee9aeaa59",
      "tree": "6f37335e313c9a680db8d4e4ce00d17aa11a099b",
      "parents": [
        "e3668dd83ba5958429984286efbc3055be5344c4"
      ],
      "author": {
        "name": "Yehuda Sadeh",
        "email": "yehuda@hq.newdream.net",
        "time": "Sat Jul 03 13:07:35 2010 +1000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jul 04 20:17:22 2010 -0700"
      },
      "message": "module: initialize module dynamic debug later\n\nWe should initialize the module dynamic debug datastructures\nonly after determining that the module is not loaded yet. This\nfixes a bug that introduced in 2.6.35-rc2, where when a trying\nto load a module twice, we also load it\u0027s dynamic printing data\ntwice which causes all sorts of nasty issues. Also handle\nthe dynamic debug cleanup later on failure.\n\nSigned-off-by: Yehuda Sadeh \u003cyehuda@hq.newdream.net\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (removed a #ifdef)\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "123f94f22e3d283dfe68742b269c245b0501ad82",
      "tree": "1d40043b0909f309cf77204ea87be9e61f143e79",
      "parents": [
        "4b78c119f0ba715b4e29b190bf4d7bce810ea0d6",
        "8c215bd3890c347dfb6a2db4779755f8b9c298a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 02 09:52:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jul 02 09:52:58 2010 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Cure nr_iowait_cpu() users\n  init: Fix comment\n  init, sched: Fix race between init and kthreadd\n"
    },
    {
      "commit": "8c215bd3890c347dfb6a2db4779755f8b9c298a9",
      "tree": "e6bd5de8a028babe9ec75f744977bd1424df106c",
      "parents": [
        "9715856922bf8475f5428c29b6f4a9eebc97d391"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jul 01 09:07:17 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jul 01 09:39:48 2010 +0200"
      },
      "message": "sched: Cure nr_iowait_cpu() users\n\nCommit 0224cf4c5e (sched: Intoduce get_cpu_iowait_time_us())\nbroke things by not making sure preemption was indeed disabled\nby the callers of nr_iowait_cpu() which took the iowait value of\nthe current cpu.\n\nThis resulted in a heap of preempt warnings. Cure this by making\nnr_iowait_cpu() take a cpu number and fix up the callers to pass\nin the right number.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: linux-pm@lists.linux-foundation.org\nLKML-Reference: \u003c1277968037.1868.120.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "7a0ea09ad5352efce8fe79ed853150449903b9f5",
      "tree": "939829793ffb34a78f83b694a725e66dfc50cc16",
      "parents": [
        "f4985dc714d7ab1920c5aa502b7f4073fa1b4177"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Jun 30 09:51:19 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Jun 30 15:43:44 2010 -0700"
      },
      "message": "futex: futex_find_get_task remove credentails check\n\nfutex_find_get_task is currently used (through lookup_pi_state) from two\ncontexts, futex_requeue and futex_lock_pi_atomic.  None of the paths\nlooks it needs the credentials check, though.  Different (e)uids\nshouldn\u0027t matter at all because the only thing that is important for\nshared futex is the accessibility of the shared memory.\n\nThe credentail check results in glibc assert failure or process hang (if\nglibc is compiled without assert support) for shared robust pthread\nmutex with priority inheritance if a process tries to lock already held\nlock owned by a process with a different euid:\n\npthread_mutex_lock.c:312: __pthread_mutex_lock_full: Assertion `(-(e)) !\u003d 3 || !robust\u0027 failed.\n\nThe problem is that futex_lock_pi_atomic which is called when we try to\nlock already held lock checks the current holder (tid is stored in the\nfutex value) to get the PI state.  It uses lookup_pi_state which in turn\ngets task struct from futex_find_get_task.  ESRCH is returned either\nwhen the task is not found or if credentials check fails.\n\nfutex_lock_pi_atomic simply returns if it gets ESRCH.  glibc code,\nhowever, doesn\u0027t expect that robust lock returns with ESRCH because it\nshould get either success or owner died.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nAcked-by: Darren Hart \u003cdvhltc@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: Alexey Kuznetsov \u003ckuznet@ms2.inr.ac.ru\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e05bd3367bd3d88715b53766f95bb3a8ec7ab59e",
      "tree": "db9f13cd687c39bf873ff5dbed28bbd142fc6940",
      "parents": [
        "482ce512c543f3b30ab881702fa997e71252e604"
      ],
      "author": {
        "name": "Pavan Naregundi",
        "email": "pavan@linux.vnet.ibm.com",
        "time": "Tue Jun 29 15:05:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 29 15:29:31 2010 -0700"
      },
      "message": "kexec: fix Oops in crash_shrink_memory()\n\nWhen crashkernel is not enabled, \"echo 0 \u003e /sys/kernel/kexec_crash_size\"\nOOPSes the kernel in crash_shrink_memory.  This happens when\ncrash_shrink_memory tries to release the \u0027crashk_res\u0027 resource which are\nnot reserved.  Also value of \"/sys/kernel/kexec_crash_size\" shows as 1,\nwhich should be 0.\n\nThis patch fixes the OOPS in crash_shrink_memory and shows\n\"/sys/kernel/kexec_crash_size\" as 0 when crash kernel memory is not\nreserved.\n\nSigned-off-by: Pavan Naregundi \u003cpavan@linux.vnet.ibm.com\u003e\nReviewed-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Simon Horman \u003chorms@verge.net.au\u003e\nCc: Vivek Goyal \u003cvgoyal@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": "5904b3b81d25166e5e39b9727645bb47937618e3",
      "tree": "2a306f8b0cdea354b3ebc157623dededcf471091",
      "parents": [
        "f3866db8f7534ba8bbb342bebcf5ede542035528",
        "b70e4f0529c089b00d0a6da13106db4de1ada4c7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:24:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:24:43 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Fix undeclared ENOSYS in include/linux/tracepoint.h\n  perf record: prevent kill(0, SIGTERM);\n  perf session: Remove threads from tree on PERF_RECORD_EXIT\n  perf/tracing: Fix regression of perf losing kprobe events\n  perf_events: Fix Intel Westmere event constraints\n  perf record: Don\u0027t call newt functions when not initialized\n"
    },
    {
      "commit": "f3866db8f7534ba8bbb342bebcf5ede542035528",
      "tree": "f73e761ac85faea698eb6ab700361ef199aa68c7",
      "parents": [
        "f014d937d61f47761f961eba903feb2ffa1793aa",
        "4673247562e39a17e09440fa1400819522ccd446"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:23:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:23:12 2010 -0700"
      },
      "message": "Merge branch \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  genirq: Deal with desc-\u003eset_type() changing desc-\u003echip\n"
    },
    {
      "commit": "f014d937d61f47761f961eba903feb2ffa1793aa",
      "tree": "4a6a9441b21711e34d567a8066950548935b9b3a",
      "parents": [
        "cf91b415c8419513ada650a932bfb32a526d4d98",
        "0d98bb2656e9bd2dfda2d089db1fe1dbdab41504"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:18:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:18:30 2010 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: Prevent compiler from optimising the sched_avg_update() loop\n  sched: Fix over-scheduling bug\n  sched: Fix PROVE_RCU vs cpu_cgroup\n"
    },
    {
      "commit": "cf91b415c8419513ada650a932bfb32a526d4d98",
      "tree": "b69cc7920d763b07fa0722edf58813dc17206734",
      "parents": [
        "e6cb6281ef8547fea1243b1c2a4e0f08d9b86ae1",
        "3310d4d38fbc514e7b18bd3b1eea8effdd63b5aa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:18:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:18:02 2010 -0700"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  nohz: Fix nohz ratelimit\n"
    },
    {
      "commit": "e6cb6281ef8547fea1243b1c2a4e0f08d9b86ae1",
      "tree": "4444be8141566dec3c88ff5fa7354cbe4cebccdc",
      "parents": [
        "ab8aadbda7d59d4674ef614cba2a67c50667a6af",
        "8695159967957015f8dfb49315d6f88e111d90e0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:17:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Jun 28 12:17:40 2010 -0700"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched: silence PROVE_RCU in sched_fork()\n  idr: fix RCU lockdep splat in idr_get_next()\n  rcu: apply RCU protection to wake_affine()\n"
    },
    {
      "commit": "0d98bb2656e9bd2dfda2d089db1fe1dbdab41504",
      "tree": "2172bbdd7fb21640062b2a692ded3d9cebc2382c",
      "parents": [
        "3c93717cfa51316e4dbb471e7c0f9d243359d5f8"
      ],
      "author": {
        "name": "Will Deacon",
        "email": "will.deacon@arm.com",
        "time": "Mon May 24 12:11:43 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 25 16:11:50 2010 +0200"
      },
      "message": "sched: Prevent compiler from optimising the sched_avg_update() loop\n\nGCC 4.4.1 on ARM has been observed to replace the while loop in\nsched_avg_update with a call to uldivmod, resulting in the\nfollowing build failure at link-time:\n\nkernel/built-in.o: In function `sched_avg_update\u0027:\n kernel/sched.c:1261: undefined reference to `__aeabi_uldivmod\u0027\n kernel/sched.c:1261: undefined reference to `__aeabi_uldivmod\u0027\nmake: *** [.tmp_vmlinux1] Error 1\n\nThis patch introduces a fake data hazard to the loop body to\nprevent the compiler optimising the loop away.\n\nSigned-off-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8695159967957015f8dfb49315d6f88e111d90e0",
      "tree": "d575083d37a069be585d575ec036faa8765f1d0c",
      "parents": [
        "94bfa3b6692c7a3f6f119596724204ec975d3ef0"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Tue Jun 22 11:44:53 2010 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 23 15:14:09 2010 -0700"
      },
      "message": "sched: silence PROVE_RCU in sched_fork()\n\nBecause cgroup_fork() is ran before sched_fork() [ from copy_process() ]\nand the child\u0027s pid is not yet visible the child is pinned to its\ncgroup. Therefore we can silence this warning.\n\nA nicer solution would be moving cgroup_fork() to right after\ndup_task_struct() and exclude PF_STARTING from task_subsys_state().\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nReviewed-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "f3b577dec1f2ce32d2db6d2ca6badff7002512af",
      "tree": "c9d5d84b2d3e4ae1251f69932a526367a2bac7fa",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Tue Jun 01 14:06:13 2010 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Jun 23 06:50:44 2010 -0700"
      },
      "message": "rcu: apply RCU protection to wake_affine()\n\nThe task_group() function returns a pointer that must be protected\nby either RCU, the -\u003ealloc_lock, or the cgroup lock (see the\nrcu_dereference_check() in task_subsys_state(), which is invoked by\ntask_group()).  The wake_affine() function currently does none of these,\nwhich means that a concurrent update would be within its rights to free\nthe structure returned by task_group().  Because wake_affine() uses this\nstructure only to compute load-balancing heuristics, there is no reason\nto acquire either of the two locks.\n\nTherefore, this commit introduces an RCU read-side critical section that\nstarts before the first call to task_group() and ends after the last use\nof the \"tg\" pointer returned from task_group().  Thanks to Li Zefan for\npointing out the need to extend the RCU read-side critical section from\nthat proposed by the original patch.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "3c93717cfa51316e4dbb471e7c0f9d243359d5f8",
      "tree": "0c37ea18287556b42d6264d41c7093dd07f052f5",
      "parents": [
        "dc61b1d65e353d638b2445f71fb8e5b5630f2415"
      ],
      "author": {
        "name": "Alex,Shi",
        "email": "alex.shi@intel.com",
        "time": "Thu Jun 17 14:08:13 2010 +0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Jun 18 10:45:25 2010 +0200"
      },
      "message": "sched: Fix over-scheduling bug\n\nCommit e70971591 (\"sched: Optimize unused cgroup configuration\") introduced\nan imbalanced scheduling bug.\n\nIf we do not use CGROUP, function update_h_load won\u0027t update h_load. When the\nsystem has a large number of tasks far more than logical CPU number, the\nincorrect cfs_rq[cpu]-\u003eh_load value will cause load_balance() to pull too\nmany tasks to the local CPU from the busiest CPU. So the busiest CPU keeps\ngoing in a round robin. That will hurt performance.\n\nThe issue was found originally by a scientific calculation workload that\ndeveloped by Yanmin. With that commit, the workload performance drops\nabout 40%.\n\n CPU  before    after\n\n 00   : 2       : 7\n 01   : 1       : 7\n 02   : 11      : 6\n 03   : 12      : 7\n 04   : 6       : 6\n 05   : 11      : 7\n 06   : 10      : 6\n 07   : 12      : 7\n 08   : 11      : 6\n 09   : 12      : 6\n 10   : 1       : 6\n 11   : 1       : 6\n 12   : 6       : 6\n 13   : 2       : 6\n 14   : 2       : 6\n 15   : 1       : 6\n\nReviewed-by: Yanmin zhang \u003cyanmin.zhang@intel.com\u003e\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1276754893.9452.5442.camel@debian\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3310d4d38fbc514e7b18bd3b1eea8effdd63b5aa",
      "tree": "14e2a5b6126c9b1341a3d4bf5299545ce4b1999a",
      "parents": [
        "7e27d6e778cd87b6f2415515d7127eba53fe5d02"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "peterz@infradead.org",
        "time": "Thu Jun 17 18:02:37 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Jun 17 19:37:29 2010 +0200"
      },
      "message": "nohz: Fix nohz ratelimit\n\nChris Wedgwood reports that 39c0cbe (sched: Rate-limit nohz) causes a\nserial console regression, unresponsiveness, and indeed it does. The\nreason is that the nohz code is skipped even when the tick was already\nstopped before the nohz_ratelimit(cpu) condition changed.\n\nMove the nohz_ratelimit() check to the other conditions which prevent\nlong idle sleeps.\n\nReported-by: Chris Wedgwood \u003ccw@f00f.org\u003e\nTested-by: Brian Bloniarz \u003cbmb@athenacr.com\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nCc: Jef Driesen \u003cjefdriesen@telenet.be\u003e\nLKML-Reference: \u003c1276790557.27822.516.camel@twins\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "42de5532f4a58a52a60bdd8bd4f80f9f210dd65b",
      "tree": "f624579c4c27e1ffcba5e4141fcc0877c3a6ae56",
      "parents": [
        "e9e8b4dd142da3b6cbf301ba922804d6cdc31a17",
        "2a6b69765ad794389f2fc3e14a0afa1a995221c2"
      ],
      "author": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 12 01:15:40 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Sat Jun 12 01:15:40 2010 -0400"
      },
      "message": "Merge branch \u0027bugzilla-13931-sleep-nvs\u0027 into release\n\nConflicts:\n\tdrivers/acpi/sleep.c\n\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "a8fb2608053547bc3152ea61a5ec7cdfce5d942c",
      "tree": "08f5fd61dd3fce05a2472f457c48ec249966b372",
      "parents": [
        "d11007703c31db534674ebeeb9eb047bbbe758bd"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "srostedt@redhat.com",
        "time": "Thu Jun 10 14:53:16 2010 -0400"
      },
      "committer": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Thu Jun 10 20:56:54 2010 -0400"
      },
      "message": "perf/tracing: Fix regression of perf losing kprobe events\n\nWith the addition of the code to shrink the kernel tracepoint\ninfrastructure, we lost kprobes being traced by perf. The reason\nis that I tested if the \"tp_event-\u003eclass-\u003eperf_probe\" existed before\nenabling it. This prevents \"ftrace only\" events (like the function\ntrace events) from being enabled by perf.\n\nUnfortunately, kprobe events do not use perf_probe. This causes\nkprobes to be missed by perf. To fix this, we add the test to\nsee if \"tp_event-\u003eclass-\u003ereg\" exists as well as perf_probe.\n\nNormal trace events have only \"perf_probe\" but no \"reg\" function,\nand kprobes and syscalls have the \"reg\" but no \"perf_probe\".\nThe ftrace unique events do not have either, so this is a valid\ntest. If a kprobe or syscall is not to be probed by perf, the\n\"reg\" function is called anyway, and will return a failure and\nprevent perf from probing it.\n\nReported-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nTested-by: Srikar Dronamraju \u003csrikar@linux.vnet.ibm.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\n"
    },
    {
      "commit": "85ca7886f566ae387a57a37bc0ffab25e3e117b5",
      "tree": "d170966b3352b3463669492648861795aad0fb92",
      "parents": [
        "7c8d20d40f29e7c08332d406d7a65678dece4627",
        "16106822b67e0a5eb228aebf47e33d6cad1e91b6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 10 09:30:09 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 10 09:30:09 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  tracing: Fix null pointer deref with SEND_SIG_FORCED\n  perf: Fix signed comparison in perf_adjust_period()\n  powerpc/oprofile: fix potential buffer overrun in op_model_cell.c\n  perf symbols: Set the DSO long name when using symbol_conf.vmlinux_name\n"
    },
    {
      "commit": "dd4c4f17d722ffeb2515bf781400675a30fcead7",
      "tree": "0190eff340ffeac7800a3d7d1e0c1232c09397ef",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Matthew Garrett",
        "email": "mjg@redhat.com",
        "time": "Fri May 28 16:32:14 2010 -0400"
      },
      "committer": {
        "name": "Len Brown",
        "email": "len.brown@intel.com",
        "time": "Thu Jun 10 11:02:34 2010 -0400"
      },
      "message": "suspend: Move NVS save/restore code to generic suspend functionality\n\nSaving platform non-volatile state may be required for suspend to RAM as\nwell as hibernation. Move it to more generic code.\n\nSigned-off-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nTested-by: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Len Brown \u003clen.brown@intel.com\u003e\n"
    },
    {
      "commit": "4673247562e39a17e09440fa1400819522ccd446",
      "tree": "31746ff2cd7f41048b7507cd3cae9dae2a1519be",
      "parents": [
        "84f7586edab93052bbe7eb72e1e9bce5f7b6ae45"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jun 07 17:53:51 2010 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 09 17:05:08 2010 +0200"
      },
      "message": "genirq: Deal with desc-\u003eset_type() changing desc-\u003echip\n\nThe set_type() function can change the chip implementation when the\ntrigger mode changes. That might result in using an non-initialized\nirq chip when called from __setup_irq() or when called via\nset_irq_type() on an already enabled irq. \n\nThe set_irq_type() function should not be called on an enabled irq,\nbut because we forgot to put a check into it, we have a bunch of users\nwhich grew the habit of doing that and it never blew up as the\nfunction is serialized via desc-\u003elock against all users of desc-\u003echip\nand they never hit the non-initialized irq chip issue.\n\nThe easy fix for the __setup_irq() issue would be to move the\nirq_chip_set_defaults(desc-\u003echip) call after the trigger setting to\nmake sure that a chip change is covered.\n\nBut as we have already users, which do the type setting after\nrequest_irq(), the safe fix for now is to call irq_chip_set_defaults()\nfrom __irq_set_trigger() when desc-\u003eset_type() changed the irq chip.\n\nIt needs a deeper analysis whether we should refuse to change the chip\non an already enabled irq, but that\u0027d be a large scale change to fix\nall the existing users. So that\u0027s neither stable nor 2.6.35 material.\n\nReported-by: Esben Haabendal \u003ceha@doredevelopment.dk\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: linuxppc-dev \u003clinuxppc-dev@ozlabs.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "dc61b1d65e353d638b2445f71fb8e5b5630f2415",
      "tree": "07d79b2d385a380207cd889ac764b57190421fd1",
      "parents": [
        "3975d16760d4be7402d1067c548c30c427971331"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Tue Jun 08 11:40:42 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 08 18:44:04 2010 +0200"
      },
      "message": "sched: Fix PROVE_RCU vs cpu_cgroup\n\nPROVE_RCU has a few issues with the cpu_cgroup because the scheduler\ntypically holds rq-\u003elock around the css rcu derefs but the generic\ncgroup code doesn\u0027t (and can\u0027t) know about that lock.\n\nProvide means to add extra checks to the css dereference and use that\nin the scheduler to annotate its users.\n\nThe addition of rq-\u003elock to these checks is correct because the\ncgroup_subsys::attach() method takes the rq-\u003elock for each task it\nmoves, therefore by holding that lock, we ensure the task is pinned to\nthe current cgroup and the RCU derefence is valid.\n\nThat leaves one genuine race in __sched_setscheduler() where we used\ntask_group() without holding any of the required locks and thus raced\nwith the cgroup code. Solve this by moving the check under the\nappropriate lock.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@linux.vnet.ibm.com\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "f6ab91add6355e231e1c47897027b2a6ee4fa268",
      "tree": "74dffdf3b78c290d38a78b73788dce64e4c1e857",
      "parents": [
        "58cc1a9e3b11a84e66c4d3a4cc9073f2cb0ecabb"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 04 15:18:01 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 08 18:43:00 2010 +0200"
      },
      "message": "perf: Fix signed comparison in perf_adjust_period()\n\nFrederic reported that frequency driven swevents didn\u0027t work properly\nand even caused a division-by-zero error.\n\nIt turns out there are two bugs, the division-by-zero comes from a\nfailure to deal with that in perf_calculate_period().\n\nThe other was more interesting and turned out to be a wrong comparison\nin perf_adjust_period(). The comparison was between an s64 and u64 and\ngot implicitly converted to an unsigned comparison. The problem is\nthat period_left is typically \u003c 0, so it ended up being always true.\n\nCure this by making the local period variables s64.\n\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nTested-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90ec7819737d42a0ad1c2df1ff56016facae3c6e",
      "tree": "0dac92b38de5cb13764b5f3de33346359928deda",
      "parents": [
        "8ce655e737dc395e115ecdce143a43b9b6127f46",
        "9bea7f23952d5948f8e5dfdff4de09bb9981fb5f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 21:09:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 21:09:48 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:\n  module: fix bne2 \"gave up waiting for init of module libcrc32c\"\n  module: verify_export_symbols under the lock\n  module: move find_module check to end\n  module: make locking more fine-grained.\n  module: Make module sysfs functions private.\n  module: move sysfs exposure to end of load_module\n  module: fix kdb\u0027s illicit use of struct module_use.\n  module: Make the \u0027usage\u0027 lists be two-way\n"
    },
    {
      "commit": "9bea7f23952d5948f8e5dfdff4de09bb9981fb5f",
      "tree": "9cb7231bcf901fe4198142b9b054ce5ae6ce34c8",
      "parents": [
        "be593f4ce4eb1bd40e38fdc403371f149f6f12eb"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:37 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:37 2010 +0930"
      },
      "message": "module: fix bne2 \"gave up waiting for init of module libcrc32c\"\n\nProblem: it\u0027s hard to avoid an init routine stumbling over a\nrequest_module these days.  And it\u0027s not clear it\u0027s always a bad idea:\nfor example, a module like kvm with dynamic dependencies on kvm-intel\nor kvm-amd would be neater if it could simply request_module the right\none.\n\nIn this particular case, it\u0027s libcrc32c:\n\n\tlibcrc32c_mod_init\n\t crypto_alloc_shash\n\t  crypto_alloc_tfm\n\t   crypto_find_alg\n\t    crypto_alg_mod_lookup\n\t     crypto_larval_lookup\n\t      request_module\n\nIf another module is waiting inside resolve_symbol() for libcrc32c to\nfinish initializing (ie. bne2 depends on libcrc32c) then it does so\nholding the module lock, and our request_module() can\u0027t make progress\nuntil that is released.\n\nWaiting inside resolve_symbol() without the lock isn\u0027t all that hard:\nwe just need to pass the -EBUSY up the call chain so we can sleep\nwhere we don\u0027t hold the lock.  Error reporting is a bit trickier: we\nneed to copy the name of the unfinished module before releasing the\nlock.\n\nOther notes:\n1) This also fixes a theoretical issue where a weak dependency would allow\n   symbol version mismatches to be ignored.\n2) We rename use_module to ref_module to make life easier for the only\n   external user (the out-of-tree ksplice patches).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Tim Abbot \u003ctabbott@ksplice.com\u003e\nTested-by: Brandon Philips \u003cbphilips@suse.de\u003e\n"
    },
    {
      "commit": "be593f4ce4eb1bd40e38fdc403371f149f6f12eb",
      "tree": "693aee53e2d87a8ae92b6276d2aef766e8154814",
      "parents": [
        "3bafeb6247042dcbb72b0141ec7c7107de9f0b99"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:37 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:37 2010 +0930"
      },
      "message": "module: verify_export_symbols under the lock\n\nIt disabled preempt so it was \"safe\", but nothing stops another module\nslipping in before this module is added to the global list now we don\u0027t\nhold the lock the whole time.\n\nSo we check this just after we check for duplicate modules, and just\nbefore we put the module in the global list.\n\n(find_symbol finds symbols in coming and going modules, too).\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "3bafeb6247042dcbb72b0141ec7c7107de9f0b99",
      "tree": "f9b8f2437455332cd64d94bedb0836ac0f2b6fd9",
      "parents": [
        "75676500f8298f0ee89db12db97294883c4b768e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jun 05 11:17:36 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:37 2010 +0930"
      },
      "message": "module: move find_module check to end\n\nI think Rusty may have made the lock a bit _too_ finegrained there, and\ndidn\u0027t add it to some places that needed it. It looks, for example, like\nPATCH 1/2 actually drops the lock in places where it\u0027s needed\n(\"find_module()\" is documented to need it, but now load_module() didn\u0027t\nhold it at all when it did the find_module()).\n\nRather than adding a new \"module_loading\" list, I think we should be able\nto just use the existing \"modules\" list, and just fix up the locking a\nbit.\n\nIn fact, maybe we could just move the \"look up existing module\" a bit\nlater - optimistically assuming that the module doesn\u0027t exist, and then\njust undoing the work if it turns out that we were wrong, just before\nadding ourselves to the list.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "75676500f8298f0ee89db12db97294883c4b768e",
      "tree": "fbd74f1b6bfd258fac980c6cc3d4fa9eafa47d51",
      "parents": [
        "6407ebb271fc34440b306f305e1efb7685eece26"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 +0930"
      },
      "message": "module: make locking more fine-grained.\n\nKay Sievers \u003ckay.sievers@vrfy.org\u003e reports that we still have some\ncontention over module loading which is slowing boot.\n\nLinus also disliked a previous \"drop lock and regrab\" patch to fix the\nbne2 \"gave up waiting for init of module libcrc32c\" message.\n\nThis is more ambitious: we only grab the lock where we need it.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Brandon Philips \u003cbrandon@ifup.org\u003e\nCc: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6407ebb271fc34440b306f305e1efb7685eece26",
      "tree": "dd3fa7484bcaa4499138d2249dbed24f003fdf85",
      "parents": [
        "80a3d1bb410e000e176931a076cdf19a1e89a955"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 +0930"
      },
      "message": "module: Make module sysfs functions private.\n\nThese were placed in the header in ef665c1a06 to get the various\nSYSFS/MODULE config combintations to compile.\n\nThat may have been necessary then, but it\u0027s not now.  These functions\nare all local to module.c.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "80a3d1bb410e000e176931a076cdf19a1e89a955",
      "tree": "6883bbc3b2032d9604374513ccfd496dd63e76ba",
      "parents": [
        "c8e21ced08b39ef8dfe7236fb2a923a95f645262"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 +0930"
      },
      "message": "module: move sysfs exposure to end of load_module\n\nThis means a little extra work, but is more logical: we don\u0027t put\nanything in sysfs until we\u0027re about to put the module into the\nglobal list an parse its parameters.\n\nThis also gives us a logical place to put duplicate module detection\nin the next patch.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\n"
    },
    {
      "commit": "c8e21ced08b39ef8dfe7236fb2a923a95f645262",
      "tree": "da34400daf3049814b459b9c8ba507d90abfe2bc",
      "parents": [
        "2c02dfe7fe3fba97a5665d329d039d2415ea5607"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:35 2010 -0600"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:36 2010 +0930"
      },
      "message": "module: fix kdb\u0027s illicit use of struct module_use.\n\nLinus changed the structure, and luckily this didn\u0027t compile any more.\n\nReported-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Martin Hicks \u003cmort@sgi.com\u003e\n"
    },
    {
      "commit": "2c02dfe7fe3fba97a5665d329d039d2415ea5607",
      "tree": "7f50644bbfcc119cb85e21642a76eabfaf77b8ad",
      "parents": [
        "ad8456361fa19068cf49b50a4f98e41b73c08e76"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 31 12:19:37 2010 -0700"
      },
      "committer": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Jun 05 11:17:35 2010 +0930"
      },
      "message": "module: Make the \u0027usage\u0027 lists be two-way\n\nWhen adding a module that depends on another one, we used to create a\none-way list of \"modules_which_use_me\", so that module unloading could\nsee who needs a module.\n\nIt\u0027s actually quite simple to make that list go both ways: so that we\nnot only can see \"who uses me\", but also see a list of modules that are\n\"used by me\".\n\nIn fact, we always wanted that list in \"module_unload_free()\": when we\nunload a module, we want to also release all the other modules that are\nused by that module.  But because we didn\u0027t have that list, we used to\nfirst iterate over all modules, and then iterate over each \"used by me\"\nlist of that module.\n\nBy making the list two-way, we simplify module_unload_free(), and it\nallows for some trivial fixes later too.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e (cleaned \u0026 rebased)\n"
    },
    {
      "commit": "d2dd328b7f7bc6cebe167648289337755944ad2a",
      "tree": "5d664a2db1ac209f7537452ddc02597972f7aa37",
      "parents": [
        "c1518f12bab97a6d409a25aaccb02dc8895800f3",
        "1abec4fdbb142e3ccb6ce99832fae42129134a96"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:37:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:37:44 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://git.kernel.dk/linux-2.6-block: (27 commits)\n  block: make blk_init_free_list and elevator_init idempotent\n  block: avoid unconditionally freeing previously allocated request_queue\n  pipe: change /proc/sys/fs/pipe-max-pages to byte sized interface\n  pipe: change the privilege required for growing a pipe beyond system max\n  pipe: adjust minimum pipe size to 1 page\n  block: disable preemption before using sched_clock()\n  cciss: call BUG() earlier\n  Preparing 8.3.8rc2\n  drbd: Reduce verbosity\n  drbd: use drbd specific ratelimit instead of global printk_ratelimit\n  drbd: fix hang on local read errors while disconnected\n  drbd: Removed the now empty w_io_error() function\n  drbd: removed duplicated #includes\n  drbd: improve usage of MSG_MORE\n  drbd: need to set socket bufsize early to take effect\n  drbd: improve network latency, TCP_QUICKACK\n  drbd: Revert \"drbd: Create new current UUID as late as possible\"\n  brd: support discard\n  Revert \"writeback: fix WB_SYNC_NONE writeback from umount\"\n  Revert \"writeback: ensure that WB_SYNC_NONE writeback with sb pinned is sync\"\n  ...\n"
    },
    {
      "commit": "9e506f7adce8e6165a104d3d78fddd8ff0cdccf8",
      "tree": "9ddfd67eec7e8a7dc73fb0ced97cc06e54a35c63",
      "parents": [
        "94b3dd0f7bb393d93e84a173b1df9b8b64c83ac4"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Fri Jun 04 14:15:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:21:45 2010 -0700"
      },
      "message": "kernel/: fix BUG_ON checks for cpu notifier callbacks direct call\n\nThe commit 80b5184cc537718122e036afe7e62d202b70d077 (\"kernel/: convert cpu\nnotifier to return encapsulate errno value\") changed the return value of\ncpu notifier callbacks.\n\nThose callbacks don\u0027t return NOTIFY_BAD on failures anymore.  But there\nare a few callbacks which are called directly at init time and checking\nthe return value.\n\nI forgot to change BUG_ON checking by the direct callers in the commit.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@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": "94b3dd0f7bb393d93e84a173b1df9b8b64c83ac4",
      "tree": "11f49a1614e8321a6b4335f7a5022a487838397d",
      "parents": [
        "007d08678eb87478b65b3f229960c81dd7c7b8f3"
      ],
      "author": {
        "name": "Greg Thelen",
        "email": "gthelen@google.com",
        "time": "Fri Jun 04 14:15:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:21:45 2010 -0700"
      },
      "message": "cgroups: alloc_css_id() increments hierarchy depth\n\nChild groups should have a greater depth than their parents.  Prior to\nthis change, the parent would incorrectly report zero memory usage for\nchild cgroups when use_hierarchy is enabled.\n\ntest script:\n  mount -t cgroup none /cgroups -o memory\n  cd /cgroups\n  mkdir cg1\n\n  echo 1 \u003e cg1/memory.use_hierarchy\n  mkdir cg1/cg11\n\n  echo $$ \u003e cg1/cg11/tasks\n  dd if\u003d/dev/zero of\u003d/tmp/foo bs\u003d1M count\u003d1\n\n  echo\n  echo CHILD\n  grep cache cg1/cg11/memory.stat\n\n  echo\n  echo PARENT\n  grep cache cg1/memory.stat\n\n  echo $$ \u003e tasks\n  rmdir cg1/cg11 cg1\n  cd /\n  umount /cgroups\n\nUsing fae9c79, a recent patch that changed alloc_css_id() depth computation,\nthe parent incorrectly reports zero usage:\n  root@ubuntu:~# ./test\n  1+0 records in\n  1+0 records out\n  1048576 bytes (1.0 MB) copied, 0.0151844 s, 69.1 MB/s\n\n  CHILD\n  cache 1048576\n  total_cache 1048576\n\n  PARENT\n  cache 0\n  total_cache 0\n\nWith this patch, the parent correctly includes child usage:\n  root@ubuntu:~# ./test\n  1+0 records in\n  1+0 records out\n  1048576 bytes (1.0 MB) copied, 0.0136827 s, 76.6 MB/s\n\n  CHILD\n  cache 1052672\n  total_cache 1052672\n\n  PARENT\n  cache 0\n  total_cache 1052672\n\nSigned-off-by: Greg Thelen \u003cgthelen@google.com\u003e\nAcked-by: Paul Menage \u003cmenage@google.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Li Zefan \u003clizf@cn.fujitsu.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[2.6.34.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "485d527686850d68a0e9006dd9904f19f122485e",
      "tree": "8400c646135bb4ce68f137004298e1be7fdbd913",
      "parents": [
        "d6d03f9158516b50d0d343158e3f33bcff1e4ca5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Fri Jun 04 14:14:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jun 04 15:21:45 2010 -0700"
      },
      "message": "sys_personality: change sys_personality() to accept \"unsigned int\" instead of u_long\n\ntask_struct-\u003epesonality is \"unsigned int\", but sys_personality() paths use\n\"unsigned long pesonality\".  This means that every assignment or\ncomparison is not right.  In particular, if this argument does not fit\ninto \"unsigned int\" __set_personality() changes the caller\u0027s personality\nand then sys_personality() returns -EINVAL.\n\nTurn this argument into \"unsigned int\" and avoid overflows.  Obviously,\nthis is the user-visible change, we just ignore the upper bits.  But this\ncan\u0027t break the sane application.\n\nThere is another thing which can confuse the poorly written applications.\nUser-space thinks that this syscall returns int, not long.  This means\nthat the returned value can be negative and look like the error code.  But\nnote that libc won\u0027t be confused and thus errno won\u0027t be set, and with\nthis patch the user-space can never get -1 unless sys_personality() really\nfails.  And, most importantly, the negative RET !\u003d -1 is only possible if\nthat app previously called personality(RET).\n\nPointed-out-by: Wenming Zhang \u003cwezhang@redhat.com\u003e\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\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": "39d112100e561686ab1e2b19c57984163ad6c1fa",
      "tree": "19b3cd50345306de6f95b58b4a35e8f725786b9b",
      "parents": [
        "167b7129042a4b4c09bb4ede5482ff79340a3999",
        "02f726949f2be0967aa4871dd4e47d3967779b26"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 03 15:47:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 03 15:47:51 2010 -0700"
      },
      "message": "Merge branch \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027sched-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  sched, trace: Fix sched_switch() prev_state argument\n  sched: Fix wake_affine() vs RT tasks\n  sched: Make sure timers have migrated before killing the migration_thread\n"
    },
    {
      "commit": "f150dba6d4a1e275b62ca76572c2786c71b91e85",
      "tree": "1fb8ed0a64f69431e8a3304a1b346a19979028b9",
      "parents": [
        "636667a545b2d16797f27002a65d688c195c9b60",
        "c6df8d5ab87a246942d138321e1721edbb69f6e1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 03 15:45:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jun 03 15:45:26 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf: Fix crash in swevents\n  perf buildid-list: Fix --with-hits event processing\n  perf scripts python: Give field dict to unhandled callback\n  perf hist: fix objdump output parsing\n  perf-record: Check correct pid when forking\n  perf: Do the comm inheritance per thread in event__process_task\n  perf: Use event__process_task from perf sched\n  perf: Process comm events by tid\n  blktrace: Fix new kernel-doc warnings\n  perf_events: Fix unincremented buffer base on partial copy\n  perf_events: Fix event scheduling issues introduced by transactional API\n  perf_events, trace: Fix perf_trace_destroy(), mutex went missing\n  perf_events, trace: Fix probe unregister race\n  perf_events: Fix races in group composition\n  perf_events: Fix races and clean up perf_event and perf_mmap_data interaction\n"
    },
    {
      "commit": "c6df8d5ab87a246942d138321e1721edbb69f6e1",
      "tree": "4fa2965d148c3e7ea456ab889d278d5c16d25d17",
      "parents": [
        "da3fd1a0010ccc9fe6fd5ae2b9e85e1aacc03e4d"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu Jun 03 11:21:20 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Jun 03 17:03:08 2010 +0200"
      },
      "message": "perf: Fix crash in swevents\n\nFrederic reported that because swevents handling doesn\u0027t disable IRQs\nanymore, we can get a recursion of perf_adjust_period(), once from\noverflow handling and once from the tick.\n\nIf both call -\u003edisable, we get a double hlist_del_rcu() and trigger\na LIST_POISON2 dereference.\n\nSince we don\u0027t actually need to stop/start a swevent to re-programm\nthe hardware (lack of hardware to program), simply nop out these\ncallbacks for the swevent pmu.\n\nReported-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1275557609.27810.35218.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ff9da691c0498ff81fdd014e7a0731dab2337dac",
      "tree": "429dc9ea36c9927954ed3a32f03d28730e693c8b",
      "parents": [
        "419f8367ea37e5adc5d95479e8fd5554b92b49fe"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jun 03 14:54:39 2010 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "jaxboe@fusionio.com",
        "time": "Thu Jun 03 14:54:39 2010 +0200"
      },
      "message": "pipe: change /proc/sys/fs/pipe-max-pages to byte sized interface\n\nThis changes the interface to be based on bytes instead. The API\nmatches that of F_SETPIPE_SZ in that it rounds up the passed in\nsize so that the resulting page array is a power-of-2 in size.\n\nThe proc file is renamed to /proc/sys/fs/pipe-max-size to\nreflect this change.\n\nSigned-off-by: Jens Axboe \u003cjaxboe@fusionio.com\u003e\n"
    },
    {
      "commit": "5c113fbeed7a5a192d8431a768965f8a45c16475",
      "tree": "af33ad559690221cc1b015c50ff804fd51c5da2b",
      "parents": [
        "1f73897861b8ef0be64ff4b801f8d6f830f683b5"
      ],
      "author": {
        "name": "Daniel J Blueman",
        "email": "daniel.blueman@gmail.com",
        "time": "Tue Jun 01 12:15:11 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 01 09:22:50 2010 -0700"
      },
      "message": "fix cpu_chain section mismatch...\n\nIn commit e9fb7631ebcd (\"cpu-hotplug: introduce cpu_notify(),\n__cpu_notify(), cpu_notify_nofail()\") the new helper functions access\ncpu_chain.  As a result, it shouldn\u0027t be marked __cpuinitdata (via\nsection mismatch warning).\n\nAlternatively, the helper functions should be forced inline, or marked\n__ref or __cpuinit.  In the meantime, this patch silences the warning\nthe trivial way.\n\nSigned-off-by: Daniel J Blueman \u003cdaniel.blueman@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1f73897861b8ef0be64ff4b801f8d6f830f683b5",
      "tree": "b4bae8f12e1422113910d8cb00a19d010dc4a52f",
      "parents": [
        "b904d7131d116900524bd36ec170dcd97846bfd3",
        "64ffc9ff424c65adcffe7d590018cc75e2d5d42a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 01 08:55:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jun 01 08:55:52 2010 -0700"
      },
      "message": "Merge branch \u0027for-35\u0027 of git://repo.or.cz/linux-kbuild\n\n* \u0027for-35\u0027 of git://repo.or.cz/linux-kbuild: (81 commits)\n  kbuild: Revert part of e8d400a to resolve a conflict\n  kbuild: Fix checking of scm-identifier variable\n  gconfig: add support to show hidden options that have prompts\n  menuconfig: add support to show hidden options which have prompts\n  gconfig: remove show_debug option\n  gconfig: remove dbg_print_ptype() and dbg_print_stype()\n  kconfig: fix zconfdump()\n  kconfig: some small fixes\n  add random binaries to .gitignore\n  kbuild: Include gen_initramfs_list.sh and the file list in the .d file\n  kconfig: recalc symbol value before showing search results\n  .gitignore: ignore *.lzo files\n  headerdep: perlcritic warning\n  scripts/Makefile.lib: Align the output of LZO\n  kbuild: Generate modules.builtin in make modules_install\n  Revert \"kbuild: specify absolute paths for cscope\"\n  kbuild: Do not unnecessarily regenerate modules.builtin\n  headers_install: use local file handles\n  headers_check: fix perl warnings\n  export_report: fix perl warnings\n  ...\n"
    },
    {
      "commit": "e51fd5e22e12b39f49b1bb60b37b300b17378a43",
      "tree": "391500ff509dc30991db38e3d54eaccfe385d1cb",
      "parents": [
        "54e88fad223c4e1d94289611a90c7fe3ebe5631b"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Mon May 31 12:37:30 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 01 09:27:16 2010 +0200"
      },
      "message": "sched: Fix wake_affine() vs RT tasks\n\nMike reports that since e9e9250b (sched: Scale down cpu_power due to RT\ntasks), wake_affine() goes funny on RT tasks due to them still having a\n!0 weight and wake_affine() still subtracts that from the rq weight.\n\nSince nobody should be using se-\u003eweight for RT tasks, set the value to\nzero. Also, since we now use -\u003ecpu_power to normalize rq weights to\naccount for RT cpu usage, add that factor into the imbalance computation.\n\nReported-by: Mike Galbraith \u003cefault@gmx.de\u003e\nTested-by: Mike Galbraith \u003cefault@gmx.de\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1275316109.27810.22969.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "293a7cfeedc2b2380a7c7274902323c3cf5f7575",
      "tree": "00576870400cb640fe92ea3f525338e6e3733a2e",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Mon May 31 19:53:50 2010 +0930"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon May 31 11:21:32 2010 -0700"
      },
      "message": "module: fix reference to mod-\u003epercpu after freeing module.\n\nRafael sees a sometimes crash at precpu_modfree from kernel/module.c; it\nonly occurred with another (since-reverted) patch, but that patch simply\nchanged timing to uncover this bug, it was otherwise unrelated.\n\nThe comment about the mod being freed is self-explanatory, but neither\nTejun nor I read it.  This bug was introduced in 259354deaa, after it\nhad previously been fixed in 6e2b75740b.  How embarrassing.\n\nReported-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nEmbarrassingly-Acked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Masami Hiramatsu \u003cmhiramat@redhat.com\u003e\nTested-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "546cf44a1b507c1cbb5cf42bbe6169780567f36f",
      "tree": "ab0373b82198dcae5870fa2af1916102894069f1",
      "parents": [
        "74048f895fa8cbf8119b4999f1f44881a825f954"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Sat May 29 11:45:07 2010 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 09:58:20 2010 +0200"
      },
      "message": "blktrace: Fix new kernel-doc warnings\n\nFix blktrace.c kernel-doc warnings:\n Warning(kernel/trace/blktrace.c:858): No description found for parameter \u0027ignore\u0027\n Warning(kernel/trace/blktrace.c:890): No description found for parameter \u0027ignore\u0027\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nLKML-Reference: \u003c20100529114507.c466fc1e.randy.dunlap@oracle.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "74048f895fa8cbf8119b4999f1f44881a825f954",
      "tree": "16c38467e68c730d459dd64cee7f749f1745c782",
      "parents": [
        "90151c35b19633e0cab5a6c80f1ba4a51e7c913b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu May 27 21:34:58 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:10 2010 +0200"
      },
      "message": "perf_events: Fix unincremented buffer base on partial copy\n\nIf a sample size crosses to the next page boundary, the copy\nwill be made in more than one step. However we forget to advance\nthe source offset for the next copy, leading to unexpected double\ncopies that completely mess up the traces.\n\nThis fixes various kinds of bad traces that have irrelevant\ndata inside, as an example:\n\n\tgeany-4979  [001]  5758.077775: sched_switch: prev_comm\u003d! prev_pid\u003d121\n\t\tprev_prio\u003d0 prev_state\u003dS|D|Z|X|x \u003d\u003d\u003e next_comm\u003d next_pid\u003d7497072\n\t\tnext_prio\u003d0\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Arnaldo Carvalho de Melo \u003cacme@redhat.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1274988898-5639-1-git-send-regression-fweisbec@gmail.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "90151c35b19633e0cab5a6c80f1ba4a51e7c913b",
      "tree": "448c86520eef5b9dc0f06c59a8a96abfd4096fab",
      "parents": [
        "2e97942fe57864588774f173cf4cd7bb68968b76"
      ],
      "author": {
        "name": "Stephane Eranian",
        "email": "eranian@google.com",
        "time": "Tue May 25 16:23:10 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:10 2010 +0200"
      },
      "message": "perf_events: Fix event scheduling issues introduced by transactional API\n\nThe transactional API patch between the generic and model-specific\ncode introduced several important bugs with event scheduling, at\nleast on X86. If you had pinned events, e.g., watchdog,  and were\nover-committing the PMU, you would get bogus counts. The bug was\nshowing up on Intel CPU because events would move around more\noften that on AMD. But the problem also existed on AMD, though\nharder to expose.\n\nThe issues were:\n\n - group_sched_in() was missing a cancel_txn() in the error path\n\n - cpuc-\u003en_added was not properly maintained, leading to missing\n   actions in hw_perf_enable(), i.e., n_running being 0. You cannot\n   update n_added until you know the transaction has succeeded. In\n   case of failed transaction n_added was not adjusted back.\n\n - in case of failed transactions, event_sched_out() was called\n   and eventually invoked x86_disable_event() to touch the HW reg.\n   But with transactions, on X86, event_sched_in() does not touch\n   HW registers, it simply collects events into a list. Thus, you\n   could end up calling x86_disable_event() on a counter which\n   did not correspond to the current event when idx !\u003d -1.\n\nThe patch modifies the generic and X86 code to avoid all those problems.\n\nFirst, we keep track of the number of events added last. In case the\ntransaction fails, we substract them from n_added. This approach is\nnecessary (as opposed to delaying updates to n_added) because not all\nevent updates use the transaction API, e.g., single events.\n\nSecond, we encapsulate the event_sched_in() and event_sched_out() in\ngroup_sched_in() inside the transaction. That makes the operations\nsymmetrical and you can also detect that you are inside a transaction\nand skip the HW reg access by checking cpuc-\u003egroup_flag.\n\nWith this patch, you can now overcommit the PMU even with pinned\nsystem-wide events present and still get valid counts.\n\nSigned-off-by: Stephane Eranian \u003ceranian@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1274796225.5882.1389.camel@twins\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "2e97942fe57864588774f173cf4cd7bb68968b76",
      "tree": "bf0eeda8c13a6e851ad755b7114ceaa82c51fd97",
      "parents": [
        "3771f0771154675d4a0ca780be2411f3cc357208"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 21 16:22:33 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:09 2010 +0200"
      },
      "message": "perf_events, trace: Fix perf_trace_destroy(), mutex went missing\n\nSteve spotted I forgot to do the destroy under event_mutex.\n\nReported-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1274451913.1674.1707.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "3771f0771154675d4a0ca780be2411f3cc357208",
      "tree": "106512f307e2aa0a89f92c01598d5fa75903af47",
      "parents": [
        "8a49542c0554af7d0073aac0ee73ee65b807ef34"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri May 21 12:31:09 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:09 2010 +0200"
      },
      "message": "perf_events, trace: Fix probe unregister race\n\ntracepoint_probe_unregister() does not synchronize against the probe\ncallbacks, so do that explicitly. This properly serializes the callbacks\nand the free of the data used therein.\n\nAlso, use this_cpu_ptr() where possible.\n\nAcked-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003c1274438476.1674.1702.camel@laptop\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "8a49542c0554af7d0073aac0ee73ee65b807ef34",
      "tree": "73e82ee5a624012ac723c3af21bb1945b7bd675f",
      "parents": [
        "ac9721f3f54b27a16c7e1afb2481e7ee95a70318"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 27 15:47:49 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:09 2010 +0200"
      },
      "message": "perf_events: Fix races in group composition\n\nGroup siblings don\u0027t pin each-other or the parent, so when we destroy\nevents we must make sure to clean up all cross referencing pointers.\n\nIn particular, for destruction of a group leader we must be able to\nfind all its siblings and remove their reference to it.\n\nThis means that detaching an event from its context must not detach it\nfrom the group, otherwise we can end up failing to clear all pointers.\n\nSolve this by clearly separating the attachment to a context and\nattachment to a group, and keep the group composed until we destroy\nthe events.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "ac9721f3f54b27a16c7e1afb2481e7ee95a70318",
      "tree": "a9f21d60c7c4c1910696553a6f8273edcca03c64",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Thu May 27 12:54:41 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:46:08 2010 +0200"
      },
      "message": "perf_events: Fix races and clean up perf_event and perf_mmap_data interaction\n\nIn order to move toward separate buffer objects, rework the whole\nperf_mmap_data construct to be a more self-sufficient entity, one\nwith its own lifetime rules.\n\nThis greatly sanitizes the whole output redirection code, which\nwas riddled with bugs and races.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: \u003cstable@kernel.org\u003e\nLKML-Reference: \u003cnew-submission\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "54e88fad223c4e1d94289611a90c7fe3ebe5631b",
      "tree": "c9c9f27bf4e1e9851ee75145960607f194b3313b",
      "parents": [
        "67a3e12b05e055c0415c556a315a3d3eb637e29e"
      ],
      "author": {
        "name": "Amit K. Arora",
        "email": "aarora@linux.vnet.ibm.com",
        "time": "Tue May 25 18:53:46 2010 +0530"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon May 31 08:37:44 2010 +0200"
      },
      "message": "sched: Make sure timers have migrated before killing the migration_thread\n\nProblem: In a stress test where some heavy tests were running along with\nregular CPU offlining and onlining, a hang was observed. The system seems\nto be hung at a point where migration_call() tries to kill the\nmigration_thread of the dying CPU, which just got moved to the current\nCPU. This migration thread does not get a chance to run (and die) since\nrt_throttled is set to 1 on current, and it doesn\u0027t get cleared as the\nhrtimer which is supposed to reset the rt bandwidth\n(sched_rt_period_timer) is tied to the CPU which we just marked dead!\n\nSolution: This patch pushes the killing of migration thread to\n\"CPU_POST_DEAD\" event. By then all the timers (including\nsched_rt_period_timer) should have got migrated (along with other\ncallbacks).\n\nSigned-off-by: Amit Arora \u003caarora@in.ibm.com\u003e\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLKML-Reference: \u003c20100525132346.GA14986@amitarora.in.ibm.com\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "fa7eadab4b4aec0139d2429e6f8d13375ff8a658",
      "tree": "91b4ef421d415b782ff54cc89296268903fc9552",
      "parents": [
        "bc7d352c5e76c74c628a39b99777a1bdddde5e81",
        "fd6be105b883244127a734ac9f14ae94a022dcc0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 12:35:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 12:35:15 2010 -0700"
      },
      "message": "Merge branch \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027core-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  mutex: Fix optimistic spinning vs. BKL\n"
    },
    {
      "commit": "bc7d352c5e76c74c628a39b99777a1bdddde5e81",
      "tree": "3cc0a80defb54d284e2a9a1e69b1224064921775",
      "parents": [
        "b3f2f6cd1ff935ecac9a5346904b899d7af689fe",
        "92af1abde4f2d74c9e5f7b670a1971779ed0b051"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 12:35:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 12:35:01 2010 -0700"
      },
      "message": "Merge branch \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  perf tui: Fix last use_browser problem related to .perfconfig\n  perf symbols: Add the build id cache to the vmlinux path\n  perf tui: Reset use_browser if stdout is not a tty\n  ring-buffer: Move zeroing out excess in page to ring buffer code\n  ring-buffer: Reset \"real_end\" when page is filled\n"
    },
    {
      "commit": "e9a5f426b85e429bffaee4e0b086b1e742a39fa6",
      "tree": "65ba763309c5d771c1f179af5b36fce996742b1c",
      "parents": [
        "97ef6f7449da6ceddf9a90fa8851f607b67283dd"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Thu May 27 22:16:22 2010 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:06:00 2010 -0700"
      },
      "message": "CPU: Avoid using unititialized error variable in disable_nonboot_cpus()\n\nIf there\u0027s only one CPU online when disable_nonboot_cpus() is called,\nthe error variable will not be initialized and that may lead to\nerroneous behavior.  Fix this issue by initializing error in\ndisable_nonboot_cpus() as appropriate.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35926ff5fba8245bd1c6ac04155048f6f89232b1",
      "tree": "9afc520f47e29cb3cd80462fe62858f17b1c6cfb",
      "parents": [
        "b612a0553714c6b9744ad0d03f10cac78f3a84b1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:00:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 09:00:03 2010 -0700"
      },
      "message": "Revert \"cpusets: randomize node rotor used in cpuset_mem_spread_node()\"\n\nThis reverts commit 0ac0c0d0f837c499afd02a802f9cf52d3027fa3b, which\ncaused cross-architecture build problems for all the wrong reasons.\nIA64 already added its own version of __node_random(), but the fact is,\nthere is nothing architectural about the function, and the original\ncommit was just badly done. Revert it, since no fix is forthcoming.\n\nRequested-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b612a0553714c6b9744ad0d03f10cac78f3a84b1",
      "tree": "9dfb5cb5d13c187ff1f54448f8441512203625d0",
      "parents": [
        "52b0ace7dfe8f70350218017a95d7cab1eb41fbb",
        "2a8e5e3637e2fc058798f5d3626f525729ffaaaf"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 08:56:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun May 30 08:56:39 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:\n  ceph: clean up on forwarded aborted mds request\n  ceph: fix leak of osd authorizer\n  ceph: close out mds, osd connections before stopping auth\n  ceph: make lease code DN specific\n  fs/ceph: Use ERR_CAST\n  ceph: renew auth tickets before they expire\n  ceph: do not resend mon requests on auth ticket renewal\n  ceph: removed duplicated #includes\n  ceph: avoid possible null dereference\n  ceph: make mds requests killable, not interruptible\n  sched: add wait_for_completion_killable_timeout\n"
    },
    {
      "commit": "0aa12fb439838a85802ab8b7fbb9bcfc3e6e05cb",
      "tree": "c944cf9abba9a6afb3d1259140c73101d0e222a0",
      "parents": [
        "240ed68eb567d80dd6bab739341999a5ab0ad55d"
      ],
      "author": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:30 2010 -0700"
      },
      "committer": {
        "name": "Sage Weil",
        "email": "sage@newdream.net",
        "time": "Sat May 29 09:12:30 2010 -0700"
      },
      "message": "sched: add wait_for_completion_killable_timeout\n\nAdd missing _killable_timeout variant for wait_for_completion that will\nreturn when a timeout expires or the task is killed.\n\nCC: Ingo Molnar \u003cmingo@elte.hu\u003e\nCC: Andreas Herrmann \u003candreas.herrmann3@amd.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Sage Weil \u003csage@newdream.net\u003e\n"
    },
    {
      "commit": "29d03fa12bc02c0f8085cd6bb06d11359a4bccaf",
      "tree": "0810a1b2bad0f853b270afed55eddc595ae8d2fc",
      "parents": [
        "89ad6a6173127e5d31bea7a4a45ec23fa5bf4a17",
        "45e0fffc8a7778282e6a1514a6ae3e7ae6545111"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 28 10:16:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri May 28 10:16:27 2010 -0700"
      },
      "message": "Merge branch \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-fixes-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  posix_timer: Fix error path in timer_create\n  hrtimer: Avoid double seqlock\n  timers: Move local variable into else section\n  timers: Fix slack calculation really\n"
    },
    {
      "commit": "ea635c64e007061f6468ece5cc9cc62d41d4ecf2",
      "tree": "eaa7123e7749893e8f542d12cba616664bc2c848",
      "parents": [
        "d7065da038227a4d09a244e6014e0186a6bd21d0"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed May 26 17:40:29 2010 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu May 27 22:03:08 2010 -0400"
      },
      "message": "Fix racy use of anon_inode_getfd() in perf_event.c\n\nonce anon_inode_getfd() is called, you can\u0027t expect *anything* about\nstruct file that descriptor points to - another thread might be doing\nwhatever it likes with descriptor table at that point.\n\nCc: stable \u003cstable@kernel.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c5617b200ac52e35f7e8cf05a17b0a2d50f6b3e9",
      "tree": "40d5e99660c77c5791392d349a93113c044dbf14",
      "parents": [
        "cad719d86e9dbd06634eaba6401e022c8101d6b2",
        "49c177461bfbedeccbab22bf3905db2f9da7f1c3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 15:23:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 15:23:47 2010 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (61 commits)\n  tracing: Add __used annotation to event variable\n  perf, trace: Fix !x86 build bug\n  perf report: Support multiple events on the TUI\n  perf annotate: Fix up usage of the build id cache\n  x86/mmiotrace: Remove redundant instruction prefix checks\n  perf annotate: Add TUI interface\n  perf tui: Remove annotate from popup menu after failure\n  perf report: Don\u0027t start the TUI if -D is used\n  perf: Fix getline undeclared\n  perf: Optimize perf_tp_event_match()\n  perf: Remove more code from the fastpath\n  perf: Optimize the !vmalloc backed buffer\n  perf: Optimize perf_output_copy()\n  perf: Fix wakeup storm for RO mmap()s\n  perf-record: Share per-cpu buffers\n  perf-record: Remove -M\n  perf: Ensure that IOC_OUTPUT isn\u0027t used to create multi-writer buffers\n  perf, trace: Optimize tracepoints by using per-tracepoint-per-cpu hlist to track events\n  perf, trace: Optimize tracepoints by removing IRQ-disable from perf/tracepoint interaction\n  perf tui: Allow disabling the TUI on a per command basis in ~/.perfconfig\n  ...\n"
    },
    {
      "commit": "45e0fffc8a7778282e6a1514a6ae3e7ae6545111",
      "tree": "0a1022d1af7372169ca2b5b269b548997e2bdd83",
      "parents": [
        "174bd1994ec67a6e6191c4ed8e5dac17fa221b84"
      ],
      "author": {
        "name": "Andrey Vagin",
        "email": "avagin@openvz.org",
        "time": "Mon May 24 12:15:33 2010 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu May 27 22:38:15 2010 +0200"
      },
      "message": "posix_timer: Fix error path in timer_create\n\nMove CLOCK_DISPATCH(which_clock, timer_create, (new_timer)) after all\nposible EFAULT erros.\n\n*_timer_create may allocate/get resources.\n(for example posix_cpu_timer_create does get_task_struct)\n\n[ tglx: fold the remove crappy comment patch into this ]\n\nSigned-off-by: Andrey Vagin \u003cavagin@openvz.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Pavel Emelyanov \u003cxemul@openvz.org\u003e\nCc: \u003cstable@kernel.org\u003e\nReviewed-by: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "00b9b0af5887fed54e899e3b7f5c2ccf5e739def",
      "tree": "088cd96759cf4c1b2365c0e434dc95a8410b547c",
      "parents": [
        "e2e2400bd4faee24d11872134b7ae5bd363749c0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:32:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 10:32:08 2010 -0700"
      },
      "message": "Avoid warning when CPU hotplug isn\u0027t enabled\n\nCommit e9fb7631ebcd (\"cpu-hotplug: introduce cpu_notify(),\n__cpu_notify(), cpu_notify_nofail()\") also introduced this annoying\nwarning:\n\n  kernel/cpu.c:157: warning: \u0027cpu_notify_nofail\u0027 defined but not used\n\nwhen CONFIG_HOTPLUG_CPU wasn\u0027t set.\n\nSo move that helper inside the #ifdef CONFIG_HOTPLUG_CPU region, and\nsimplify it while at it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3dd6b5fb436083fdd8af7ad2baa07db19deb73b2",
      "tree": "9c97bccad863663e36224e96b00f00b5a7dbaea6",
      "parents": [
        "7d6e6d09de82cf6cff7fecdba55198b9f47b381c"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "lee.schermerhorn@hp.com",
        "time": "Wed May 26 14:45:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:57 2010 -0700"
      },
      "message": "numa: in-kernel profiling: use cpu_to_mem() for per cpu allocations\n\nIn kernel profiling requires that we be able to allocate \"local\" memory\nfor each cpu.  Use \"cpu_to_mem()\" instead of \"cpu_to_node()\" to support\nmemoryless nodes.\n\nDepends on the \"numa_mem_id()\" patch.\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Nick Piggin \u003cnpiggin@suse.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Eric Whitney \u003ceric.whitney@hp.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: \u003clinux-arch@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b530fc18324602e1ecb70cd280c2194b2656a5e",
      "tree": "d96b7b408818606ebdc41c1895c8eb4ed03db37a",
      "parents": [
        "cccad8f9f0f1be585c9dc534857ca9c67e538836"
      ],
      "author": {
        "name": "Anton Blanchard",
        "email": "anton@samba.org",
        "time": "Wed May 26 14:44:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:53 2010 -0700"
      },
      "message": "panic: call console_verbose() in panic\n\nMost distros turn the console verbosity down and that means a backtrace\nafter a panic never makes it to the console.  I assume we haven\u0027t seen\nthis because a panic is often preceeded by an oops which will have called\nconsole_verbose.  There are however a lot of places we call panic\ndirectly, and they are broken.\n\nUse console_verbose like we do in the oops path to ensure a directly\ncalled panic will print a backtrace.\n\nSigned-off-by: Anton Blanchard \u003canton@samba.org\u003e\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f106eee10038c2ee5b6056aaf3f6d5229be6dcdd",
      "tree": "de7ce930b7119a1be00f3c7604065896d31abc9c",
      "parents": [
        "f20011457f41c11edb5ea5038ad0c8ea9f392023"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:44:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:52 2010 -0700"
      },
      "message": "pids: fix fork_idle() to setup -\u003epids correctly\n\ncopy_process(pid \u003d\u003e \u0026init_struct_pid) doesn\u0027t do attach_pid/etc.\n\nIt shouldn\u0027t, but this means that the idle threads run with the wrong\npids copied from the caller\u0027s task_struct. In x86 case the caller is\neither kernel_init() thread or keventd.\n\nIn particular, this means that after the series of cpu_up/cpu_down an\nidle thread (which never exits) can run with .pid pointing to nowhere.\n\nChange fork_idle() to initialize idle-\u003epids[] correctly. We only set\n.pid \u003d \u0026init_struct_pid but do not add .node to list, INIT_TASK() does\nthe same for the boot-cpu idle thread (swapper).\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\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: Herbert Poetzl \u003cherbert@13thfloor.at\u003e\nCc: Mathias Krause \u003cMathias.Krause@secunet.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserue@us.ibm.com\u003e\nCc: Sukadev Bhattiprolu \u003csukadev@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": "72680a191b934377430032f93af15ef50aafb3a8",
      "tree": "e6f41babe66bf642204b3d92e793f5071739b1d2",
      "parents": [
        "bd4fb654e3a0d83ca8cb138c5e3e6e65407e119c"
      ],
      "author": {
        "name": "Hedi Berriche",
        "email": "hedi@sgi.com",
        "time": "Wed May 26 14:44:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:51 2010 -0700"
      },
      "message": "pids: increase pid_max based on num_possible_cpus\n\nOn a system with a substantial number of processors, the early default\npid_max of 32k will not be enough.  A system with 1664 CPU\u0027s, there are\n25163 processes started before the login prompt.  It\u0027s estimated that with\n2048 CPU\u0027s we will pass the 32k limit.  With 4096, we\u0027ll reach that limit\nvery early during the boot cycle, and processes would stall waiting for an\navailable pid.\n\nThis patch increases the early maximum number of pids available, and\nincreases the minimum number of pids that can be set during runtime.\n\n[akpm@linux-foundation.org: fix warnings]\nSigned-off-by: Hedi Berriche \u003chedi@sgi.com\u003e\nSigned-off-by: Mike Travis \u003ctravis@sgi.com\u003e\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: John Stoffel \u003cjohn@stoffel.org\u003e\nCc: Jack Steiner \u003csteiner@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79a6cdeb7eb54e3d2d4bb9fc5f0231b057882a87",
      "tree": "2a80342946cf206002ce5dcf32f097320f64fdd1",
      "parents": [
        "c9d221f86e43d9fb16260fe18a8cd6767f36c8a5"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Wed May 26 14:43:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:48 2010 -0700"
      },
      "message": "cpuhotplug: do not need cpu_hotplug_begin() when CONFIG_HOTPLUG_CPU\u003dn\n\nSince when CONFIG_HOTPLUG_CPU\u003dn, get_online_cpus() do nothing, so we don\u0027t\nneed cpu_hotplug_begin() either.\n\nThis patch moves cpu_hotplug_begin()/cpu_hotplug_done() into the code\nblock of CONFIG_HOTPLUG_CPU\u003dy.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "80b5184cc537718122e036afe7e62d202b70d077",
      "tree": "d4e2b400f0e951156d64d546fd563fa5a8ab02d3",
      "parents": [
        "ad84bb5b98bf81deae97e3bcd814675d6b4e6f72"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 26 14:43:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:48 2010 -0700"
      },
      "message": "kernel/: convert cpu notifier to return encapsulate errno value\n\nBy the previous modification, the cpu notifier can return encapsulate\nerrno value.  This converts the cpu notifiers for kernel/*.c\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e6bde73b07edeb703d4c89c1daabc09c303de11f",
      "tree": "9b60a3fc2ce002b26e46611357cb5529795e7ac5",
      "parents": [
        "e9fb7631ebcdc9467cbb736337546a42f7b7f28e"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 26 14:43:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "cpu-hotplug: return better errno on cpu hotplug failure\n\nCurrently, onlining or offlining a CPU failure by one of the cpu notifiers\nerror always cause -EINVAL error.  (i.e.  writing 0 or 1 to\n/sys/devices/system/cpu/cpuX/online gets EINVAL)\n\nTo get better error reporting rather than always getting -EINVAL, This\nchanges cpu_notify() to return -errno value with notifier_to_errno() and\nfix the callers.  Now that cpu notifiers can return encapsulate errno\nvalue.\n\nCurrently, all cpu hotplug notifiers return NOTIFY_OK, NOTIFY_BAD, or\nNOTIFY_DONE.  So cpu_notify() can returns 0 or -EPERM with this change for\nnow.\n\n(notifier_to_errno(NOTIFY_OK) \u003d\u003d 0, notifier_to_errno(NOTIFY_DONE) \u003d\u003d 0,\nnotifier_to_errno(NOTIFY_BAD) \u003d\u003d -EPERM)\n\nForthcoming patches convert several cpu notifiers to return encapsulate\nerrno value with notifier_from_errno().\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9fb7631ebcdc9467cbb736337546a42f7b7f28e",
      "tree": "1887c2a8dc858d966c3b0bd63d9026908e5eb572",
      "parents": [
        "36e15263aa5dcf3b72f1f88437e69497782b7ab8"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 26 14:43:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "cpu-hotplug: introduce cpu_notify(), __cpu_notify(), cpu_notify_nofail()\n\nNo functional change.  These are just wrappers of\nraw_cpu_notifier_call_chain.\n\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3ac022cb9dc5883505a88b159d1b240ad1ef405",
      "tree": "bffa035303cbe3c5bde048ac3d3154fb57059e2d",
      "parents": [
        "dd98acf74762764fbc4382a1d9a244f11a2658cc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "proc: turn signal_struct-\u003ecount into \"int nr_threads\"\n\nNo functional changes, just s/atomic_t count/int nr_threads/.\n\nWith the recent changes this counter has a single user, get_nr_threads()\nAnd, none of its callers need the really accurate number of threads, not\nto mention each caller obviously races with fork/exit.  It is only used to\nreport this value to the user-space, except first_tid() uses it to avoid\nthe unnecessary while_each_thread() loop in the unlikely case.\n\nIt is a bit sad we need a word in struct signal_struct for this, perhaps\nwe can change get_nr_threads() to approximate the number of threads using\nsignal-\u003elive and kill -\u003enr_threads later.\n\n[akpm@linux-foundation.org: coding-style fixes]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: 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": "5089a9768041206c76fac299ccd82a528c24c254",
      "tree": "88c7951ab137bc04db3ca02ef8bfeef2536472e2",
      "parents": [
        "7e49827cc937a742ae02078b483e3eb78f791a2a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "proc_sched_show_task(): use get_nr_threads()\n\nTrivial, use get_nr_threads() helper to read signal-\u003ecount which we are\ngoing to change.\n\nLike other callers, proc_sched_show_task() doesn\u0027t need the exactly\nprecise nr_threads.\n\nDavid said:\n\n: Note that get_nr_threads() isn\u0027t completely equivalent (it can return 0\n: where proc_sched_show_task() will display a 1).  But I don\u0027t think this\n: should be a problem.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: 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": "6e1be45aa6ba6a36c0312f65ecf311135c73001d",
      "tree": "3ea540e0ee249259e40e26c38215981b466075ad",
      "parents": [
        "97101eb41d0d3c97543878ce40e0b8a8b2747ed7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:21 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:47 2010 -0700"
      },
      "message": "check_unshare_flags: kill the bogus CLONE_SIGHAND/sig-\u003ecount check\n\ncheck_unshare_flags(CLONE_SIGHAND) adds CLONE_THREAD to *flags_ptr if the\ntask is multithreaded to ensure unshare_thread() will fail.\n\nNot only this is a bit strange way to return the error, this is absolutely\nmeaningless.  If signal-\u003ecount \u003e 1 then sighand-\u003ecount must be also \u003e 1,\nand unshare_sighand() will fail anyway.\n\nIn fact, all CLONE_THREAD/SIGHAND/VM checks inside sys_unshare() do not\nlook right.  Fortunately this code doesn\u0027t really work anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@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": "97101eb41d0d3c97543878ce40e0b8a8b2747ed7",
      "tree": "d33299c8d4787d3b578ea432fdaceb965a2acd97",
      "parents": [
        "a705be6b5e8b05f2ae51536ec709de921960326c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: move taskstats_tgid_free() from __exit_signal() to free_signal_struct()\n\nMove taskstats_tgid_free() from __exit_signal() to free_signal_struct().\n\nThis way signal-\u003estats never points to nowhere and we can read -\u003estats\nlockless.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@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": "a705be6b5e8b05f2ae51536ec709de921960326c",
      "tree": "a4d71651807dabe2dc48bd36cf2e954d7ef967a8",
      "parents": [
        "d40e48e02f3785b9342ee4eb3d7cc9f12981b7f5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "kill the obsolete thread_group_cputime_free() helper\n\nKill the empty thread_group_cputime_free() helper.  It was needed to free\nthe per-cpu data which we no longer have.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@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": "d40e48e02f3785b9342ee4eb3d7cc9f12981b7f5",
      "tree": "05f900ae17f4727c0e8b8c2c84d41b1cee7c13b0",
      "parents": [
        "b7b8ff6373d4b910af081f76888395e6df53249d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:19 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: __exit_signal: use thread_group_leader() consistently\n\nCleanup:\n\n- Add the boolean, group_dead \u003d thread_group_leader(), for clarity.\n\n- Do not test/set sig \u003d\u003d NULL to detect the all-dead case, use this\n  boolean.\n\n- Pass this boolen to __unhash_process() and use it instead of another\n  thread_group_leader() call which needs -\u003egroup_leader.\n\n  This can be considered as microoptimization, but hopefully this also\n  allows us do do other cleanups later.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@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": "b7b8ff6373d4b910af081f76888395e6df53249d",
      "tree": "128a1b2cf026fb8b9791eaefb6f79f872999a5c6",
      "parents": [
        "4ada856fb0ee62f6fe3aac3de726deac0640d929"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:18 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "signals: kill the awful task_rq_unlock_wait() hack\n\nNow that task-\u003esignal can\u0027t go away we can revert the horrible hack added\nby ad474caca3e2a0550b7ce0706527ad5ab389a4d4 (\"fix for\naccount_group_exec_runtime(), make sure -\u003esignal can\u0027t be freed under\nrq-\u003elock\").\n\nAnd we can do more cleanups sched_stats.h/posix-cpu-timers.c later.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: 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": "4ada856fb0ee62f6fe3aac3de726deac0640d929",
      "tree": "8dd3efbc19f6e1f1dac2ff7afdcd9658fb08b814",
      "parents": [
        "ea6d290ca34c4fd91b7348338c0cc7bdeff94a35"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "signals: clear signal-\u003etty when the last thread exits\n\nWhen the last thread exits signal-\u003etty is freed, but the pointer is not\ncleared and points to nowhere.\n\nThis is OK.  Nobody should use signal-\u003etty lockless, and it is no longer\npossible to take -\u003esiglock.  However this looks wrong even if correct, and\nthe nice OOPS is better than subtle and hard to find bugs.\n\nChange __exit_signal() to clear signal-\u003etty under -\u003esiglock.\n\nNote: __exit_signal() needs more cleanups.  It should not check \"sig !\u003d\nNULL\" to detect the all-dead case and we have the same issues with\nsignal-\u003estats.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: 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": "ea6d290ca34c4fd91b7348338c0cc7bdeff94a35",
      "tree": "6e9bd367650d9233c5b6cf1059845f17cb1bc460",
      "parents": [
        "4dec2a91fd7e8815d730afbfdcf085cbf53433ac"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:16 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "signals: make task_struct-\u003esignal immutable/refcountable\n\nWe have a lot of problems with accessing task_struct-\u003esignal, it can\n\"disappear\" at any moment.  Even current can\u0027t use its -\u003esignal safely\nafter exit_notify().  -\u003esiglock helps, but it is not convenient, not\nalways possible, and sometimes it makes sense to use task-\u003esignal even\nafter this task has already dead.\n\nThis patch adds the reference counter, sigcnt, into signal_struct.  This\nreference is owned by task_struct and it is dropped in\n__put_task_struct().  Perhaps it makes sense to export\nget/put_signal_struct() later, but currently I don\u0027t see the immediate\nreason.\n\nRename __cleanup_signal() to free_signal_struct() and unexport it.  With\nthe previous changes it does nothing except kmem_cache_free().\n\nChange __exit_signal() to not clear/free -\u003esignal, it will be freed when\nthe last reference to any thread in the thread group goes away.\n\nNote:\n\t- when the last thead exits signal-\u003etty can point to nowhere, see\n\t  the next patch.\n\n\t- with or without this patch signal_struct-\u003ecount should go away,\n\t  or at least it should be \"int nr_threads\" for fs/proc. This will\n\t  be addressed later.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Alan Cox \u003calan@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nAcked-by: 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": "4dec2a91fd7e8815d730afbfdcf085cbf53433ac",
      "tree": "cd33cc793abf532d4ca212d09c1e8d3154a8b530",
      "parents": [
        "ffdf91856c812646aa276711fa7e3ad80b00764a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:15 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "fork/exit: move tty_kref_put() outside of __cleanup_signal()\n\ntty_kref_put() has two callsites in copy_process() paths,\n\n\t1. if copy_process() suceeds it is called before we copy\n\t   signal-\u003etty from parent\n\n\t2. otherwise it is called from __cleanup_signal() under\n\t   bad_fork_cleanup_signal: label\n\nIn both cases tty_kref_put() is not right and unneeded because we don\u0027t\nhave the balancing tty_kref_get().  Fortunately, this is harmless because\nthis can only happen without CLONE_THREAD, and in this case signal-\u003etty\nmust be NULL.\n\nRemove tty_kref_put() from copy_process() and __cleanup_signal(), and\nchange another caller of __cleanup_signal(), __exit_signal(), to call\ntty_kref_put() by hand.\n\nI hope this change makes sense by itself, but it is also needed to make\n-\u003esignal refcountable.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Alan Cox \u003calan@linux.intel.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d30fda355188272430d3865db2ff9e24b4135ae3",
      "tree": "a763bd24dac66b8d287304bd1cabab859ddf9ae1",
      "parents": [
        "4a5999429739844367d0f77a65efdd7db8202779"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "posix-cpu-timers: avoid \"task-\u003esignal !\u003d NULL\" checks\n\nPreparation to make task-\u003esignal immutable, no functional changes.\n\nposix-cpu-timers.c checks task-\u003esignal !\u003d NULL to ensure this task is\nalive and didn\u0027t pass __exit_signal().  This is correct but we are going\nto change the lifetime rules for -\u003esignal and never reset this pointer.\n\nChange the code to check -\u003esighand instead, it doesn\u0027t matter which\npointer we check under tasklist, they both are cleared simultaneously.\n\nAs Roland pointed out, some of these changes are not strictly needed and\nprobably it makes sense to revert them later, when -\u003esignal will be pinned\nto task_struct.  But this patch tries to ensure the subsequent changes in\nfork/exit can\u0027t make any visible impact on posix cpu timers.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Stanislaw Gruszka \u003csgruszka@redhat.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4a5999429739844367d0f77a65efdd7db8202779",
      "tree": "fff1158fa43466b30294a7db2c4629ca14973770",
      "parents": [
        "d344193a05da89c97e965da2c5cbf687d7385eae"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: avoid sig-\u003ecount in __exit_signal() to detect the group-dead case\n\nChange __exit_signal() to check thread_group_leader() instead of\natomic_dec_and_test(\u0026sig-\u003ecount).  This must be equivalent, the group\nleader must be released only after all other threads have exited and\npassed __exit_signal().\n\nHenceforth sig-\u003ecount is not actually used, except in fs/proc for\nget_nr_threads/etc.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@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": "d344193a05da89c97e965da2c5cbf687d7385eae",
      "tree": "6267b68c31c4547f1749acd35d2a5bfaff919839",
      "parents": [
        "09faef11df8c559a23e2405d123cb2683733a79a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: avoid sig-\u003ecount in de_thread/__exit_signal synchronization\n\nde_thread() and __exit_signal() use signal_struct-\u003ecount/notify_count for\nsynchronization.  We can simplify the code and use -\u003enotify_count only.\nInstead of comparing these two counters, we can change de_thread() to set\n-\u003enotify_count \u003d nr_of_sub_threads, then change __exit_signal() to\ndec-and-test this counter and notify group_exit_task.\n\nNote that __exit_signal() checks \"notify_count \u003e 0\" just for symmetry with\nexit_notify(), we could just check it is !\u003d 0.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@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": "09faef11df8c559a23e2405d123cb2683733a79a",
      "tree": "db8e4c94677be8afebde938c2e6b7ba07b6b6db0",
      "parents": [
        "9c3391684415c9dca239130d9e433a60a4edf04b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:46 2010 -0700"
      },
      "message": "exit: change zap_other_threads() to count sub-threads\n\nChange zap_other_threads() to return the number of other sub-threads found\non -\u003ethread_group list.\n\nOther changes are cosmetic:\n\n\t- change the code to use while_each_thread() helper\n\n\t- remove the obsolete comment about SIGKILL/SIGSTOP\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@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": "9c3391684415c9dca239130d9e433a60a4edf04b",
      "tree": "a8019b964c625cfeeda0e9d85bafa48991546212",
      "parents": [
        "269b005a28e124a341df4adef2c3661cf7371fcc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:10 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "exit: exit_notify() can trust signal-\u003enotify_count \u003c 0\n\nsignal_struct-\u003ecount in its current form must die.\n\n- it has no reasons to be atomic_t\n\n- it looks like a reference counter, but it is not\n\n- otoh, we really need to make task-\u003esignal refcountable, just look at\n  the extremely ugly task_rq_unlock_wait() called from __exit_signals().\n\n- we should change the lifetime rules for task-\u003esignal, it should be\n  pinned to task_struct.  We have a lot of code which can be simplified\n  after that.\n\n- it is not needed!  while the code is correct, any usage of this\n  counter is artificial, except fs/proc uses it correctly to show the\n  number of threads.\n\nThis series removes the usage of sig-\u003ecount from exit pathes.\n\nThis patch:\n\nNow that Veaceslav changed copy_signal() to use zalloc(), exit_notify()\ncan just check notify_count \u003c 0 to ensure the execing sub-threads needs\nthe notification from us.  No need to do other checks, notify_count !\u003d 0\nmust always mean -\u003egroup_exit_task !\u003d NULL is waiting for us.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Roland McGrath \u003croland@redhat.com\u003e\nCc: Veaceslav Falico \u003cvfalico@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": "04b1c384fbc4e0209e5c1affb67050886376d44b",
      "tree": "19bc8690113dd6ded88d465a0777cb8bf7e33262",
      "parents": [
        "d47419cd967a4f032a194148a7b08afad32faded"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "call_usermodehelper: UMH_WAIT_EXEC ignores kernel_thread() failure\n\nUMH_WAIT_EXEC should report the error if kernel_thread() fails, like\nUMH_WAIT_PROC does.\n\nSigned-off-by: Oleg Nesterov \u003coleg@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": "d47419cd967a4f032a194148a7b08afad32faded",
      "tree": "b330b3adbaf1b2528b663322adff11a2761cb4b4",
      "parents": [
        "7d64224217b53b23243fd2aa428001486f2a5da5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "call_usermodehelper: simplify/fix UMH_NO_WAIT case\n\n__call_usermodehelper(UMH_NO_WAIT) has 2 problems:\n\n\t- if kernel_thread() fails, call_usermodehelper_freeinfo()\n\t  is not called.\n\n\t- for unknown reason UMH_NO_WAIT has UMH_WAIT_PROC logic,\n\t  we spawn yet another thread which waits until the user\n\t  mode application exits.\n\nChange the UMH_NO_WAIT code to use ____call_usermodehelper() instead of\nwait_for_helper(), and do call_usermodehelper_freeinfo() unconditionally.\nWe can rely on CLONE_VFORK, do_fork(CLONE_VFORK) until the child exits or\nexecs.\n\nWith or without this patch UMH_NO_WAIT does not report the error if\nkernel_thread() fails, this is correct since the caller doesn\u0027t wait for\nresult.\n\nSigned-off-by: Oleg Nesterov \u003coleg@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": "7d64224217b53b23243fd2aa428001486f2a5da5",
      "tree": "23219e8d6d81e891fe2571e10be6feab7f81cd49",
      "parents": [
        "363da4022c2753bf4b4b54a1bb9e4527fdcb9d5d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "wait_for_helper: SIGCHLD from user-space can lead to use-after-free\n\n1. wait_for_helper() calls allow_signal(SIGCHLD) to ensure the child\n   can\u0027t autoreap itself.\n\n   However, this means that a spurious SIGCHILD from user-space can\n   set TIF_SIGPENDING and:\n\n   \t- kernel_thread() or sys_wait4() can fail due to signal_pending()\n\n   \t- worse, wait4() can fail before ____call_usermodehelper() execs\n   \t  or exits. In this case the caller may kfree(subprocess_info)\n   \t  while the child still uses this memory.\n\n   Change the code to use SIG_DFL instead of magic \"(void __user *)2\"\n   set by allow_signal(). This means that SIGCHLD won\u0027t be delivered,\n   yet the child won\u0027t autoreap itsefl.\n\n   The problem is minor, only root can send a signal to this kthread.\n\n2. If sys_wait4(\u0026ret) fails it doesn\u0027t populate \"ret\", in this case\n   wait_for_helper() reports a random value from uninitialized var.\n\n   With this patch sys_wait4() should never fail, but still it makes\n   sense to initialize ret \u003d -ECHILD so that the caller can notice\n   the problem.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "363da4022c2753bf4b4b54a1bb9e4527fdcb9d5d",
      "tree": "103922ef0f185daebf5a3e8029663ab78eaed363",
      "parents": [
        "c70a626d3eba373514c72287c93588b6974a0059"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "call_usermodehelper: no need to unblock signals\n\n____call_usermodehelper() correctly calls flush_signal_handlers() to set\nSIG_DFL, but sigemptyset(-\u003eblocked) and recalc_sigpending() are not\nneeded.\n\nThis kthread was forked by workqueue thread, all signals must be unblocked\nand ignored, no pending signal is possible.\n\nSigned-off-by: Oleg Nesterov \u003coleg@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": "c70a626d3eba373514c72287c93588b6974a0059",
      "tree": "c23b890cbbeb824e52e1eaee6812bc88496a246d",
      "parents": [
        "685bfd2c48bb3284d31e73ff3151c957d76deda9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "umh: creds: kill subprocess_info-\u003ecred logic\n\nNow that nobody ever changes subprocess_info-\u003ecred we can kill this member\nand related code.  ____call_usermodehelper() always runs in the context of\nfreshly forked kernel thread, it has the proper -\u003ecred copied from its\nparent kthread, keventd.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: David Howells \u003cdhowells@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": "685bfd2c48bb3284d31e73ff3151c957d76deda9",
      "tree": "177210787515f48c0eaad5216bd012f4a2fb2149",
      "parents": [
        "898b374af6f71041bd3bceebe257e564f3f1d458"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed May 26 14:43:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:45 2010 -0700"
      },
      "message": "umh: creds: convert call_usermodehelper_keys() to use subprocess_info-\u003einit()\n\ncall_usermodehelper_keys() uses call_usermodehelper_setkeys() to change\nsubprocess_info-\u003ecred in advance.  Now that we have info-\u003einit() we can\nchange this code to set tgcred-\u003esession_keyring in context of execing\nkernel thread.\n\nNote: since currently call_usermodehelper_keys() is never called with\nUMH_NO_WAIT, call_usermodehelper_keys()-\u003ekey_get() and umh_keys_cleanup()\nare not really needed, we could rely on install_session_keyring_to_cred()\nwhich does key_get() on success.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nAcked-by: David Howells \u003cdhowells@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": "898b374af6f71041bd3bceebe257e564f3f1d458",
      "tree": "b1be6fd3cca69becfc75787eab906338f363d3cd",
      "parents": [
        "a06a4dc3a08201ff6a8a958f935b3cbf7744115f"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed May 26 14:42:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "exec: replace call_usermodehelper_pipe with use of umh init function and resolve limit\n\nThe first patch in this series introduced an init function to the\ncall_usermodehelper api so that processes could be customized by caller.\nThis patch takes advantage of that fact, by customizing the helper in\ndo_coredump to create the pipe and set its core limit to one (for our\nrecusrsion check).  This lets us clean up the previous uglyness in the\nusermodehelper internals and factor call_usermodehelper out entirely.\nWhile I\u0027m at it, we can also modify the helper setup to look for a core\nlimit value of 1 rather than zero for our recursion check\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a06a4dc3a08201ff6a8a958f935b3cbf7744115f",
      "tree": "b338edde5edb31f51e0b7eb86e6c4ce8063c703f",
      "parents": [
        "065add3941bdca54fe04ed3471a96bce9af88793"
      ],
      "author": {
        "name": "Neil Horman",
        "email": "nhorman@tuxdriver.com",
        "time": "Wed May 26 14:42:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu May 27 09:12:44 2010 -0700"
      },
      "message": "kmod: add init function to usermodehelper\n\nAbout 6 months ago, I made a set of changes to how the core-dump-to-a-pipe\nfeature in the kernel works.  We had reports of several races, including\nsome reports of apps bypassing our recursion check so that a process that\nwas forked as part of a core_pattern setup could infinitely crash and\nrefork until the system crashed.\n\nWe fixed those by improving our recursion checks.  The new check basically\nrefuses to fork a process if its core limit is zero, which works well.\n\nUnfortunately, I\u0027ve been getting grief from maintainer of user space\nprograms that are inserted as the forked process of core_pattern.  They\ncontend that in order for their programs (such as abrt and apport) to\nwork, all the running processes in a system must have their core limits\nset to a non-zero value, to which I say \u0027yes\u0027.  I did this by design, and\nthink thats the right way to do things.\n\nBut I\u0027ve been asked to ease this burden on user space enough times that I\nthought I would take a look at it.  The first suggestion was to make the\nrecursion check fail on a non-zero \u0027special\u0027 number, like one.  That way\nthe core collector process could set its core size ulimit to 1, and enable\nthe kernel\u0027s recursion detection.  This isn\u0027t a bad idea on the surface,\nbut I don\u0027t like it since its opt-in, in that if a program like abrt or\napport has a bug and fails to set such a core limit, we\u0027re left with a\nrecursively crashing system again.\n\nSo I\u0027ve come up with this.  What I\u0027ve done is modify the\ncall_usermodehelper api such that an extra parameter is added, a function\npointer which will be called by the user helper task, after it forks, but\nbefore it exec\u0027s the required process.  This will give the caller the\nopportunity to get a call back in the processes context, allowing it to do\nwhatever it needs to to the process in the kernel prior to exec-ing the\nuser space code.  In the case of do_coredump, this callback is ues to set\nthe core ulimit of the helper process to 1.  This elimnates the opt-in\nproblem that I had above, as it allows the ulimit for core sizes to be set\nto the value of 1, which is what the recursion check looks for in\ndo_coredump.\n\nThis patch:\n\nCreate new function call_usermodehelper_fns() and allow it to assign both\nan init and cleanup function, as we\u0027ll as arbitrary data.\n\nThe init function is called from the context of the forked process and\nallows for customization of the helper process prior to calling exec.  Its\nreturn code gates the continuation of the process, or causes its exit.\nAlso add an arbitrary data pointer to the subprocess_info struct allowing\nfor data to be passed from the caller to the new process, and the\nsubsequent cleanup process\n\nAlso, use this patch to cleanup the cleanup function.  It currently takes\nan argp and envp pointer for freeing, which is ugly.  Lets instead just\nmake the subprocess_info structure public, and pass that to the cleanup\nand init routines\n\nSigned-off-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "065add3941bdca54fe04ed3471a96bce9af88793"
}
