)]}'
{
  "log": [
    {
      "commit": "85b6bce3658a823aa169586fe71ffba0f12ccc71",
      "tree": "ad2ca0b501d2ff767889d15dfda22abec75f38c4",
      "parents": [
        "1a75a3f0680d9c4bc4761512658b6fd664032e18"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@suse.cz",
        "time": "Fri Mar 31 02:30:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:50 2006 -0800"
      },
      "message": "[PATCH] Fix suspend with traced tasks\n\nstrace /bin/bash misbehaves after resume; this fixes it.\n\n(akpm: it\u0027s scary calling refrigerator() in state TASK_TRACED, but it seems to\ndo the right thing).\n\nSigned-off-by: Pavel Machek \u003cpavel@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "547679087bc60277d11b11631d826895762c4505",
      "tree": "91759a5584b9d42302d4b54ecdde644bc47e781d",
      "parents": [
        "a1d5e21e3e388fb2c16463d007e788b1e41b74f1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] send_sigqueue: simplify and fix the race\n\nsend_sigqueue() checks PF_EXITING, then locks p-\u003esighand-\u003esiglock.  This is\nunsafe: \u0027p\u0027 can exit in between and set -\u003esighand \u003d NULL.  The race is\ntheoretical, the window is tiny and irqs are disabled by the caller, so I\ndon\u0027t think we need the fix for -stable tree.\n\nConvert send_sigqueue() to use lock_task_sighand() helper.\n\nAlso, delete \u0027p-\u003eflags \u0026 PF_EXITING\u0027 re-check, it is unneeded and the\ncomment is wrong.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a1d5e21e3e388fb2c16463d007e788b1e41b74f1",
      "tree": "ab89b42c9c8a873ac2f7e98dac2dc1c1807d27a1",
      "parents": [
        "883606a7c9e84e206f96c38f88c4bd66df72f51e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] do_notify_parent_cldstop: remove \u0027to_self\u0027 param\n\nThe previous patch has changed callsites of do_notify_parent_cldstop() so that\nto_self \u003d\u003d (-\u003eptrace \u0026 PT_PTRACED) always (as it should be).  We can remove\nthis parameter now.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "883606a7c9e84e206f96c38f88c4bd66df72f51e",
      "tree": "8ac0a656ac7a46b83f00b0be094025104496332f",
      "parents": [
        "dac27f4a09c274db048e80d2511102e540ac9e3a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] finish_stop: don\u0027t check stop_count \u003c 0\n\nRemove an obscure \u0027stop_count \u003c 0\u0027 check in finish_stop().  The previous patch\nmade this case impossible.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dac27f4a09c274db048e80d2511102e540ac9e3a",
      "tree": "feb4af6d7b1a784ece9909b8d5f11bd6ad83cdca",
      "parents": [
        "a7e5328a06a2beee3a2bbfaf87ce2a7bbe937de1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] simplify do_signal_stop()\n\ndo_signal_stop() considers \u0027thread_group_empty()\u0027 as a special case.\nThis was needed to avoid taking tasklist_lock. Since this lock is\nunneeded any longer, we can remove this special case and simplify\nthe code even more.\n\nAlso, before this patch, finish_stop() was called with stop_count \u003d\u003d -1\nfor \u0027thread_group_empty()\u0027 case. This is not strictly wrong, but confusing\nand unneeded.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a7e5328a06a2beee3a2bbfaf87ce2a7bbe937de1",
      "tree": "168102a80e9b98d19e8bf39156d35dacdb253c3d",
      "parents": [
        "4a2c7a7837da1b91468e50426066d988050e4d56"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] cleanup __exit_signal-\u003ecleanup_sighand path\n\nMove \u0027tsk-\u003esighand \u003d NULL\u0027 from cleanup_sighand() to __exit_signal().  This\nmakes the exit path more understandable and allows us to do\ncleanup_sighand() outside of -\u003esiglock protected section.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a2c7a7837da1b91468e50426066d988050e4d56",
      "tree": "e7e321e1a61b934e3c0d938360cc4b990407fcea",
      "parents": [
        "47e65328a7b1cdfc4e3102e50d60faf94ebba7d3"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] make fork() atomic wrt pgrp/session signals\n\nEric W. Biederman wrote:\n\u003e\n\u003e Ok. SUSV3/Posix is clear, fork is atomic with respect\n\u003e to signals.  Either a signal comes before or after a\n\u003e fork but not during. (See the rationale section).\n\u003e http://www.opengroup.org/onlinepubs/000095399/functions/fork.html\n\u003e\n\u003e The tasklist_lock does not stop forks from adding to a process\n\u003e group. The forks stall while the tasklist_lock is held, but a fork\n\u003e that began before we grabbed the tasklist_lock simply completes\n\u003e afterwards, and the child does not receive the signal.\n\nThis also means that SIGSTOP or sig_kernel_coredump() signal can\u0027t\nbe delivered to pgrp/session reliably.\n\nWith this patch copy_process() returns -ERESTARTNOINTR when it\ndetects a pending signal, fork() will be restarted transparently\nafter handling the signals.\n\nThis patch also deletes now unneeded \"group_stop_count \u003e 0\" check,\ncopy_process() can no longer succeed while group stop in progress.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-By: Eric Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47e65328a7b1cdfc4e3102e50d60faf94ebba7d3",
      "tree": "78e00a5321cca87767806a91e623e71b5c6637c7",
      "parents": [
        "88531f725bd52e37a7be726860e4ff3f09031d89"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] pids: kill PIDTYPE_TGID\n\nThis patch kills PIDTYPE_TGID pid_type thus saving one hash table in\nkernel/pid.c and speeding up subthreads create/destroy a bit.  It is also a\npreparation for the further tref/pids rework.\n\nThis patch adds \u0027struct list_head thread_group\u0027 to \u0027struct task_struct\u0027\ninstead.\n\nWe don\u0027t detach group leader from PIDTYPE_PID namespace until another\nthread inherits it\u0027s -\u003epid \u003d\u003d -\u003etgid, so we are safe wrt premature\nfree_pidmap(-\u003etgid) call.\n\nCurrently there are no users of find_task_by_pid_type(PIDTYPE_TGID).\nShould the need arise, we can use find_task_by_pid()-\u003egroup_leader.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-By: Eric Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "88531f725bd52e37a7be726860e4ff3f09031d89",
      "tree": "e43f25881012112e29d3fc13e75ccc3ba3cd4dba",
      "parents": [
        "aacc90944d4b1f2fcec73a8127eb60a3a701ce1c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:44 2006 -0800"
      },
      "message": "[PATCH] do_sigaction: don\u0027t take tasklist_lock\n\ndo_sigaction() does not need tasklist_lock anymore, we can simplify the code.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aacc90944d4b1f2fcec73a8127eb60a3a701ce1c",
      "tree": "34b8977a00913e46858d918fd437143882c66ee3",
      "parents": [
        "a122b341b74c08020f6521b615acca6a692aac79"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] do_group_exit: don\u0027t take tasklist_lock\n\ndo_group_exit() takes tasklist_lock for zap_other_threads(), this is unneeded\nnow.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a122b341b74c08020f6521b615acca6a692aac79",
      "tree": "d2e679f11f805a2817de127f195cf1a61ca22b98",
      "parents": [
        "6108ccd3e2f3012d5eec582e0af4d75e693824da"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] do_signal_stop: don\u0027t take tasklist_lock\n\ndo_signal_stop() does not need tasklist_lock anymore.  So it does not need to\ndo misc re-checks, and we can simplify the code.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6108ccd3e2f3012d5eec582e0af4d75e693824da",
      "tree": "944465dbb375e98b628e799794ca60b8e0bed61e",
      "parents": [
        "7d7185c818925ba5fe90efa75840d0b415032774"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] relax sig_needs_tasklist()\n\nhandle_stop_signal() does not need tasklist_lock for SIG_KERNEL_STOP_MASK\nsignals anymore.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7d7185c818925ba5fe90efa75840d0b415032774",
      "tree": "d0ae8f18c7ec272d887d5bcb822773d9048e8507",
      "parents": [
        "5876700cd399112ecfa70df36203c8c6660d84f8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] sys_times: don\u0027t take tasklist_lock\n\nsys_times: don\u0027t take tasklist_lock\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5876700cd399112ecfa70df36203c8c6660d84f8",
      "tree": "3060724c6682ee7452bcb7b3c99eded75cd59ea7",
      "parents": [
        "35f5cad8c4bab94ecc5acdc4055df5ea12dc76f8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] do __unhash_process() under -\u003esiglock\n\nThis patch moves __unhash_process() call from realease_task() to\n__exit_signal(), so __detach_pid() is called with -\u003esiglock held.\n\nThis means we don\u0027t need tasklist_lock to iterate over thread group anymore:\n\n\tcopy_process() was already changed to do attach_pid()\n\tunder -\u003esiglock.\n\n\tEric\u0027s \"pidhash-kill-switch_exec_pids.patch\" from -mm\n\tchanged de_thread() so it doesn\u0027t touch PIDTYPE_TGID.\n\nNOTE: de_thread() still needs some attention.  It still changes task-\u003epid\nlockless.  Taking -\u003esighand.siglock here allows to do more tasklist_lock\nremovals.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "35f5cad8c4bab94ecc5acdc4055df5ea12dc76f8",
      "tree": "aad78b130b697c3c4b594483c63a9b1a9c4ed009",
      "parents": [
        "6a14c5c9da0b4c34b5be783403c54f0396fcfe77"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] revert \"Optimize sys_times for a single thread process\"\n\nThis patch reverts \u0027CONFIG_SMP \u0026\u0026 thread_group_empty()\u0027 optimization in\nsys_times().  The reason is that the next patch breaks memory ordering which\nis needed for that optimization.\n\ntasklist_lock in sys_times() will be eliminated completely by further patch.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6a14c5c9da0b4c34b5be783403c54f0396fcfe77",
      "tree": "63e40e5761eb5327ae4f713b284c67128cb4d261",
      "parents": [
        "c81addc9d3a0ebff2155e0cd86f90820ab97147e"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] move __exit_signal() to kernel/exit.c\n\n__exit_signal() is private to release_task() now.  I think it is better to\nmake it static in kernel/exit.c and export flush_sigqueue() instead - this\nfunction is much more simple and straightforward.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c81addc9d3a0ebff2155e0cd86f90820ab97147e",
      "tree": "56eb3a50f71e7a0e2a0f0daef4ec097375b06f8d",
      "parents": [
        "29ff471234d53c7235db287bc52f91884c2977c6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] rename __exit_sighand to cleanup_sighand\n\nCosmetic, rename __exit_sighand to cleanup_sighand and move it close to\ncopy_sighand().\n\nThis matches copy_signal/cleanup_signal naming, and I think it is easier to\nfollow.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "29ff471234d53c7235db287bc52f91884c2977c6",
      "tree": "1572661596414515ebfcfd0d2ea55a4217606a5e",
      "parents": [
        "6b3934ef52712ece50605dfc72e55d00c580831a"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:43 2006 -0800"
      },
      "message": "[PATCH] cleanup __exit_signal()\n\nThis patch factors out duplicated code under \u0027if\u0027 branches.  Also, BUG_ON()\nconversions and whitespace cleanups.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6b3934ef52712ece50605dfc72e55d00c580831a",
      "tree": "5ec3c4f69a20880f75de6ff8d7d2f67d96328df3",
      "parents": [
        "7001510d0cbf51ad202dd2d0744f54104285cbb9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:16 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] copy_process: cleanup bad_fork_cleanup_signal\n\n__exit_signal() does important cleanups atomically under -\u003esiglock.  It is\nalso called from copy_process\u0027s error path.  This is not good, for example we\ncan\u0027t move __unhash_process() under -\u003esiglock for that reason.\n\nWe should not mix these 2 paths, just look at ugly \u0027if (p-\u003esighand)\u0027 under\n\u0027bad_fork_cleanup_sighand:\u0027 label.  For copy_process() case it is sufficient\nto just backout copy_signal(), nothing more.\n\nAgain, nobody can see this task yet.  For CLONE_THREAD case we just decrement\nsignal-\u003ecount, otherwise nobody can see this -\u003esignal and we can free it\nlockless.\n\nThis patch assumes it is safe to do exit_thread_group_keys() without\ntasklist_lock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7001510d0cbf51ad202dd2d0744f54104285cbb9",
      "tree": "1df2a6930c460c12026231634b86d14b153a4a86",
      "parents": [
        "a9e88e84b5245da0a1dadb6ccca70ae84e93ccf6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] copy_process: cleanup bad_fork_cleanup_sighand\n\nThe only caller of exit_sighand(tsk) is copy_process\u0027s error path.  We can\ncall __exit_sighand() directly and kill exit_sighand().\n\nThis \u0027tsk\u0027 was not yet registered in pid_hash[] or init_task.tasks, it has no\nexternal references, nobody can see it, and\n\n\tIF (clone_flags \u0026 CLONE_SIGHAND)\n\t\tAt least \u0027current\u0027 has a reference to -\u003esighand, this\n\t\tmeans atomic_dec_and_test(sighand-\u003ecount) can\u0027t be true.\n\n\tELSE\n\t\tNobody can see this -\u003esighand, this means we can free it\n\t\twithout any locking.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nAcked-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a9e88e84b5245da0a1dadb6ccca70ae84e93ccf6",
      "tree": "2b155e7f5ce7ff14a986361fe81d77bf9039e95e",
      "parents": [
        "f63ee72e0fb82e504a0489490babc7612c7cd6c2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:14 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] introduce sig_needs_tasklist() helper\n\nIn my opinion this patch cleans up the code.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f63ee72e0fb82e504a0489490babc7612c7cd6c2",
      "tree": "85167f8016d1f746135bf1777646a58c44376af1",
      "parents": [
        "aa1757f90bea3f598b6e5d04d922a6a60200f1da"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:13 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] introduce lock_task_sighand() helper\n\nAdd lock_task_sighand() helper and converts group_send_sig_info() to use\nit.  Hopefully we will have more users soon.\n\nThis patch also removes \u0027!sighand-\u003ecount\u0027 and \u0027!p-\u003eusage\u0027 checks, I think\nthey both are bogus, racy and unneeded (but probably it makes sense to\nrestore them as BUG_ON()s).\n\n-\u003esighand is cleared and it\u0027s -\u003ecount is decremented in release_task() with\nsighand-\u003esiglock held, so it is a bug to have \u0027!p-\u003eusage || !-\u003ecount\u0027 after\nwe already locked and verified it is the same.  On the other hand, an\nalready dead task without -\u003esighand can have a non-zero -\u003eusage due to\nptrace, for example.\n\nIf we read the stale value of -\u003esighand we must see the change after\nspin_lock(), because that change was done while holding that same old\n-\u003esighand.siglock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "aa1757f90bea3f598b6e5d04d922a6a60200f1da",
      "tree": "4f8f3804b2595031d0b84de7086dc28375290f0d",
      "parents": [
        "1f09f9749cdde4e69f95d62d96d2e03f50b3353c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:42 2006 -0800"
      },
      "message": "[PATCH] convert sighand_cache to use SLAB_DESTROY_BY_RCU\n\nThis patch borrows a clever Hugh\u0027s \u0027struct anon_vma\u0027 trick.\n\nWithout tasklist_lock held we can\u0027t trust task-\u003esighand until we locked it\nand re-checked that it is still the same.\n\nBut this means we don\u0027t need to defer \u0027kmem_cache_free(sighand)\u0027.  We can\nreturn the memory to slab immediately, all we need is to be sure that\nsighand-\u003esiglock can\u0027t dissapear inside rcu protected section.\n\nTo do so we need to initialize -\u003esiglock inside ctor function,\nSLAB_DESTROY_BY_RCU does the rest.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1f09f9749cdde4e69f95d62d96d2e03f50b3353c",
      "tree": "414589e7d650df08685d00369b97cc6541a0a1ea",
      "parents": [
        "8292d633add73d40eda1d26089e2fc758944ac7c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] release_task: replace open-coded ptrace_unlink()\n\nUse ptrace_unlink() instead of open-coding.  No changes in kernel/exit.o\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8292d633add73d40eda1d26089e2fc758944ac7c",
      "tree": "963c4ec3c3a30223f1929cb67abe18f58ec17f5c",
      "parents": [
        "6ac781b11ade6e3451f6b460991c8b2b87e58280"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] wait_for_helper: trivial style cleanup\n\nUse NULL instead of (... *)0\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ac781b11ade6e3451f6b460991c8b2b87e58280",
      "tree": "a16cf9dd7a9322c2efaae2ac51bfc15845953738",
      "parents": [
        "c7c6464117a02b0d54feb4ebeca4db70fa493678"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] reparent_thread: use remove_parent/add_parent\n\nUse remove_parent/add_parent instead of open coding.\n\nNo changes in kernel/exit.o\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "73b9ebfe126a4a886ee46cbab637374d7024668a",
      "tree": "d7ba00d4ce76b49c1569334956cd196b35977a04",
      "parents": [
        "c97d98931ac52ef110b62d9b75c6a6f2bfbc1898"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] pidhash: don\u0027t count idle threads\n\nfork_idle() does unhash_process() just after copy_process().  Contrary,\nboot_cpu\u0027s idle thread explicitely registers itself for each pid_type with nr\n\u003d 0.\n\ncopy_process() already checks p-\u003epid !\u003d 0 before process_counts++, I think we\ncan just skip attach_pid() calls and job control inits for idle threads and\nkill unhash_process().  We don\u0027t need to cleanup -\u003eproc_dentry in fork_idle()\nbecause with this patch idle threads are never hashed in\nkernel/pid.c:pid_hash[].\n\nWe don\u0027t need to hash pid \u003d\u003d 0 in pidmap_init().  free_pidmap() is never\ncalled with pid \u003d\u003d 0 arg, so it will never be reused.  So it is still possible\nto use pid \u003d\u003d 0 in any PIDTYPE_xxx namespace from kernel/pid.c\u0027s POV.\n\nHowever with this patch we don\u0027t hash pid \u003d\u003d 0 for PIDTYPE_PID case.  We still\nhave have PIDTYPE_PGID/PIDTYPE_SID entries with pid \u003d\u003d 0: /sbin/init and\nkernel threads which don\u0027t call daemonize().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c97d98931ac52ef110b62d9b75c6a6f2bfbc1898",
      "tree": "f811f8b2862692c2eb7ee92e62e8f0afcfd37a2d",
      "parents": [
        "9b678ece42893b53aae5ed7cb8d7cb261cacb72c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] kill SET_LINKS/REMOVE_LINKS\n\nBoth SET_LINKS() and SET_LINKS/REMOVE_LINKS() have exactly one caller, and\nthese callers already check thread_group_leader().\n\nThis patch kills theese macros, they mix two different things: setting\nprocess\u0027s parent and registering it in init_task.tasks list.  Callers are\nupdated to do these actions by hand.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b678ece42893b53aae5ed7cb8d7cb261cacb72c",
      "tree": "2fc3cdcdc2940127885219b8d4142f8317b46bbd",
      "parents": [
        "8fafabd86f1b75ed3cc6a6ffbe6c3e53e3d8457d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] don\u0027t use REMOVE_LINKS/SET_LINKS for reparenting\n\nThere are places where kernel uses REMOVE_LINKS/SET_LINKS while changing\nprocess\u0027s -\u003eparent.  Use add_parent/remove_parent instead, they don\u0027t abuse\nof global process list.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8fafabd86f1b75ed3cc6a6ffbe6c3e53e3d8457d",
      "tree": "3ae1a8fc44870ac3046213b11cad4aa8b3ce5f04",
      "parents": [
        "d799f03597cabc6112acb518fc8ab4487aa4f953"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:41 2006 -0800"
      },
      "message": "[PATCH] remove add_parent()\u0027s parent argument\n\nadd_parent(p, parent) is always called with parent \u003d\u003d p-\u003eparent, and it makes\nno sense to do it differently.  This patch removes this argument.\n\nNo changes in affected .o files.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d799f03597cabc6112acb518fc8ab4487aa4f953",
      "tree": "1cc9561cbe4f463ff5579b14adc960b17a6a2cf4",
      "parents": [
        "d73d65293e3e2de7e916a89c8da30be0948afab7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Mar 28 16:11:04 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:40 2006 -0800"
      },
      "message": "[PATCH] choose_new_parent: remove unused arg, sanitize exit_state check\n\n\u0027child_reaper\u0027 arg is not used in choose_new_parent().\n\n\"-\u003eexit_state \u003e\u003d EXIT_ZOMBIE\" check is a leftover, was\nvalid when EXIT_ZOMBIE lived in -\u003estate var.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Eric Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d73d65293e3e2de7e916a89c8da30be0948afab7",
      "tree": "62b0ca76e3099c927f2960856dd060b136a8ccef",
      "parents": [
        "652486fb84a07ed750f1c11639518f55808bf555"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 28 16:11:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:40 2006 -0800"
      },
      "message": "[PATCH] pidhash: kill switch_exec_pids\n\nswitch_exec_pids is only called from de_thread by way of exec, and it is\nonly called when we are exec\u0027ing from a non thread group leader.\n\nCurrently switch_exec_pids gives the leader the pid of the thread and\nunhashes and rehashes all of the process groups.  The leader is already in\nthe EXIT_DEAD state so no one cares about it\u0027s pids.  The only concern for\nthe leader is that __unhash_process called from release_task will function\ncorrectly.  If we don\u0027t touch the leader at all we know that\n__unhash_process will work fine so there is no need to touch the leader.\n\nFor the task becomming the thread group leader, we just need to give it the\npid of the old thread group leader, add it to the task list, and attach it\nto the session and the process group of the thread group.\n\nCurrently de_thread is also adding the task to the task list which is just\nsilly.\n\nCurrently the only leader of __detach_pid besides detach_pid is\nswitch_exec_pids because of the ugly extra work that was being\nperformed.\n\nSo this patch removes switch_exec_pids because it is doing too much, it is\ncreating an unnecessary special case in pid.c, duing work duplicated in\nde_thread, and generally obscuring what it is going on.\n\nThe necessary work is added to de_thread, and it seems to be a little\nclearer there what is going on.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Kirill Korotaev \u003cdev@sw.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fef23e7fbb11a0a78cd61935f7056bc2b237995a",
      "tree": "a6ff460b3a5d11d01c0532de561eb81183e056c2",
      "parents": [
        "ca9ba4471c1203bb6e759b76e83167fec54fe590"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Mar 28 16:10:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 18:36:40 2006 -0800"
      },
      "message": "[PATCH] exec: allow init to exec from any thread.\n\nAfter looking at the problem of init calling exec some more I figured out\nan easy way to make the code work.\n\nThe actual symptom without out this patch is that all threads will die\nexcept pid \u003d\u003d 1, and the thread calling exec.  The thread calling exec will\nwait forever for pid \u003d\u003d 1 to die.\n\nSince pid \u003d\u003d 1 does not install a handler for SIGKILL it will never die.\n\nThis modifies the tests for init from current-\u003epid \u003d\u003d 1 to the equivalent\ncurrent \u003d\u003d child_reaper.  And then it causes exec in the ugly case to\nmodify child_reaper.\n\nThe only weird symptom is that you wind up with an init process that\ndoesn\u0027t have the oldest start time on the box.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ec7e15d6486e9d1da1c2f344b670b8388ba7019b",
      "tree": "479d803ee546b536521dc87095c31781a98a0bb6",
      "parents": [
        "4fa95ef639830ccf0ca1ad42ee9bed87ef642f32"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Mar 28 01:56:55 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:09 2006 -0800"
      },
      "message": "[PATCH] compat_sys_futex() warning fix\n\nkernel/futex_compat.c: In function `compat_sys_futex\u0027:\nkernel/futex_compat.c:140: warning: passing arg 1 of `do_futex\u0027 makes integer from pointer without a cast\nkernel/futex_compat.c:140: warning: passing arg 5 of `do_futex\u0027 makes integer from pointer without a cast\n\nNot sure what Ingo was thinking of here.  Put the casts back in.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0a945022778f100115d0cb6234eb28fc1b15ccaf",
      "tree": "85df4b5f7dd8bf59557091379c59b23b09115bf6",
      "parents": [
        "631d6747e1d877a4baa924cb373b8b9511a53e5e"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Mar 28 01:56:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:05 2006 -0800"
      },
      "message": "[PATCH] for_each_possible_cpu: fixes for generic part\n\nreplaces for_each_cpu with for_each_possible_cpu().\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b9e20a920092eb3840424f85c78852c0433df00d",
      "tree": "267bf2564817cc5d5c36cb4b3acd860e2ee2c126",
      "parents": [
        "7b7a317cf863559b49b548a8b97b2f4bdf1e149e"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Tue Mar 28 01:56:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:03 2006 -0800"
      },
      "message": "[PATCH] Change dash2underscore() return value to char\n\nSince dash2underscore() just operates and returns chars, I guess its safe\nto change the return value to a char.  With my .config, this reduces its\nsize by 5 bytes.\n\n   text    data     bss     dec     hex filename\n   4155     152       0    4307    10d3 params.o.orig\n   4150     152       0    4302    10ce params.o\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f83ca9fe3ee390755f18b4a7780c25ce593b484a",
      "tree": "7517b8739a05218690ff421f78820d46728908f1",
      "parents": [
        "6d9eac34104654aa129e365b8d48bbb8c957f186"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Tue Mar 28 01:56:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Mar 28 09:16:02 2006 -0800"
      },
      "message": "[PATCH] symversion warning fix\n\ngcc-4.2:\n\nkernel/module.c: In function \u0027__find_symbol\u0027:\nkernel/module.c:158: warning: the address of \u0027__start___kcrctab\u0027, will always evaluate as \u0027true\u0027\nkernel/module.c:165: warning: the address of \u0027__start___kcrctab_gpl\u0027, will always evaluate as \u0027true\u0027\nkernel/module.c:182: warning: the address of \u0027__start___kcrctab_gpl_future\u0027, will always evaluate as \u0027true\u0027\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e041c683412d5bf44dc2b109053e3b837b71742d",
      "tree": "9d271066ef379da0c0fb3b8cb4137abd5d2ebba0",
      "parents": [
        "76b81e2b0e2241accebcc68e126bc5ab958661b9"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Mar 27 01:16:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:50 2006 -0800"
      },
      "message": "[PATCH] Notifier chain update: API changes\n\nThe kernel\u0027s implementation of notifier chains is unsafe.  There is no\nprotection against entries being added to or removed from a chain while the\nchain is in use.  The issues were discussed in this thread:\n\n    http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d113018709002036\u0026w\u003d2\n\nWe noticed that notifier chains in the kernel fall into two basic usage\nclasses:\n\n\t\"Blocking\" chains are always called from a process context\n\tand the callout routines are allowed to sleep;\n\n\t\"Atomic\" chains can be called from an atomic context and\n\tthe callout routines are not allowed to sleep.\n\nWe decided to codify this distinction and make it part of the API.  Therefore\nthis set of patches introduces three new, parallel APIs: one for blocking\nnotifiers, one for atomic notifiers, and one for \"raw\" notifiers (which is\nreally just the old API under a new name).  New kinds of data structures are\nused for the heads of the chains, and new routines are defined for\nregistration, unregistration, and calling a chain.  The three APIs are\nexplained in include/linux/notifier.h and their implementation is in\nkernel/sys.c.\n\nWith atomic and blocking chains, the implementation guarantees that the chain\nlinks will not be corrupted and that chain callers will not get messed up by\nentries being added or removed.  For raw chains the implementation provides no\nguarantees at all; users of this API must provide their own protections.  (The\nidea was that situations may come up where the assumptions of the atomic and\nblocking APIs are not appropriate, so it should be possible for users to\nhandle these things in their own way.)\n\nThere are some limitations, which should not be too hard to live with.  For\natomic/blocking chains, registration and unregistration must always be done in\na process context since the chain is protected by a mutex/rwsem.  Also, a\ncallout routine for a non-raw chain must not try to register or unregister\nentries on its own chain.  (This did happen in a couple of places and the code\nhad to be changed to avoid it.)\n\nSince atomic chains may be called from within an NMI handler, they cannot use\nspinlocks for synchronization.  Instead we use RCU.  The overhead falls almost\nentirely in the unregister routine, which is okay since unregistration is much\nless frequent that calling a chain.\n\nHere is the list of chains that we adjusted and their classifications.  None\nof them use the raw API, so for the moment it is only a placeholder.\n\n  ATOMIC CHAINS\n  -------------\narch/i386/kernel/traps.c:\t\ti386die_chain\narch/ia64/kernel/traps.c:\t\tia64die_chain\narch/powerpc/kernel/traps.c:\t\tpowerpc_die_chain\narch/sparc64/kernel/traps.c:\t\tsparc64die_chain\narch/x86_64/kernel/traps.c:\t\tdie_chain\ndrivers/char/ipmi/ipmi_si_intf.c:\txaction_notifier_list\nkernel/panic.c:\t\t\t\tpanic_notifier_list\nkernel/profile.c:\t\t\ttask_free_notifier\nnet/bluetooth/hci_core.c:\t\thci_notifier\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_chain\nnet/ipv4/netfilter/ip_conntrack_core.c:\tip_conntrack_expect_chain\nnet/ipv6/addrconf.c:\t\t\tinet6addr_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_chain\nnet/netfilter/nf_conntrack_core.c:\tnf_conntrack_expect_chain\nnet/netlink/af_netlink.c:\t\tnetlink_chain\n\n  BLOCKING CHAINS\n  ---------------\narch/powerpc/platforms/pseries/reconfig.c:\tpSeries_reconfig_chain\narch/s390/kernel/process.c:\t\tidle_chain\narch/x86_64/kernel/process.c\t\tidle_notifier\ndrivers/base/memory.c:\t\t\tmemory_chain\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_policy_notifier_list\ndrivers/cpufreq/cpufreq.c\t\tcpufreq_transition_notifier_list\ndrivers/macintosh/adb.c:\t\tadb_client_list\ndrivers/macintosh/via-pmu.c\t\tsleep_notifier_list\ndrivers/macintosh/via-pmu68k.c\t\tsleep_notifier_list\ndrivers/macintosh/windfarm_core.c\twf_client_list\ndrivers/usb/core/notify.c\t\tusb_notifier_list\ndrivers/video/fbmem.c\t\t\tfb_notifier_list\nkernel/cpu.c\t\t\t\tcpu_chain\nkernel/module.c\t\t\t\tmodule_notify_list\nkernel/profile.c\t\t\tmunmap_notifier\nkernel/profile.c\t\t\ttask_exit_notifier\nkernel/sys.c\t\t\t\treboot_notifier_list\nnet/core/dev.c\t\t\t\tnetdev_chain\nnet/decnet/dn_dev.c:\t\t\tdnaddr_chain\nnet/ipv4/devinet.c:\t\t\tinetaddr_chain\n\nIt\u0027s possible that some of these classifications are wrong.  If they are,\nplease let us know or submit a patch to fix them.  Note that any chain that\ngets called very frequently should be atomic, because the rwsem read-locking\nused for blocking chains is very likely to incur cache misses on SMP systems.\n(However, if the chain\u0027s callout routines may sleep then the chain cannot be\natomic.)\n\nThe patch set was written by Alan Stern and Chandra Seetharaman, incorporating\nmaterial written by Keith Owens and suggestions from Paul McKenney and Andrew\nMorton.\n\n[jes@sgi.com: restructure the notifier chain initialization macros]\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Jes Sorensen \u003cjes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f17d3a5049d32392b79925c73a0cf99ce6d5af0",
      "tree": "3c2aa0cbe337684d353dd2cfb0c177b4ae15217c",
      "parents": [
        "8fdd6c6df7889dc89df3d9fe0f5bbe6733e39f48"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes updates\n\n- fix: initialize the robust list(s) to NULL in copy_process.\n\n- doc update\n\n- cleanup: rename _inuser to _inatomic\n\n- __user cleanups and other small cleanups\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "34f192c6527f20c47ccec239e7d51a27691b93fc",
      "tree": "6c80416cf6a170a193f829e414051cc618b15ee3",
      "parents": [
        "2eec9ad91f71a3dbacece5c4fb5adc09fad53a96"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:24 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes: compat\n\n32-bit syscall compatibility support.  (This patch also moves all futex\nrelated compat functionality into kernel/futex_compat.c.)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0771dfefc9e538f077d0b43b6dec19a5a67d0e70",
      "tree": "696267e69228b7406b337f9651dedc75055a589e",
      "parents": [
        "e9056f13bfcdd054a0c3d730e4e096748d8a363a"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Mar 27 01:16:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:49 2006 -0800"
      },
      "message": "[PATCH] lightweight robust futexes: core\n\nAdd the core infrastructure for robust futexes: structure definitions, the new\nsyscalls and the do_exit() based cleanup mechanism.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nAcked-by: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Michael Kerrisk \u003cmtk-manpages@gmx.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0806903316d516a3b3851c51cea5c71724d9051d",
      "tree": "05b453747a68a32bfd1d668a53963a4bb0bc36d1",
      "parents": [
        "1e9f28fa1eb9773bf65bae08288c6a0a38eef4a7"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Mar 27 01:15:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:44 2006 -0800"
      },
      "message": "[PATCH] sched: fix group power for allnodes_domains\n\nCurrent sched groups power calculation for allnodes_domains is wrong.  We\nshould really be using cumulative power of the physical packages in that\ngroup (similar to the calculation in node_domains)\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1e9f28fa1eb9773bf65bae08288c6a0a38eef4a7",
      "tree": "ccfa4927ebc7a8f663f9ac9e7789a713a33253ff",
      "parents": [
        "77e4bfbcf071f795b54862455dce8902b3fc29c2"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Mar 27 01:15:22 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:43 2006 -0800"
      },
      "message": "[PATCH] sched: new sched domain for representing multi-core\n\nAdd a new sched domain for representing multi-core with shared caches\nbetween cores.  Consider a dual package system, each package containing two\ncores and with last level cache shared between cores with in a package.  If\nthere are two runnable processes, with this appended patch those two\nprocesses will be scheduled on different packages.\n\nOn such systems, with this patch we have observed 8% perf improvement with\nspecJBB(2 warehouse) benchmark and 35% improvement with CFP2000 rate(with 2\nusers).\n\nThis new domain will come into play only on multi-core systems with shared\ncaches.  On other systems, this sched domain will be removed by domain\ndegeneration code.  This new domain can be also used for implementing power\nsavings policy (see OLS 2005 CMP kernel scheduler paper for more details..\nI will post another patch for power savings policy soon)\n\nMost of the arch/* file changes are for cpu_coregroup_map() implementation.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "77e4bfbcf071f795b54862455dce8902b3fc29c2",
      "tree": "cde3cb39a72de0bb8b42c1c5752f25b3b16bf5ee",
      "parents": [
        "013d3868143387be99bb0373d49452eaa3c55d41"
      ],
      "author": {
        "name": "Andreas Mohr",
        "email": "andi@lisas.de",
        "time": "Mon Mar 27 01:15:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:43 2006 -0800"
      },
      "message": "[PATCH] Small schedule() optimization\n\nsmall schedule() microoptimization.\n\nSigned-off-by: Andreas Mohr \u003candi@lisas.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "013d3868143387be99bb0373d49452eaa3c55d41",
      "tree": "584f39a6d76ccfac6b77d2480b9b43b556547f3d",
      "parents": [
        "491214716755894986b99e0cf0a08b830d244577"
      ],
      "author": {
        "name": "Martin Andersson",
        "email": "martin.andersson@control.lth.se",
        "time": "Mon Mar 27 01:15:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Mar 27 08:44:43 2006 -0800"
      },
      "message": "[PATCH] sched: fix task interactivity calculation\n\nIs a truncation error in kernel/sched.c triggered when the nice value is\nnegative.  The affected code is used in the TASK_INTERACTIVE macro.\n\nThe code is:\n#define SCALE(v1,v1_max,v2_max) \\\n\t(v1) * (v2_max) / (v1_max)\n\nwhich is used in this way:\nSCALE(TASK_NICE(p), 40, MAX_BONUS)\n\nComments in the code says:\n  * This part scales the interactivity limit depending on niceness.\n  *\n  * We scale it linearly, offset by the INTERACTIVE_DELTA delta.\n  * Here are a few examples of different nice levels:\n  *\n  *  TASK_INTERACTIVE(-20): [1,1,1,1,1,1,1,1,1,0,0]\n  *  TASK_INTERACTIVE(-10): [1,1,1,1,1,1,1,0,0,0,0]\n  *  TASK_INTERACTIVE(  0): [1,1,1,1,0,0,0,0,0,0,0]\n  *  TASK_INTERACTIVE( 10): [1,1,0,0,0,0,0,0,0,0,0]\n  *  TASK_INTERACTIVE( 19): [0,0,0,0,0,0,0,0,0,0,0]\n  *\n  * (the X axis represents the possible -5 ... 0 ... +5 dynamic\n  *  priority range a task can explore, a value of \u00271\u0027 means the\n  *  task is rated interactive.)\n\nHowever, the current code does not scale it linearly and the result differs\nfrom the given examples.  If the mathematical function \"floor\" is used when\nthe nice value is negative instead of the truncation one gets when using\ninteger division, the result conforms to the documentation.\n\nOutput of TASK_INTERACTIVE when using the kernel code:\nnice    dynamic priorities\n-20     1     1     1     1     1     1     1     1     1     0     0\n-19     1     1     1     1     1     1     1     1     0     0     0\n-18     1     1     1     1     1     1     1     1     0     0     0\n-17     1     1     1     1     1     1     1     1     0     0     0\n-16     1     1     1     1     1     1     1     1     0     0     0\n-15     1     1     1     1     1     1     1     0     0     0     0\n-14     1     1     1     1     1     1     1     0     0     0     0\n-13     1     1     1     1     1     1     1     0     0     0     0\n-12     1     1     1     1     1     1     1     0     0     0     0\n-11     1     1     1     1     1     1     0     0     0     0     0\n-10     1     1     1     1     1     1     0     0     0     0     0\n  -9     1     1     1     1     1     1     0     0     0     0     0\n  -8     1     1     1     1     1     1     0     0     0     0     0\n  -7     1     1     1     1     1     0     0     0     0     0     0\n  -6     1     1     1     1     1     0     0     0     0     0     0\n  -5     1     1     1     1     1     0     0     0     0     0     0\n  -4     1     1     1     1     1     0     0     0     0     0     0\n  -3     1     1     1     1     0     0     0     0     0     0     0\n  -2     1     1     1     1     0     0     0     0     0     0     0\n  -1     1     1     1     1     0     0     0     0     0     0     0\n  0      1     1     1     1     0     0     0     0     0     0     0\n  1      1     1     1     1     0     0     0     0     0     0     0\n  2      1     1     1     1     0     0     0     0     0     0     0\n  3      1     1     1     1     0     0     0     0     0     0     0\n  4      1     1     1     0     0     0     0     0     0     0     0\n  5      1     1     1     0     0     0     0     0     0     0     0\n  6      1     1     1     0     0     0     0     0     0     0     0\n  7      1     1     1     0     0     0     0     0     0     0     0\n  8      1     1     0     0     0     0     0     0     0     0     0\n  9      1     1     0     0     0     0     0     0     0     0     0\n10      1     1     0     0     0     0     0     0     0     0     0\n11      1     1     0     0     0     0     0     0     0     0     0\n12      1     0     0     0     0     0     0     0     0     0     0\n13      1     0     0     0     0     0     0     0     0     0     0\n14      1     0     0     0     0     0     0     0     0     0     0\n15      1     0     0     0     0     0     0     0     0     0     0\n16      0     0     0     0     0     0     0     0     0     0     0\n17      0     0     0     0     0     0     0     0     0     0     0\n18      0     0     0     0     0     0     0     0     0     0     0\n19      0     0     0     0     0     0     0     0     0     0     0\n\nOutput of TASK_INTERACTIVE when using \"floor\"\nnice    dynamic priorities\n-20     1     1     1     1     1     1     1     1     1     0     0\n-19     1     1     1     1     1     1     1     1     1     0     0\n-18     1     1     1     1     1     1     1     1     1     0     0\n-17     1     1     1     1     1     1     1     1     1     0     0\n-16     1     1     1     1     1     1     1     1     0     0     0\n-15     1     1     1     1     1     1     1     1     0     0     0\n-14     1     1     1     1     1     1     1     1     0     0     0\n-13     1     1     1     1     1     1     1     1     0     0     0\n-12     1     1     1     1     1     1     1     0     0     0     0\n-11     1     1     1     1     1     1     1     0     0     0     0\n-10     1     1     1     1     1     1     1     0     0     0     0\n  -9     1     1     1     1     1     1     1     0     0     0     0\n  -8     1     1     1     1     1     1     0     0     0     0     0\n  -7     1     1     1     1     1     1     0     0     0     0     0\n  -6     1     1     1     1     1     1     0     0     0     0     0\n  -5     1     1     1     1     1     1     0     0     0     0     0\n  -4     1     1     1     1     1     0     0     0     0     0     0\n  -3     1     1     1     1     1     0     0     0     0     0     0\n  -2     1     1     1     1     1     0     0     0     0     0     0\n  -1     1     1     1     1     1     0     0     0     0     0     0\n   0     1     1     1     1     0     0     0     0     0     0     0\n   1     1     1     1     1     0     0     0     0     0     0     0\n   2     1     1     1     1     0     0     0     0     0     0     0\n   3     1     1     1     1     0     0     0     0     0     0     0\n   4     1     1     1     0     0     0     0     0     0     0     0\n   5     1     1     1     0     0     0     0     0     0     0     0\n   6     1     1     1     0     0     0     0     0     0     0     0\n   7     1     1     1     0     0     0     0     0     0     0     0\n   8     1     1     0     0     0     0     0     0     0     0     0\n   9     1     1     0     0     0     0     0     0     0     0     0\n  10     1     1     0     0     0     0     0     0     0     0     0\n  11     1     1     0     0     0     0     0     0     0     0     0\n  12     1     0     0     0     0     0     0     0     0     0     0\n  13     1     0     0     0     0     0     0     0     0     0     0\n  14     1     0     0     0     0     0     0     0     0     0     0\n  15     1     0     0     0     0     0     0     0     0     0     0\n  16     0     0     0     0     0     0     0     0     0     0     0\n  17     0     0     0     0     0     0     0     0     0     0     0\n  18     0     0     0     0     0     0     0     0     0     0     0\n  19     0     0     0     0     0     0     0     0     0     0     0\n\nSigned-off-by: Martin Andersson \u003cmartin.andersson@control.lth.se\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\u003e\nCc: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nCc: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9ae21d1bb376436285cd5346d3e4b3655d6dd1b9",
      "tree": "8f889770fae721da63bd378c1834a87e2eb1cfb5",
      "parents": [
        "f9b4192923fa6e38331e88214b1fe5fc21583fcc",
        "e9415777b1cd0eaf4d1d3d61772f0e6d5c2551ad"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 09:41:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 09:41:18 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial:\n  drivers/char/ftape/lowlevel/fdc-io.c: Correct a comment\n  Kconfig help: MTD_JEDECPROBE already supports Intel\n  Remove ugly debugging stuff\n  do_mounts.c: Minor ROOT_DEV comment cleanup\n  BUG_ON() Conversion in drivers/s390/block/dasd_devmap.c\n  BUG_ON() Conversion in mm/mempool.c\n  BUG_ON() Conversion in mm/memory.c\n  BUG_ON() Conversion in kernel/fork.c\n  BUG_ON() Conversion in ipc/sem.c\n  BUG_ON() Conversion in fs/ext2/\n  BUG_ON() Conversion in fs/hfs/\n  BUG_ON() Conversion in fs/dcache.c\n  BUG_ON() Conversion in fs/buffer.c\n  BUG_ON() Conversion in input/serio/hp_sdc_mlc.c\n  BUG_ON() Conversion in md/dm-table.c\n  BUG_ON() Conversion in md/dm-path-selector.c\n  BUG_ON() Conversion in drivers/isdn\n  BUG_ON() Conversion in drivers/char\n  BUG_ON() Conversion in drivers/mtd/\n"
    },
    {
      "commit": "c6fd91f0bdcd294a0ae0ba2b2a7f7456ef4b7144",
      "tree": "1d095d1761a44118f101b2ce9697346ff168753a",
      "parents": [
        "c9becf58d935265919bf1cb348b2c04492c8949d"
      ],
      "author": {
        "name": "bibo mao",
        "email": "bibo_mao@linux.intel.com",
        "time": "Sun Mar 26 01:38:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:04 2006 -0800"
      },
      "message": "[PATCH] kretprobe instance recycled by parent process\n\nWhen kretprobe probes the schedule() function, if the probed process exits\nthen schedule() will never return, so some kretprobe instances will never\nbe recycled.\n\nIn this patch the parent process will recycle retprobe instances of the\nprobed function and there will be no memory leak of kretprobe instances.\n\nSigned-off-by: bibo mao \u003cbibo.mao@intel.com\u003e\nCc: Masami Hiramatsu \u003chiramatu@sdl.hitachi.co.jp\u003e\nCc: Prasanna S Panchamukhi \u003cprasanna@in.ibm.com\u003e\nCc: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nCc: Anil S Keshavamurthy \u003canil.s.keshavamurthy@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "05cfb614ddbf3181540ce09d44d96486f8ba8d6a",
      "tree": "aafed98638557a4643141d906fbb2406f0764a94",
      "parents": [
        "df869b630d9d9131c10cf073fb61646048874b2f"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sun Mar 26 01:38:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:03 2006 -0800"
      },
      "message": "[PATCH] hrtimers: remove data field\n\nThe nanosleep cleanup allows to remove the data field of hrtimer.  The\ncallback function can use container_of() to get it\u0027s own data.  Since the\nhrtimer structure is anyway embedded in other structures, this adds no\noverhead.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "df869b630d9d9131c10cf073fb61646048874b2f",
      "tree": "37e38f934e4505ddf23569227865f47facff64e8",
      "parents": [
        "272705c5979c114e63dbfcd28ea15093038a4c42"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sun Mar 26 01:38:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:03 2006 -0800"
      },
      "message": "[PATCH] hrtimers: remove nsec_t typedef\n\nnsec_t predates ktime_t and has mostly been superseded by it.  In the few\nplaces that are left it\u0027s better to make it explicit that we\u0027re dealing with\n64 bit values here.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b75f7a51ca75c977d7d77f735d7a7859194eb39e",
      "tree": "c8057a34970f9a6fb04bdfa37e2926df38747790",
      "parents": [
        "432569bb9d9d424d7ffe5b21f8205c55bdd1aaa8"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sun Mar 26 01:38:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:02 2006 -0800"
      },
      "message": "[PATCH] hrtimers: remove state field\n\nRemove the state field and encode this information in the rb_node similiar to\nnormal timer.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "432569bb9d9d424d7ffe5b21f8205c55bdd1aaa8",
      "tree": "da649d202625d061d4fca27a6a63c4f81076724e",
      "parents": [
        "3b98a5328171cebc867f70484b20bd34948cd7f6"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sun Mar 26 01:38:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:02 2006 -0800"
      },
      "message": "[PATCH] hrtimers: simplify nanosleep\n\nnanosleep is the only user of the expired state, so let it manage this itself,\nwhich makes the hrtimer code a bit simpler.  The remaining time is also only\ncalculated if requested.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3b98a5328171cebc867f70484b20bd34948cd7f6",
      "tree": "11510d45aec22c742baf6b67233dc1ebdfa17ee1",
      "parents": [
        "44f21475511bbc0135b52c66ad74dcc6a9026da3"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sun Mar 26 01:38:07 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:02 2006 -0800"
      },
      "message": "[PATCH] hrtimers: posix-timer: cleanup common_timer_get()\n\nCleanup common_timer_get() a little.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "44f21475511bbc0135b52c66ad74dcc6a9026da3",
      "tree": "5cbd605c9d074f40b52a877859957432311b2399",
      "parents": [
        "92127c7a45d4d167d9b015a5f9de6b41ed66f1d0"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sun Mar 26 01:38:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:02 2006 -0800"
      },
      "message": "[PATCH] hrtimers: pass current time to hrtimer_forward()\n\nPass current time to hrtimer_forward().  This allows to use the softirq time\nin the timer base when the forward function is called from the timer callback.\n Other places pass current time with a call to timer-\u003ebase-\u003eget_time().\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92127c7a45d4d167d9b015a5f9de6b41ed66f1d0",
      "tree": "4742cc36ff0b26c999365d1e84133886bb694096",
      "parents": [
        "a0e9285233a32edf267d27cd03fe0056951422cf"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Mar 26 01:38:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:57:02 2006 -0800"
      },
      "message": "[PATCH] hrtimers: optimize softirq runqueues\n\nThe hrtimer softirq is called from the timer softirq every tick.  Retrieve the\ncurrent time from xtime and wall_to_monotonic instead of calling\nbase-\u003eget_time() for each timer base.  Store the time in the base structure\nand provide a hook once clock source abstractions are in place and to keep the\ncode open for new base clocks.\n\nBased on a patch from: Roman Zippel \u003czippel@linux-m68k.org\u003e\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3158e9411a66fb98d495ac441c242264f31aaf3e",
      "tree": "7b3bad47214c09c9dcd7ff27316c6de23f4c7cb0",
      "parents": [
        "88959ea968709c35e8b979ac9f5a398fa748091a"
      ],
      "author": {
        "name": "Stephen Rothwell",
        "email": "sfr@canb.auug.org.au",
        "time": "Sun Mar 26 01:37:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:57 2006 -0800"
      },
      "message": "[PATCH] consolidate sys32/compat_adjtimex\n\nCreate compat_sys_adjtimex and use it an all appropriate places.\n\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e655a250d5fc12b6dfe0d436180ba4a3bfffdc9f",
      "tree": "fc914e0c146f82139ff7e40d30ec642f3663aa2a",
      "parents": [
        "9f4fd61fa7c13ea905dac18b9baa766a35b88485"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Sun Mar 26 01:37:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:55 2006 -0800"
      },
      "message": "[PATCH] swswsup: return correct load_image error\n\nIf there\u0027s an error in load_image() we should return that without checking\nsnapshot_image_loaded.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nAcked-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cd7b24bb1891a10ee25168a912ff2304a9571d23",
      "tree": "c8cc6bf9b7c2d3b527f9c5bb8e7ae2b422ee3ac7",
      "parents": [
        "6dc659d813fdd1789e605d69d0b8762d284e8c60"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Sun Mar 26 01:36:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Mar 26 08:56:53 2006 -0800"
      },
      "message": "[PATCH] warn if free_irq() is called from IRQ context\n\nWarn if free_irq() is called in IRQ context - free_irq() can execute /proc\nVFS work, which must not be done in IRQ context.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "910dea7fdda22f0ee83d26d459e460c79ed94557",
      "tree": "46e68906b0026e11ed567cedb7993060c89da9e2",
      "parents": [
        "27315c96a4c3d5f24a902111dae537cdc28302e4"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Mar 26 18:29:26 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Mar 26 18:29:26 2006 +0200"
      },
      "message": "BUG_ON() Conversion in kernel/fork.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner, contains unlikely() and can better optimized away.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "1b9a3917366028cc451a98dd22e3bcd537d4e5c1",
      "tree": "d911058720e0a9aeeaf9f407ccdc6fbf4047f47d",
      "parents": [
        "3661f00e2097676847deb01add1a0918044bd816",
        "71e1c784b24a026a490b3de01541fc5ee14ebc09"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:24:53 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 09:24:53 2006 -0800"
      },
      "message": "Merge branch \u0027audit.b3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current\n\n* \u0027audit.b3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current: (22 commits)\n  [PATCH] fix audit_init failure path\n  [PATCH] EXPORT_SYMBOL patch for audit_log, audit_log_start, audit_log_end and audit_format\n  [PATCH] sem2mutex: audit_netlink_sem\n  [PATCH] simplify audit_free() locking\n  [PATCH] Fix audit operators\n  [PATCH] promiscuous mode\n  [PATCH] Add tty to syscall audit records\n  [PATCH] add/remove rule update\n  [PATCH] audit string fields interface + consumer\n  [PATCH] SE Linux audit events\n  [PATCH] Minor cosmetic cleanups to the code moved into auditfilter.c\n  [PATCH] Fix audit record filtering with !CONFIG_AUDITSYSCALL\n  [PATCH] Fix IA64 success/failure indication in syscall auditing.\n  [PATCH] Miscellaneous bug and warning fixes\n  [PATCH] Capture selinux subject/object context information.\n  [PATCH] Exclude messages by message type\n  [PATCH] Collect more inode information during syscall processing.\n  [PATCH] Pass dentry, not just name, in fsnotify creation hooks.\n  [PATCH] Define new range of userspace messages.\n  [PATCH] Filter rule comparators\n  ...\n\nFixed trivial conflict in security/selinux/hooks.c\n"
    },
    {
      "commit": "1e8c573933fd7975679766850252ad08667e5ca4",
      "tree": "9600d0c7ee5ea8925f3c4dc30680c819e0363805",
      "parents": [
        "d71eecf3b8e893757cc3dec560c96a32ac090890",
        "232443e2c90cc2930624dec89df327615b002c55"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:41:09 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:41:09 2006 -0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial: (21 commits)\n  BUG_ON() Conversion in drivers/video/\n  BUG_ON() Conversion in drivers/parisc/\n  BUG_ON() Conversion in drivers/block/\n  BUG_ON() Conversion in sound/sparc/cs4231.c\n  BUG_ON() Conversion in drivers/s390/block/dasd.c\n  BUG_ON() Conversion in lib/swiotlb.c\n  BUG_ON() Conversion in kernel/cpu.c\n  BUG_ON() Conversion in ipc/msg.c\n  BUG_ON() Conversion in block/elevator.c\n  BUG_ON() Conversion in fs/coda/\n  BUG_ON() Conversion in fs/binfmt_elf_fdpic.c\n  BUG_ON() Conversion in input/serio/hil_mlc.c\n  BUG_ON() Conversion in md/dm-hw-handler.c\n  BUG_ON() Conversion in md/bitmap.c\n  The comment describing how MS_ASYNC works in msync.c is confusing\n  rcu: undeclared variable used in documentation\n  fix typos \"wich\" -\u003e \"which\"\n  typo patch for fs/ufs/super.c\n  Fix simple typos\n  tabify drivers/char/Makefile\n  ...\n"
    },
    {
      "commit": "5ddcfa878d5b10b0ab94251a4229a8a9daaf93ed",
      "tree": "b24bbd7ccb1a8accb0bc2e6f8c0d3b92f0bf66ea",
      "parents": [
        "e4294b3ecd1da9abeb66709c89f71b1ba888b3b1"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Sat Mar 25 03:08:28 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:23:02 2006 -0800"
      },
      "message": "[PATCH] remove pps support\n\nThis removes the support for pps.  It\u0027s completely unused within the kernel\nand is basically in the way for further cleanups.  It should be easier to\nreadd proper support for it after the rest has been converted to NTP4\n(where the pps mechanisms are quite different from NTP3 anyway).\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5163427453bc6ca2dd497eeb3e7a30d1c74b487",
      "tree": "6fc334c30d12ee269e58d96e515543de48e9cf53",
      "parents": [
        "6cc6b1226b71132a1d6e95449d78e051f1f3b506"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Sat Mar 25 03:08:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:23:01 2006 -0800"
      },
      "message": "[PATCH] Add SA_PERCPU_IRQ flag support\n\nAdd support for SA_PERCPU_IRQ (only mmtimer.c uses this at this stage).\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d74beb9f33a5f16d2965f11b275e401f225c949d",
      "tree": "48f851753ebe9c9c8dd701dcdd0c5e1d7c629579",
      "parents": [
        "34f361ade2fb4a869f6a7714d01c04ce4cfa75d9"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Sat Mar 25 03:08:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:23:01 2006 -0800"
      },
      "message": "[PATCH] Use unsigned int types for a faster bsearch\n\nThis patch avoids arithmetic on \u0027signed\u0027 types that are slower than\n\u0027unsigned\u0027.  This saves space and cpu cycles.\n\nsize of kernel/sys.o before the patch (gcc-3.4.5)\n\n    text    data     bss     dec     hex filename\n   10924     252       4   11180    2bac kernel/sys.o\n\nsize of kernel/sys.o after the patch\n    text    data     bss     dec     hex filename\n   10903     252       4   11159    2b97 kernel/sys.o\n\nI noticed that gcc-4.1.0 (from Fedora Core 5) even uses idiv instruction for\n(a+b)/2 if a and b are signed.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "34f361ade2fb4a869f6a7714d01c04ce4cfa75d9",
      "tree": "a250999fc386ddbfe3c92e4d8ffdcf2d3393134a",
      "parents": [
        "f1a1c2dc2a956c375b432d2a9a28e52ba9d81c7c"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Sat Mar 25 03:08:18 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:23:01 2006 -0800"
      },
      "message": "[PATCH] Check if cpu can be onlined before calling smp_prepare_cpu()\n\n- Moved check for online cpu out of smp_prepare_cpu()\n\n- Moved default declaration of smp_prepare_cpu() to kernel/cpu.c\n\n- Removed lock_cpu_hotplug() from smp_prepare_cpu() to around it, since\n  its called from cpu_up() as well now.\n\n- Removed clearing from cpu_present_map during cpu_offline as it breaks\n  using cpu_up() directly during a subsequent online operation.\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: \"Li, Shaohua\" \u003cshaohua.li@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "231bed205879236357171e50bd8965e70797ecdc",
      "tree": "fe3bb52388510eca3fc19548abd26f4009b94db1",
      "parents": [
        "76c67de460b3d00b7ab8a96bb18f07ca47d65fba"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@resalehost.networksolutions.com",
        "time": "Sat Mar 25 03:08:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:58 2006 -0800"
      },
      "message": "[PATCH] No need to protect current-\u003egroup_info in sys_getgroups(), in_group_p() and in_egroup_p()\n\nWhile doing some benchmarks of an Apache/PHP SMP server, I noticed high\noprofile numbers in in_group_p() and _atomic_dec_and_lock().\n\nrank  percent\n  1     4.8911 % __link_path_walk\n  2     4.8503 % __d_lookup\n*3     4.2911 % _atomic_dec_and_lock\n  4     3.9307 % __copy_to_user_ll\n  5     4.9004 % sysenter_past_esp\n*6     3.3248 % in_group_p\n\nIt appears that in_group_p() does an uncessary\n\nget_group_info(current-\u003egroup_info); /* atomic_inc() */\n  ... /* access current-\u003egroup_info */\nput_group_info(current-\u003egroup_info); /* _atomic_dec_and_lock */\n\nIt is not necessary to do this, because the current task holds a reference\non its own group_info, and this reference cannot change during the lookup.\n\nThis patch deletes the get_group_info()/put_group_info() pair from\nsys_getgroups(), in_group_p() and in_egroup_p() functions.\n\nSigned-off-by: Eric Dumazet \u003cdada1@cosmosbay.com\u003e\nCc: Tim Hockin \u003cthockin@hockin.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "05eeae208d08a05a6980cf2ff61f02843c0955fd",
      "tree": "be6c6c4e16cfac07edf437a1f74ef027ada8ccc7",
      "parents": [
        "c1f5a1944657ba6abe375e3bb2a3238a46849f70"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Mar 25 03:07:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:57 2006 -0800"
      },
      "message": "[PATCH] find_task_by_pid() needs tasklist_lock\n\nA couple of places are forgetting to take it.\n\nThe kswapd case is probably unimportant.  keventd_create_kthread() was racy.\n\nThe whole thing is a bit flakey: you start a kernel thread, get its pid from\nkernel_thread() then look up its task_struct.\n\na) It assumes that pid recycling takes a \"long\" time.\n\nb) We get a task_struct but no reference was taken on it.  The owner of the\n   kswapd and kthread task_struct*\u0027s must assume that the new thread won\u0027t\n   exit unexpectedly.  Because if it does, they\u0027re left holding dead memory\n   and any attempt to control or stop that task will crash.\n\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "12b5989be10011387a9da5dee82e5c0d6f9d02e7",
      "tree": "74da71d407bf26bf97c639bb2b473de233a736ac",
      "parents": [
        "77d47582c2345e071df02afaf9191641009287c4"
      ],
      "author": {
        "name": "Chris Wright",
        "email": "chrisw@sous-sol.org",
        "time": "Sat Mar 25 03:07:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:56 2006 -0800"
      },
      "message": "[PATCH] refactor capable() to one implementation, add __capable() helper\n\nMove capable() to kernel/capability.c and eliminate duplicate\nimplementations.  Add __capable() function which can be used to check for\ncapabiilty of any process.\n\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "501f2499b897ca4be68b1acc7a4bc8cf66f5fd24",
      "tree": "279014a8fd8ce1ca43f036e416063e6a795e5889",
      "parents": [
        "c777ac5594f772ac760e02c3ac71d067616b579d"
      ],
      "author": {
        "name": "Bryan Holty",
        "email": "lgeek@frontiernet.net",
        "time": "Sat Mar 25 03:07:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:55 2006 -0800"
      },
      "message": "[PATCH] IRQ: prevent enabling of previously disabled interrupt\n\nThis fix prevents re-disabling and enabling of a previously disabled\ninterrupt.  On an SMP system with irq balancing enabled; If an interrupt is\ndisabled from within its own interrupt context with disable_irq_nosync and is\nalso earmarked for processor migration, the interrupt is blindly moved to the\nother processor and enabled without regard for its current \"enabled\" state.\nIf there is an interrupt pending, it will unexpectedly invoke the irq handler\non the new irq owning processor (even though the irq was previously disabled)\n\nThe more intuitive fix would be to invoke disable_irq_nosync and\nenable_irq, but since we already have the desc-\u003elock from __do_IRQ, we\ncannot call them directly.  Instead we can use the same logic to disable\nand enable found in disable_irq_nosync and enable_irq, with regards to the\ndesc-\u003edepth.\n\nThis now prevents a disabled interrupt from being re-disabled, and more\nimportantly prevents a disabled interrupt from being incorrectly enabled on\na different processor.\n\nSigned-off-by: Bryan Holty \u003clgeek@frontiernet.net\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c777ac5594f772ac760e02c3ac71d067616b579d",
      "tree": "3a186fd7c1b63a89bc6c6749b2b234821ee8fdc4",
      "parents": [
        "4cae59d2e85c1ee2ab1ee284db1945c5394cd965"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Mar 25 03:07:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:55 2006 -0800"
      },
      "message": "[PATCH] irq: uninline migration functions\n\nUninline some massive IRQ migration functions.  Put them in the new\nkernel/irq/migration.c.\n\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9871728b756646e0d758a966ba00f2c0ff812817",
      "tree": "32899f2bc1e72d6ba51665b59350e9729e7f5287",
      "parents": [
        "8d3b33f67fdc0fb364a1ef6d8fbbea7c2e4e6c98"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Mar 25 03:07:06 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:52 2006 -0800"
      },
      "message": "[PATCH] kernel/params.c: make param_array() static\n\nparam_array() in kernel/params.c can now become static.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d3b33f67fdc0fb364a1ef6d8fbbea7c2e4e6c98",
      "tree": "7fc48e7544ea6a6c6a7cc7685612a38f5edc25ae",
      "parents": [
        "c721bccece2b3abca4f7b0b95108e68b78445cec"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Sat Mar 25 03:07:05 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:52 2006 -0800"
      },
      "message": "[PATCH] Remove MODULE_PARM\n\nMODULE_PARM was actually breaking: recent gcc version optimize them out as\nunused.  It\u0027s time to replace the last users, which are generally in the\nmost unloved drivers anyway.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7d99b7d634d81bb372e03e4561c80430aa4cfac2",
      "tree": "905654bd7cb4940126606cf212c61079eeca722b",
      "parents": [
        "c08b8a49100715b20e6f7c997e992428b5e06078"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 25 03:06:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:49 2006 -0800"
      },
      "message": "[PATCH] Validate and sanitze itimer timeval from userspace\n\nAccording to the specification the timevals must be validated and an\nerrorcode -EINVAL returned in case the timevals are not in canonical form.\nThis check was never done in Linux.\n\nThe pre 2.6.16 code converted invalid timevals silently.  Negative timeouts\nwere converted by the timeval_to_jiffies conversion to the maximum timeout.\n\nhrtimers and the ktime_t operations expect timevals in canonical form.\nOtherwise random results might happen on 32 bits machines due to the\noptimized ktime_add/sub operations.  Negative timeouts are treated as\nalready expired.  This might break applications which work on pre 2.6.16.\n\nTo prevent random behaviour and API breakage the timevals are checked and\ninvalid timevals sanitized in a simliar way as the pre 2.6.16 code did.\n\nInvalid timevals are reported with a per boot limited number of kernel\nmessages so applications which use this misfeature can be corrected.\n\nAfter a grace period of one year the sanitizing should be replaced by a\ncorrect validation check.  This is also documented in\nDocumentation/feature-removal-schedule.txt\n\nThe validation and sanitizing is done inside do_setitimer so all callers\n(sys_setitimer, compat_sys_setitimer, osf_setitimer) are catched.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c08b8a49100715b20e6f7c997e992428b5e06078",
      "tree": "014758fb05908a3d49eeadc77f16dfa7585b12ac",
      "parents": [
        "185ae6d7a32721e9062030a9f2d24ed714fa45df"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 25 03:06:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:48 2006 -0800"
      },
      "message": "[PATCH] sys_alarm() unsigned signed conversion fixup\n\nalarm() calls the kernel with an unsigend int timeout in seconds.  The\nvalue is stored in the tv_sec field of a struct timeval to setup the\nitimer.  The tv_sec field of struct timeval is of type long, which causes\nthe tv_sec value to be negative on 32 bit machines if seconds \u003e INT_MAX.\n\nBefore the hrtimer merge (pre 2.6.16) such a negative value was converted\nto the maximum jiffies timeout by the timeval_to_jiffies conversion.  It\u0027s\nnot clear whether this was intended or just happened to be done by the\ntimeval_to_jiffies code.\n\nhrtimers expect a timeval in canonical form and treat a negative timeout as\nalready expired.  This breaks the legitimate usage of alarm() with a\ntimeout value \u003e INT_MAX seconds.\n\nFor 32 bit machines it is therefor necessary to limit the internal seconds\nvalue to avoid API breakage.  Instead of doing this in all implementations\nof sys_alarm the duplicated sys_alarm code is moved into a common function\nin itimer.c\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "185ae6d7a32721e9062030a9f2d24ed714fa45df",
      "tree": "0b58171078097f6a4e80c56e138d654a2d68a188",
      "parents": [
        "bc83455bc8336f57cd74d6e86b0f8fcad187d179"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sat Mar 25 03:06:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Mar 25 08:22:48 2006 -0800"
      },
      "message": "[PATCH] timer irq driven soft watchdog fix\n\nI seem to have lost this hunk in yesterday\u0027s patch.  It brings the\ncoming-online CPU\u0027s softlockup timer up to date so we don\u0027t get false-positive\ntripups during CPU hot-add.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6978c7052f2e22c6c40781cdd4eba5c4bce9a789",
      "tree": "eb93e551109b441052db414b7074d8b2a0f19e45",
      "parents": [
        "8cd5283b897f56004631944dd2888e9a7b843f89"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Fri Mar 24 18:45:21 2006 +0100"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Mar 24 18:45:21 2006 +0100"
      },
      "message": "BUG_ON() Conversion in kernel/cpu.c\n\nthis changes if() BUG(); constructs to BUG_ON() which is\ncleaner, contains unlikely() and can better optimized away.\n\nSigned-off-by: Eric Sesterhenn \u003csnakebyte@gmx.de\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "f125b56113be4956867cc9bd098bb99b1b9bb93f",
      "tree": "ffb7715fa4b729dab0546df887065718f36fba85",
      "parents": [
        "0cb409d98e351e6817e0bc37fe6815fc14b2c036"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:18:44 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:31 2006 -0800"
      },
      "message": "[PATCH] fix build error if CONFIG_SYSFS\u003dn\n\nuevent_seqnum and uevent_helper are only defined if CONFIG_HOTPLUG\u003dy,\nCONFIG_NET\u003dn.\n\n(I stole this back from Greg\u0027s tree - it makes allnoconfig work).\n\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "24277dda3a54aa5e6265487e1a3091e27f3c0c45",
      "tree": "8fdfcb8c522fff6ce6f82d0b06346b89a825d639",
      "parents": [
        "96840aa00a031069a136ec4c55d0bdd09ac6d3a7"
      ],
      "author": {
        "name": "Davi Arnaut",
        "email": "davi.arnaut@gmail.com",
        "time": "Fri Mar 24 03:18:43 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:31 2006 -0800"
      },
      "message": "[PATCH] strndup_user: convert module\n\nChange hand-coded userspace string copying to strndup_user.\n\nSigned-off-by: Davi Arnaut \u003cdavi.arnaut@gmail.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6687a97d4041f996f725902d2990e5de6ef5cbe5",
      "tree": "6ab982091cde7179d94cf592f9c669fd22d93a23",
      "parents": [
        "6a4d11c2abc57ed7ca42041e5f68ae4f7f640a81"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Mar 24 03:18:41 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:30 2006 -0800"
      },
      "message": "[PATCH] timer-irq-driven soft-watchdog, cleanups\n\nMake the softlockup detector purely timer-interrupt driven, removing\nsoftirq-context (timer) dependencies.  This means that if the softlockup\nwatchdog triggers, it has truly observed a longer than 10 seconds\nscheduling delay of a SCHED_FIFO prio 99 task.\n\n(the patch also turns off the softlockup detector during the initial bootup\nphase and does small style fixes)\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6a4d11c2abc57ed7ca42041e5f68ae4f7f640a81",
      "tree": "93a839de19cf3f49bbbb3668f31c8a002c2f7f7f",
      "parents": [
        "b5a7c4f5835ae2805d00ca39709002cb03364143"
      ],
      "author": {
        "name": "Sergey Vlasov",
        "email": "vsu@altlinux.ru",
        "time": "Fri Mar 24 03:18:38 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:30 2006 -0800"
      },
      "message": "[PATCH] Fix module refcount leak in __set_personality()\n\nIf the change of personality does not lead to change of exec domain,\n__set_personality() returned without releasing the module reference\nacquired by lookup_exec_domain().\n\nSigned-off-by: Sergey Vlasov \u003cvsu@altlinux.ru\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d3561f78fd379a7110e46c87964ba7aa4120235c",
      "tree": "3f055910e42abf0d2d312bf3feda79dd6798f76e",
      "parents": [
        "e0661111e5441995f7a69dc4336c9f131cb9bc58"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:18:36 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:30 2006 -0800"
      },
      "message": "[PATCH] RLIMIT_CPU: document wrong return value\n\nDocument the fact that setrlimit(RLIMIT_CPU) doesn\u0027t return error codes when\nit should.  I don\u0027t think we can fix this without a 2.7.x..\n\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ulrich Weigand \u003cuweigand@de.ibm.com\u003e\nCc: Cliff Wickman \u003ccpw@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e0661111e5441995f7a69dc4336c9f131cb9bc58",
      "tree": "47a0a0ae66a9f792e6c9edbf683cdc0b62a2d4b7",
      "parents": [
        "ec9e16bacdba1da1ee15dd162384e22df5c87e09"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:18:35 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:30 2006 -0800"
      },
      "message": "[PATCH] RLIMIT_CPU: fix handling of a zero limit\n\nAt present the kernel doesn\u0027t honour an attempt to set RLIMIT_CPU to zero\nseconds.  But the spec says it should, and that\u0027s what 2.4.x does.\n\nFixing this for real would involve some complexity (such as adding a new\nit-has-been-set flag to the task_struct, and testing that everwhere, instead\nof overloading the value of it_prof_expires).\n\nGiven that a 2.4 kernel won\u0027t actually send the signal until one second has\nexpired anyway, let\u0027s just handle this case by treating the caller\u0027s\nzero-seconds as one second.\n\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ulrich Weigand \u003cuweigand@de.ibm.com\u003e\nCc: Cliff Wickman \u003ccpw@sgi.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ec9e16bacdba1da1ee15dd162384e22df5c87e09",
      "tree": "c69536db0e5a8814051745faa77fc34eea9ac75c",
      "parents": [
        "de62a97ef576a1f6b5013139ded9893226375bbb"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:18:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:30 2006 -0800"
      },
      "message": "[PATCH] sys_setrlimit() cleanup\n\n- Whitespace cleanups\n\n- Make that expression comprehensible.\n\nThere\u0027s a potential logic change here: we do the \"is it_prof_expires equal to\nzero\" test after converting it to seconds, rather than doing the comparison\nbetween raw cputime_t\u0027s.\n\nBut given that it\u0027s in units of seconds anyway, that shouldn\u0027t change\nanything.\n\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ulrich Weigand \u003cuweigand@de.ibm.com\u003e\nCc: Cliff Wickman \u003ccpw@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ea1c5392cc8ce249fb661db4f4cdfbbae373a89",
      "tree": "07e612d8e1e6c015f7da2702f2af4129e63db15c",
      "parents": [
        "7e9dd124b90af80824754f68c0b246cfd0fb624b"
      ],
      "author": {
        "name": "John Z. Bohach",
        "email": "jzb@aexorsyst.com",
        "time": "Fri Mar 24 03:18:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:27 2006 -0800"
      },
      "message": "[PATCH] console_setup() depends (wrongly?) on CONFIG_PRINTK\n\nIt appears that console_setup() code only gets compiled into the kernel if\nCONFIG_PRINTK is enabled.  One detrimental side-effect of this is that\nserial8250_console_setup() never gets invoked when CONFIG_PRINTK is not\nset, resulting in baud rate not being read/parsed from command line (i.e.\nconsole\u003dttyS0,115200n8 is ignored, at least the baud rate part...)\n\nAttached patch moves console_setup() code from inside\n\n#ifdef CONFIG_PRINTK\n\nto outside (in printk.c), removing dependence on said config. option.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "29afd49b72a9b2c26fa8c678bcf3976d0540446b",
      "tree": "4cc12f5bb3c5c3ee668226990e79115081609265",
      "parents": [
        "b2455396be35383c4eebc6745cc718b1dd9e23df"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:12 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:24 2006 -0800"
      },
      "message": "[PATCH] cpuset: remove useless local variable initialization\n\nRemove a useless variable initialization in cpuset __cpuset_zone_allowed().\n The local variable \u0027allowed\u0027 is unconditionally set before use, later on\nin the code, so does not need to be initialized.\n\nNot that it seems to matter to the code generated any, as the compiler\noptimizes out the superfluous assignment anyway.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "151a44202d097ae8b1bbaa6d8d2f97df30e3cd1e",
      "tree": "3752bba902e73001443bb75f40495cc3a1d24f54",
      "parents": [
        "8488bc359d674baf710992e4b641513ea5ebd212"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:11 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:24 2006 -0800"
      },
      "message": "[PATCH] cpuset: don\u0027t need to mark cpuset_mems_generation atomic\n\nDrop the atomic_t marking on the cpuset static global\ncpuset_mems_generation.  Since all access to it is guarded by the global\nmanage_mutex, there is no need for further serialization of this value.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8488bc359d674baf710992e4b641513ea5ebd212",
      "tree": "28f6558f6b006c5a28a64a1beabec5498d9b77d4",
      "parents": [
        "b0196009d8c3ecf6ea6ec080c63d2ccc146e7ad9"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:10 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset: remove unnecessary NULL check\n\nRemove a no longer needed test for NULL cpuset pointer, with a little\ncomment explaining why the test isn\u0027t needed.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c61afb181c649754ea221f104e268cbacfc993e3",
      "tree": "870917b3f9175cf1663a2620d989856913cfb5f8",
      "parents": [
        "101a50019ae5e370d73984ee05d56dd3b08f330a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:08 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:23 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread slab cache optimizations\n\nThe hooks in the slab cache allocator code path for support of NUMA\nmempolicies and cpuset memory spreading are in an important code path.  Many\nsystems will use neither feature.\n\nThis patch optimizes those hooks down to a single check of some bits in the\ncurrent tasks task_struct flags.  For non NUMA systems, this hook and related\ncode is already ifdef\u0027d out.\n\nThe optimization is done by using another task flag, set if the task is using\na non-default NUMA mempolicy.  Taking this flag bit along with the\nPF_SPREAD_PAGE and PF_SPREAD_SLAB flag bits added earlier in this \u0027cpuset\nmemory spreading\u0027 patch set, one can check for the combination of any of these\nspecial case memory placement mechanisms with a single test of the current\ntasks task_struct flags.\n\nThis patch also tightens up the code, to save a few bytes of kernel text\nspace, and moves some of it out of line.  Due to the nested inlines called\nfrom multiple places, we were ending up with three copies of this code, which\nonce we get off the main code path (for local node allocation) seems a bit\nwasteful of instruction memory.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "825a46af5ac171f9f41f794a0a00165588ba1589",
      "tree": "b690fe9d809d7b047f0393097fc79892e1217d98",
      "parents": [
        "8a39cc60bfa5a72f32d975729a354daca124f6de"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:03 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:22 2006 -0800"
      },
      "message": "[PATCH] cpuset memory spread basic implementation\n\nThis patch provides the implementation and cpuset interface for an alternative\nmemory allocation policy that can be applied to certain kinds of memory\nallocations, such as the page cache (file system buffers) and some slab caches\n(such as inode caches).\n\nThe policy is called \"memory spreading.\" If enabled, it spreads out these\nkinds of memory allocations over all the nodes allowed to a task, instead of\npreferring to place them on the node where the task is executing.\n\nAll other kinds of allocations, including anonymous pages for a tasks stack\nand data regions, are not affected by this policy choice, and continue to be\nallocated preferring the node local to execution, as modified by the NUMA\nmempolicy.\n\nThere are two boolean flag files per cpuset that control where the kernel\nallocates pages for the file system buffers and related in kernel data\nstructures.  They are called \u0027memory_spread_page\u0027 and \u0027memory_spread_slab\u0027.\n\nIf the per-cpuset boolean flag file \u0027memory_spread_page\u0027 is set, then the\nkernel will spread the file system buffers (page cache) evenly over all the\nnodes that the faulting task is allowed to use, instead of preferring to put\nthose pages on the node where the task is running.\n\nIf the per-cpuset boolean flag file \u0027memory_spread_slab\u0027 is set, then the\nkernel will spread some file system related slab caches, such as for inodes\nand dentries evenly over all the nodes that the faulting task is allowed to\nuse, instead of preferring to put those pages on the node where the task is\nrunning.\n\nThe implementation is simple.  Setting the cpuset flags \u0027memory_spread_page\u0027\nor \u0027memory_spread_cache\u0027 turns on the per-process flags PF_SPREAD_PAGE or\nPF_SPREAD_SLAB, respectively, for each task that is in the cpuset or\nsubsequently joins that cpuset.  In subsequent patches, the page allocation\ncalls for the affected page cache and slab caches are modified to perform an\ninline check for these flags, and if set, a call to a new routine\ncpuset_mem_spread_node() returns the node to prefer for the allocation.\n\nThe cpuset_mem_spread_node() routine is also simple.  It uses the value of a\nper-task rotor cpuset_mem_spread_rotor to select the next node in the current\ntasks mems_allowed to prefer for the allocation.\n\nThis policy can provide substantial improvements for jobs that need to place\nthread local data on the corresponding node, but that need to access large\nfile system data sets that need to be spread across the several nodes in the\njobs cpuset in order to fit.  Without this patch, especially for jobs that\nmight have one thread reading in the data set, the memory allocation across\nthe nodes in the jobs cpuset can become very uneven.\n\nA couple of Copyright year ranges are updated as well.  And a couple of email\naddresses that can be found in the MAINTAINERS file are removed.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8a39cc60bfa5a72f32d975729a354daca124f6de",
      "tree": "c8a364e6fc5186293bca85152c442a4a23df4822",
      "parents": [
        "7b5b9ef0e17d52c188fe73ea78e884fe67079e6c"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:01 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:22 2006 -0800"
      },
      "message": "[PATCH] cpuset use combined atomic_inc_return calls\n\nReplace pairs of calls to \u003catomic_inc, atomic_read\u003e, with a single call\natomic_inc_return, saving a few bytes of source and kernel text.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7b5b9ef0e17d52c188fe73ea78e884fe67079e6c",
      "tree": "6f131575486edc261e20bbcdb2f73ec28d159e91",
      "parents": [
        "0b1303fcf23678ee1785841fb0c770a35cd0833c"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 24 03:16:00 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:22 2006 -0800"
      },
      "message": "[PATCH] cpuset cleanup not not operators\n\nSince the test_bit() bit operator is boolean (return 0 or 1), the double not\n\"!!\" operations needed to convert a scalar (zero or not zero) to a boolean are\nnot needed.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "95c3832272fc77ea3e31f6382f82ba17be985cc7",
      "tree": "7a8ac960b4abec39004927443d2d1464112b805d",
      "parents": [
        "cdb0452789d365695b5b173542af9c7e3d24f185"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Fri Mar 24 03:15:58 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:22 2006 -0800"
      },
      "message": "[PATCH] rcutorture: tag success/failure line with module parameters\n\nA long-running rcutorture test can overflow dmesg, so that the line\ncontaining the module parameters is lost.  Although it is usually possible\nto retrieve this information from the log files, it is much better to just\ntag it onto the final success/failure line so that it may be easily found.\nThis patch does just that.\n\nSigned-off-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a4a6198b80cf82eb8160603c98da218d1bd5e104",
      "tree": "8c59e9088840b6b95e46c00ddda4fd7a134154c2",
      "parents": [
        "c98d8cfbc600af88e9e6cffc84dd342280445760"
      ],
      "author": {
        "name": "Jan Beulich",
        "email": "jbeulich@novell.com",
        "time": "Fri Mar 24 03:15:54 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:21 2006 -0800"
      },
      "message": "[PATCH] tvec_bases too large for per-cpu data\n\nWith internal Xen-enabled kernels we see the kernel\u0027s static per-cpu data\narea exceed the limit of 32k on x86-64, and even native x86-64 kernels get\nfairly close to that limit.  I generally question whether it is reasonable\nto have data structures several kb in size allocated as per-cpu data when\nthe space there is rather limited.\n\nThe biggest arch-independent consumer is tvec_bases (over 4k on 32-bit\narchs, over 8k on 64-bit ones), which now gets converted to use dynamically\nallocated memory instead.\n\nSigned-off-by: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "caa9ee771de3195ae85ac6f8cb550f53e9ecdd82",
      "tree": "8aa692f337e071718e698baefc631b58b446beff",
      "parents": [
        "cba9f33d13a8ca3125b2a30abe2425ce562d8a83"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Mar 24 03:15:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:20 2006 -0800"
      },
      "message": "[PATCH] rcu_process_callbacks: don\u0027t cli() while testing -\u003enxtlist\n\n__rcu_process_callbacks() disables interrupts to protect itself from\ncall_rcu() which adds new entries to -\u003enxtlist.\n\nHowever we can check \"-\u003enxtlist !\u003d NULL\" with interrupts enabled, we can\u0027t\nget \"false positives\" because call_rcu() can only change this condition\nfrom 0 to 1.\n\nTested with rcutorture.ko.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Dipankar Sarma \u003cdipankar@in.ibm.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cba9f33d13a8ca3125b2a30abe2425ce562d8a83",
      "tree": "e93e3da369be7e9f55d15d02908606a43cecfbb9",
      "parents": [
        "ed5b43f15a8e86e3ae939b98bc161ee973ecedf2"
      ],
      "author": {
        "name": "Bart Samwel",
        "email": "bart@samwel.tk",
        "time": "Fri Mar 24 03:15:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:20 2006 -0800"
      },
      "message": "[PATCH] Range checking in do_proc_dointvec_(userhz_)jiffies_conv\n\nWhen (integer) sysctl values are in either seconds or centiseconds, but\nrepresented internally as jiffies, the allowable value range is decreased.\nThis patch adds range checks to the conversion routines.\n\nFor values in seconds: maximum LONG_MAX / HZ.\n\nFor values in centiseconds: maximum (LONG_MAX / HZ) * USER_HZ.\n\n(BTW, does anyone else feel that an interface in seconds should not be\naccepting negative values?)\n\nSigned-off-by: Bart Samwel \u003cbart@samwel.tk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ed5b43f15a8e86e3ae939b98bc161ee973ecedf2",
      "tree": "dcd5bc0b5817d6452b0897a08293317f470f4db9",
      "parents": [
        "f6ef943813ac3085ece7252ea101d663581219f6"
      ],
      "author": {
        "name": "Bart Samwel",
        "email": "bart@samwel.tk",
        "time": "Fri Mar 24 03:15:49 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:20 2006 -0800"
      },
      "message": "[PATCH] Represent laptop_mode as jiffies internally\n\nMake that the internal value for /proc/sys/vm/laptop_mode is stored as\njiffies instead of seconds.  Let the sysctl interface do the conversions,\ninstead of doing on-the-fly conversions every time the value is used.\n\nAdd a description of the fact that laptop_mode doubles as a flag and a\ntimeout to the comment above the laptop_mode variable.\n\nSigned-off-by: Bart Samwel \u003cbart@samwel.tk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f6ef943813ac3085ece7252ea101d663581219f6",
      "tree": "e32d3e57ba6ae235ec1f510b16d77fe9bfa8f96e",
      "parents": [
        "36f574135e36b86bb6ae794bf1d0fce3efa5601f"
      ],
      "author": {
        "name": "Bart Samwel",
        "email": "bart@samwel.tk",
        "time": "Fri Mar 24 03:15:48 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:20 2006 -0800"
      },
      "message": "[PATCH] Represent dirty_*_centisecs as jiffies internally\n\nMake that the internal values for:\n\n/proc/sys/vm/dirty_writeback_centisecs\n/proc/sys/vm/dirty_expire_centisecs\n\nare stored as jiffies instead of centiseconds.  Let the sysctl interface do\nthe conversions with full precision using clock_t_to_jiffies, instead of\ndoing overflow-sensitive on-the-fly conversions every time the values are\nused.\n\nCons: apparent precision loss if HZ is not a multiple of 100, because of\nconversion back and forth.  This is a common problem for all sysctl values\nthat use proc_dointvec_userhz_jiffies.  (There is only one other in-tree\nuse, in net/core/neighbour.c.)\n\nSigned-off-by: Bart Samwel \u003cbart@samwel.tk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "36f574135e36b86bb6ae794bf1d0fce3efa5601f",
      "tree": "9dd55b2244d2ac9f7e05098e7236aa8cf6cd6d60",
      "parents": [
        "3cf64b933c90ba701cfdc7188431104c646d7c9e"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 24 03:15:47 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 24 07:33:20 2006 -0800"
      },
      "message": "[PATCH] free_uid() locking improvement\n\nReduce lock hold times in free_uid().\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2056a782f8e7e65fd4bfd027506b4ce1c5e9ccd4",
      "tree": "d4fe59a7ca0c110690937085548936a4535c39db",
      "parents": [
        "6dac40a7ce2483a47b54af07afebeb84131c7228"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 20:00:26 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 20:00:26 2006 +0100"
      },
      "message": "[PATCH] Block queue IO tracing support (blktrace) as of 2006-03-23\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "6dac40a7ce2483a47b54af07afebeb84131c7228",
      "tree": "45bf3872a8a332235f5e92248f68f014446b3e25",
      "parents": [
        "221415d76231d9012871e6e6abcbad906c46626a"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "zanussi@us.ibm.com",
        "time": "Thu Mar 23 19:58:45 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 19:58:45 2006 +0100"
      },
      "message": "[PATCH] relay: consolidate sendfile() and read() code\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "221415d76231d9012871e6e6abcbad906c46626a",
      "tree": "fd045e6cac9f0e27608f56f4a5639790bc5fe331",
      "parents": [
        "b86ff981a8252d83d6a7719ae09f3a05307e3592"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 19:57:55 2006 +0100"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Mar 23 19:57:55 2006 +0100"
      },
      "message": "[PATCH] relay: add sendfile() support\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    }
  ],
  "next": "b86ff981a8252d83d6a7719ae09f3a05307e3592"
}
