)]}'
{
  "log": [
    {
      "commit": "5e376613899076396d0c97de67ad072587267370",
      "tree": "ecc15c25ee4da7754aa7d137dccebab68820399e",
      "parents": [
        "0159677857c5ada0a0a2c03a4dd59312382b73d0"
      ],
      "author": {
        "name": "Trent Piepho",
        "email": "xyzzy@speakeasy.org",
        "time": "Mon May 15 09:44:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 15 11:20:55 2006 -0700"
      },
      "message": "[PATCH] symbol_put_addr() locks kernel\n\nEven since a previous patch:\n\nFix race between CONFIG_DEBUG_SLABALLOC and modules\nSun, 27 Jun 2004 17:55:19 +0000 (17:55 +0000)\nhttp://www.kernel.org/git/?p\u003dlinux/kernel/git/torvalds/old-2.6-bkcvs.git;a\u003dcommit;h\u003d92b3db26d31cf21b70e3c1eadc56c179506d8fbe\n\nThe function symbol_put_addr() will deadlock the kernel.\n\nsymbol_put_addr() would acquire modlist_lock, then while holding the lock call\ntwo functions kernel_text_address() and module_text_address() which also try\nto acquire the same lock.  This deadlocks the kernel of course.\n\nThis patch changes symbol_put_addr() to not acquire the modlist_lock, it\ndoesn\u0027t need it since it never looks at the module list directly.  Also, it\nnow uses core_kernel_text() instead of kernel_text_address().  The latter has\nan additional check for addr inside a module, but we don\u0027t need to do that\nsince we call module_text_address() (the same function kernel_text_address\nuses) ourselves.\n\nSigned-off-by: Trent Piepho \u003cxyzzy@speakeasy.org\u003e\nCc: Zwane Mwaikambo \u003czwane@fsmlabs.com\u003e\nAcked-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Johannes Stezenbach \u003cjs@linuxtv.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "986733e01d258c26107f1da9d8d47c718349ad2f",
      "tree": "5e0f04a707b8c341f79927ba6fffd0ad55d85c29",
      "parents": [
        "3b7c8108273bed41a2fc04533cc9f2026ff38c8e"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon May 15 09:43:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon May 15 11:20:55 2006 -0700"
      },
      "message": "[PATCH] RCU: introduce rcu_needs_cpu() interface\n\nWith \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\n\nIntroduce rcu_needs_cpu() interface.  This can be used to tell if there\nwill be a new rcu batch on a cpu soon by looking at the curlist pointer.\nThis can be used to avoid to enter a tickless idle state where the cpu\nwould miss that a new batch is ready when rcu_start_batch would be called\non a different cpu.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.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": "f358166a9405e4f1d8e50d8f415c26d95505b6de",
      "tree": "7f5349d9e8b59633b9f8a7bd9bcd45ace1d21a41",
      "parents": [
        "0e44dc383787b472a7f13564c6bd8a44cc07d408"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu May 11 11:08:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu May 11 11:08:49 2006 -0700"
      },
      "message": "ptrace_attach: fix possible deadlock schenario with irqs\n\nEric Biederman points out that we can\u0027t take the task_lock while holding\ntasklist_lock for writing, because another CPU that holds the task lock\nmight take an interrupt that then tries to take tasklist_lock for writing.\n\nWhich would be a nasty deadlock, with one CPU spinning forever in an\ninterrupt handler (although admittedly you need to really work at\ntriggering it ;)\n\nSince the ptrace_attach() code is special and very unusual, just make it\nbe extra careful, and use trylock+repeat to avoid the possible deadlock.\n\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f5b40e363ad6041a96e3da32281d8faa191597b9",
      "tree": "5f35453cff7acd5df5622a108381bbd011a383c5",
      "parents": [
        "5528e568a760442e0ec8fd2dea1f0791875a066b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 07 10:49:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun May 07 10:49:33 2006 -0700"
      },
      "message": "Fix ptrace_attach()/ptrace_traceme()/de_thread() race\n\nThis holds the task lock (and, for ptrace_attach, the tasklist_lock)\nover the actual attach event, which closes a race between attacking to a\nthread that is either doing a PTRACE_TRACEME or getting de-threaded.\n\nThanks to Oleg Nesterov for reminding me about this, and Chris Wright\nfor noticing a lost return value in my first version.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2ad312d2093ae506ae0fa184d8d026b559083087",
      "tree": "890337ebca18ab31546b84a9831fb9c337e8e272",
      "parents": [
        "073115d6b29c7910feaa08241c6484637f5ca958"
      ],
      "author": {
        "name": "Steve Grubb",
        "email": "sgrubb@redhat.com",
        "time": "Tue Apr 11 08:50:56 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:10:07 2006 -0400"
      },
      "message": "[PATCH] Audit Filter Performance\n\nWhile testing the watch performance, I noticed that selinux_task_ctxid()\nwas creeping into the results more than it should. Investigation showed\nthat the function call was being called whether it was needed or not. The\nbelow patch fixes this.\n\nSigned-off-by: Steve Grubb \u003csgrubb@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "073115d6b29c7910feaa08241c6484637f5ca958",
      "tree": "5fd32da9f54b3c12b65d3c0142fb9bdf87dc01c3",
      "parents": [
        "ce29b682e228c70cdc91a1b2935c5adb2087bab8"
      ],
      "author": {
        "name": "Steve Grubb",
        "email": "sgrubb@redhat.com",
        "time": "Sun Apr 02 17:07:33 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:10:04 2006 -0400"
      },
      "message": "[PATCH] Rework of IPC auditing\n\n1) The audit_ipc_perms() function has been split into two different\nfunctions:\n        - audit_ipc_obj()\n        - audit_ipc_set_perm()\n\nThere\u0027s a key shift here...  The audit_ipc_obj() collects the uid, gid,\nmode, and SElinux context label of the current ipc object.  This\naudit_ipc_obj() hook is now found in several places.  Most notably, it\nis hooked in ipcperms(), which is called in various places around the\nipc code permforming a MAC check.  Additionally there are several places\nwhere *checkid() is used to validate that an operation is being\nperformed on a valid object while not necessarily having a nearby\nipcperms() call.  In these locations, audit_ipc_obj() is called to\nensure that the information is captured by the audit system.\n\nThe audit_set_new_perm() function is called any time the permissions on\nthe ipc object changes.  In this case, the NEW permissions are recorded\n(and note that an audit_ipc_obj() call exists just a few lines before\neach instance).\n\n2) Support for an AUDIT_IPC_SET_PERM audit message type.  This allows\nfor separate auxiliary audit records for normal operations on an IPC\nobject and permissions changes.  Note that the same struct\naudit_aux_data_ipcctl is used and populated, however there are separate\naudit_log_format statements based on the type of the message.  Finally,\nthe AUDIT_IPC block of code in audit_free_aux() was extended to handle\naux messages of this new type.  No more mem leaks I hope ;-)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "ce29b682e228c70cdc91a1b2935c5adb2087bab8",
      "tree": "39e3e5b345748bec1c2d21962407689cdb1b7dab",
      "parents": [
        "e7c3497013a7e5496ce3d5fd3c73b5cf5af7a56e"
      ],
      "author": {
        "name": "Steve Grubb",
        "email": "sgrubb@redhat.com",
        "time": "Sat Apr 01 18:29:34 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:10:01 2006 -0400"
      },
      "message": "[PATCH] More user space subject labels\n\nHi,\n\nThe patch below builds upon the patch sent earlier and adds subject label to\nall audit events generated via the netlink interface. It also cleans up a few\nother minor things.\n\nSigned-off-by: Steve Grubb \u003csgrubb@redhat.com\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e7c3497013a7e5496ce3d5fd3c73b5cf5af7a56e",
      "tree": "2a57da5e958011b300256988e414387b1455660c",
      "parents": [
        "9c7aa6aa74fa8a5cda36e54cbbe4fffe0214497d"
      ],
      "author": {
        "name": "Steve Grubb",
        "email": "sgrubb@redhat.com",
        "time": "Mon Apr 03 09:08:13 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:09:58 2006 -0400"
      },
      "message": "[PATCH] Reworked patch for labels on user space messages\n\nThe below patch should be applied after the inode and ipc sid patches.\nThis patch is a reworking of Tim\u0027s patch that has been updated to match\nthe inode and ipc patches since its similar.\n\n[updated:\n\u003e  Stephen Smalley also wanted to change a variable from isec to tsec in the\n\u003e  user sid patch.                                                              ]\n\nSigned-off-by: Steve Grubb \u003csgrubb@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "9c7aa6aa74fa8a5cda36e54cbbe4fffe0214497d",
      "tree": "1e1489ed5080ea4aff6206bfa904f549de8e56ca",
      "parents": [
        "1b50eed9cac0e8e5e4d3a522d8aa267f7f8f8acb"
      ],
      "author": {
        "name": "Steve Grubb",
        "email": "sgrubb@redhat.com",
        "time": "Fri Mar 31 15:22:49 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:09:56 2006 -0400"
      },
      "message": "[PATCH] change lspp ipc auditing\n\nHi,\n\nThe patch below converts IPC auditing to collect sid\u0027s and convert to context\nstring only if it needs to output an audit record. This patch depends on the\ninode audit change patch already being applied.\n\nSigned-off-by: Steve Grubb \u003csgrubb@redhat.com\u003e\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "1b50eed9cac0e8e5e4d3a522d8aa267f7f8f8acb",
      "tree": "c66a1c3be846e34f1aac5db640b7ccb8770e8a80",
      "parents": [
        "3dc7e3153eddfcf7ba8b50628775ba516e5f759f"
      ],
      "author": {
        "name": "Steve Grubb",
        "email": "sgrubb@redhat.com",
        "time": "Mon Apr 03 14:06:13 2006 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:09:53 2006 -0400"
      },
      "message": "[PATCH] audit inode patch\n\nPreviously, we were gathering the context instead of the sid. Now in this patch,\nwe gather just the sid and convert to context only if an audit event is being\noutput.\n\nThis patch brings the performance hit from 146% down to 23%\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3dc7e3153eddfcf7ba8b50628775ba516e5f759f",
      "tree": "926957e904739fc6c29e5125b7c1635b9f77548c",
      "parents": [
        "376bd9cb357ec945ac893feaeb63af7370a6e70b"
      ],
      "author": {
        "name": "Darrel Goeddel",
        "email": "dgoeddel@trustedcs.com",
        "time": "Fri Mar 10 18:14:06 2006 -0600"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:09:36 2006 -0400"
      },
      "message": "[PATCH] support for context based audit filtering, part 2\n\nThis patch provides the ability to filter audit messages based on the\nelements of the process\u0027 SELinux context (user, role, type, mls sensitivity,\nand mls clearance).  It uses the new interfaces from selinux to opaquely\nstore information related to the selinux context and to filter based on that\ninformation.  It also uses the callback mechanism provided by selinux to\nrefresh the information when a new policy is loaded.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "97e94c453073a2aba4bb5e0825ddc5e923debf11",
      "tree": "9ed466c5252608302389f59d00c1e9e3eecd7303",
      "parents": [
        "5411be59db80333039386f3b1ccfe5eb9023a916"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 29 20:26:24 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:06:21 2006 -0400"
      },
      "message": "[PATCH] no need to wank with task_lock() and pinning task down in audit_syscall_exit()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "5411be59db80333039386f3b1ccfe5eb9023a916",
      "tree": "77873af4b7557768c3c48b56e7ae4508be4a70a5",
      "parents": [
        "e495149b173d8e133e1f6f2eb86fd97be7e92010"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 29 20:23:36 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:06:18 2006 -0400"
      },
      "message": "[PATCH] drop task argument of audit_syscall_{entry,exit}\n\n... it\u0027s always current, and that\u0027s a good thing - allows simpler locking.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "e495149b173d8e133e1f6f2eb86fd97be7e92010",
      "tree": "387a11cc8a3e272df33bdb0f697ec434b9dfa3fa",
      "parents": [
        "fa84cb935d4ec601528f5e2f0d5d31e7876a5044"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 29 20:17:10 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:06:16 2006 -0400"
      },
      "message": "[PATCH] drop gfp_mask in audit_log_exit()\n\nnow we can do that - all callers are process-synchronous and do not hold\nany locks.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "fa84cb935d4ec601528f5e2f0d5d31e7876a5044",
      "tree": "ba0694902a1fec4e32ff15503fc316c24b4a4501",
      "parents": [
        "d6fe3945b42d09a1eca7ad180a1646e585b8594f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 29 20:30:19 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:06:13 2006 -0400"
      },
      "message": "[PATCH] move call of audit_free() into do_exit()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "45d9bb0e37668b7c64d1e49e98fbc4733c23b334",
      "tree": "29b518f84a4e9c4a295dfd92a24b5a5c42c032cc",
      "parents": [
        "e0a515bc6a2188f02916e976f419a8640312e32a"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Mar 29 20:02:55 2006 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon May 01 06:06:07 2006 -0400"
      },
      "message": "[PATCH] deal with deadlocks in audit_free()\n\nDon\u0027t assume that audit_log_exit() et.al. are called for the context of\ncurrent; pass task explictly.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "13e87ec68641fd54f3fa04eef3419d034ed2115a",
      "tree": "6779da58d91af198401cc3c1f6f4c81b8d5a7bb6",
      "parents": [
        "47bb789973fed504e4711ec34e63b84e6cbfb4e8"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Thu Apr 27 18:39:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Apr 28 08:33:46 2006 -0700"
      },
      "message": "[PATCH] request_irq(): remove warnings from irq probing\n\n- Add new SA_PROBEIRQ which suppresses the new sharing-mismatch warning.\n  Some drivers like to use request_irq() to find an unused interrupt slot.\n\n- Use it in i82365.c\n\n- Kill unused SA_PROBE.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47bb789973fed504e4711ec34e63b84e6cbfb4e8",
      "tree": "2f617a73244a93d4b5b92236b6f809bf36912db5",
      "parents": [
        "37e53db8aa233c65142d63b496277bf5be9c0ade"
      ],
      "author": {
        "name": "dean gaudet",
        "email": "dean@arctic.org",
        "time": "Thu Apr 27 18:39:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Apr 28 08:33:46 2006 -0700"
      },
      "message": "[PATCH] off-by-1 in kernel/power/main.c\n\nThere\u0027s an off-by-1 in kernel/power/main.c:state_store() ...  if your\nkernel just happens to have some non-zero data at pm_states[PM_SUSPEND_MAX]\n(i.e.  one past the end of the array) then it\u0027ll let you write anything you\nwant to /sys/power/state and in response the box will enter S5.\n\nSigned-off-by: dean gaudet \u003cdean@arctic.org\u003e\nAcked-by: 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": "83d722f7e198b034699b1500d98729beff930efd",
      "tree": "7d790a2fd62165373ec7bacde704837288e0bec3",
      "parents": [
        "649bbaa484bcdce94f40a1b97a6a2ded0549e8a2"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Apr 24 19:35:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 26 08:30:03 2006 -0700"
      },
      "message": "[PATCH] Remove __devinit and __cpuinit from notifier_call definitions\n\nFew of the notifier_chain_register() callers use __init in the definition\nof notifier_call.  It is incorrect as the function definition should be\navailable after the initializations (they do not unregister them during\ninitializations).\n\nThis patch fixes all such usages to _not_ have the notifier_call __init\nsection.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "649bbaa484bcdce94f40a1b97a6a2ded0549e8a2",
      "tree": "f24f05bf95ae9c4164266da87f36fed61c5c2206",
      "parents": [
        "e7edf9cdeddc0cff125e8e658216efb2ff2b2219"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Mon Apr 24 19:35:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 26 08:27:50 2006 -0700"
      },
      "message": "[PATCH] Remove __devinitdata from notifier block definitions\n\nFew of the notifier_chain_register() callers use __devinitdata in the\ndefinition of notifier_block data structure.  It is incorrect as the\ndata structure should be available after the initializations (they do\nnot unregister them during initializations).\n\nThis was leading to an oops when notifier_chain_register() call is\ninvoked for those callback chains after initialization.\n\nThis patch fixes all such usages to _not_ have the notifier_block data\nstructure in the init data section.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "402a26f0c040077ed6f941eefac5a6971f0d5f40",
      "tree": "f74e5d732404e9716b3c753007bac0f5d1e92869",
      "parents": [
        "bf7cf6ee1bd00679bbe93b6ae73f80032759b8df",
        "4f73247f0e53be1bd4aa519476e6261a8e4a64ab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Apr 20 08:17:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Apr 20 08:17:04 2006 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block\n\n* \u0027for-linus\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block:\n  [PATCH] block/elevator.c: remove unused exports\n  [PATCH] splice: fix smaller sized splice reads\n  [PATCH] Don\u0027t inherit -\u003esplice_pipe across forks\n  [patch] cleanup: use blk_queue_stopped\n  [PATCH] Document online io scheduler switching\n"
    },
    {
      "commit": "7522a8423bed9931cbac5502b9c0657bde2700ea",
      "tree": "8729269696269cba4ca477d711490a6c89c20cda",
      "parents": [
        "5a7b46b369419493bab4de67b1526e9f76b22a7f"
      ],
      "author": {
        "name": "Ananth N Mavinakayanahalli",
        "email": "ananth@in.ibm.com",
        "time": "Thu Apr 20 02:43:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Apr 20 07:54:03 2006 -0700"
      },
      "message": "[PATCH] kprobes: NULL out non-relevant fields in struct kretprobe\n\nIn cases where a struct kretprobe\u0027s *_handler fields are non-NULL, it is\npossible to cause a system crash, due to the possibility of calls ending up\nin zombie functions.  Documentation clearly states that unused *_handlers\nshould be set to NULL, but kprobe users sometimes fail to do so.\n\nFix it by setting the non-relevant fields of the struct kretprobe to NULL.\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-by: Jim Keniston \u003cjkenisto@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0aa7f68afeeb92f6274b395177c20e617c8ed2d",
      "tree": "6750a82e5799dd2fe9cd8eb8320a98107f0f5d05",
      "parents": [
        "7daac4902053045450fa29db42aba19a4581f850"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Apr 20 13:05:33 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Thu Apr 20 13:05:33 2006 +0200"
      },
      "message": "[PATCH] Don\u0027t inherit -\u003esplice_pipe across forks\n\nIt\u0027s really task private, so clear that field on fork after copying\ntask structure.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "5a7b46b369419493bab4de67b1526e9f76b22a7f",
      "tree": "c6c25e52dfd063db53db93d756da77ab67550ec6",
      "parents": [
        "52824b6b5fa0533e2b2adc9df396d0e9ff6fb02a"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Thu Apr 20 06:41:39 2006 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 16:27:18 2006 -0700"
      },
      "message": "[PATCH] Add more prevent_tail_call()\n\nThose also break userland regs like following.\n\n   00000000 \u003csys_chown16\u003e:\n      0:\t0f b7 44 24 0c       \tmovzwl 0xc(%esp),%eax\n      5:\t83 ca ff             \tor     $0xffffffff,%edx\n      8:\t0f b7 4c 24 08       \tmovzwl 0x8(%esp),%ecx\n      d:\t66 83 f8 ff          \tcmp    $0xffffffff,%ax\n     11:\t0f 44 c2             \tcmove  %edx,%eax\n     14:\t66 83 f9 ff          \tcmp    $0xffffffff,%cx\n     18:\t0f 45 d1             \tcmovne %ecx,%edx\n     1b:\t89 44 24 0c          \tmov    %eax,0xc(%esp)\n     1f:\t89 54 24 08          \tmov    %edx,0x8(%esp)\n     23:\te9 fc ff ff ff       \tjmp    24 \u003csys_chown16+0x24\u003e\n\nwhere the tailcall at the end overwrites the incoming stack-frame.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\n[ I would _really_ like to have a way to tell gcc about calling\n  conventions. The \"prevent_tail_call()\" macro is pretty ugly ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4a3b98a422a20dedf3a2a40c44892d6e7e665157",
      "tree": "24387ffda32d2d7a8582116cd39654bf1fac19fe",
      "parents": [
        "8db08de4f6ae24e90aedf5125b5ddd52ffff15f4"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Apr 18 22:20:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:49 2006 -0700"
      },
      "message": "[PATCH] swsusp: prevent possible image corruption on resume\n\nThe function free_pagedir() used by swsusp for freeing its internal data\nstructures clears the PG_nosave and PG_nosave_free flags for each page\nbeing freed.\n\nHowever, during resume PG_nosave_free set means that the page in\nquestion is \"unsafe\" (ie.  it will be overwritten in the process of\nrestoring the saved system state from the image), so it should not be\nused for the image data.\n\nTherefore free_pagedir() should not clear PG_nosave_free if it\u0027s called\nduring resume (otherwise \"unsafe\" pages freed by it may be used for\nstoring the image data and the data may get corrupted later on).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-by: 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": "5e85d4abe3f43bb5362f384bab0e20ef082ce0b5",
      "tree": "cd3a29086e5274fd08bc8d22d15568deab144755",
      "parents": [
        "181ae4005d0a4010802be534d929b38c42b9ac06"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Tue Apr 18 22:20:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Apr 19 09:13:49 2006 -0700"
      },
      "message": "[PATCH] task: Make task list manipulations RCU safe\n\nWhile we can currently walk through thread groups, process groups, and\nsessions with just the rcu_read_lock, this opens the door to walking the\nentire task list.\n\nWe already have all of the other RCU guarantees so there is no cost in\ndoing this, this should be enough so that proc can stop taking the\ntasklist lock during readdir.\n\nprev_task was killed because it has no users, and using it will miss new\ntasks when doing an rcu traversal.\n\nSigned-off-by: 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": "64541d19702cfdb7ea946fdc20faee849f6874b1",
      "tree": "0eb2fbcac51359b590b9692b112fe662fee49a4a",
      "parents": [
        "1f60245479ca6d4d3f2cf4a47c7dd18caf5afdf2"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Apr 14 12:43:15 2006 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Apr 14 17:43:57 2006 -0700"
      },
      "message": "[PATCH] kill unushed __put_task_struct_cb\n\nSomehow in the midst of dotting i\u0027s and crossing t\u0027s during\nthe merge up to rc1 we wound up keeping __put_task_struct_cb\nwhen it should have been killed as it no longer has any users.\nSorry I probably should have caught this while it was\nstill in the -mm tree.\n\nHaving the old code there gets confusing when reading\nthrough the code and trying to understand what is\nhappening.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "78a596b4490e17b9990d87b9d468ef5bb70daa10",
      "tree": "be8f14e15adfae7215ed7c8ad7f995d078ed55c9",
      "parents": [
        "21440d313358043b0ce5e43b00ff3c9b35a8616c"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Fri Mar 31 01:38:12 2006 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Apr 14 12:25:26 2006 -0700"
      },
      "message": "[PATCH] remove kernel/power/pm.c:pm_unregister()\n\nSince the last user is removed in -mm, we can now remove this long deprecated\nfunction.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "e57a5059846e55d82b86d96dde40e988598601b3",
      "tree": "85b0f48406b37b46261735cbdd66e379977a0327",
      "parents": [
        "c06511d12d720b23c8dffff23004f0a888698f20"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Apr 12 16:30:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Apr 14 08:59:13 2006 -0700"
      },
      "message": "[PATCH] fix non-leader exec under ptrace\n\nThis reverts most of commit 30e0fca6c1d7d26f3f2daa4dd2b12c51dadc778a.\nIt broke the case of non-leader MT exec when ptraced.\nI think the bug it was intended to fix was already addressed by commit\n788e05a67c343fa22f2ae1d3ca264e7f15c25eaf.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a145410dccdb44f81d3b56763ef9b6f721f4e47c",
      "tree": "a2e6635223890acb3191332eb7ba7835fbd24586",
      "parents": [
        "2514395ef88b46e895726a8d40966cb83de7940c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Apr 11 22:18:58 2006 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 07:34:01 2006 -0700"
      },
      "message": "[PATCH] __group_complete_signal: remove bogus BUG_ON\n\nCommit e56d090310d7625ecb43a1eeebd479f04affb48b\n\n   [PATCH] RCU signal handling\n\nmade this BUG_ON() unsafe. This code runs under -\u003esiglock,\nwhile switch_exec_pids() takes tasklist_lock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "88dd9c16cecbd105bbe7711b6120333f6f7b5474",
      "tree": "9632e5988abeaa7e4d20350305edc4e4652b56d1",
      "parents": [
        "6dde432553551ae036aae12c2b940677d36c9a5b",
        "d1195c516a9acd767cb541f914be2c6ddcafcfc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:34:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:34:02 2006 -0700"
      },
      "message": "Merge branch \u0027splice\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block\n\n* \u0027splice\u0027 of git://brick.kernel.dk/data/git/linux-2.6-block:\n  [PATCH] vfs: add splice_write and splice_read to documentation\n  [PATCH] Remove sys_ prefix of new syscalls from __NR_sys_*\n  [PATCH] splice: warning fix\n  [PATCH] another round of fs/pipe.c cleanups\n  [PATCH] splice: comment styles\n  [PATCH] splice: add Ingo as addition copyright holder\n  [PATCH] splice: unlikely() optimizations\n  [PATCH] splice: speedups and optimizations\n  [PATCH] pipe.c/fifo.c code cleanups\n  [PATCH] get rid of the PIPE_*() macros\n  [PATCH] splice: speedup __generic_file_splice_read\n  [PATCH] splice: add direct fd \u003c-\u003e fd splicing support\n  [PATCH] splice: add optional input and output offsets\n  [PATCH] introduce a \"kernel-internal pipe object\" abstraction\n  [PATCH] splice: be smarter about calling do_page_cache_readahead()\n  [PATCH] splice: optimize the splice buffer mapping\n  [PATCH] splice: cleanup __generic_file_splice_read()\n  [PATCH] splice: only call wake_up_interruptible() when we really have to\n  [PATCH] splice: potential !page dereference\n  [PATCH] splice: mark the io page as accessed\n"
    },
    {
      "commit": "5ef37b196467bf2f9d41e5579dd388c08b800f7c",
      "tree": "ea1ea6e4c0f7b34b917fa52948e4939fa4e3eaf1",
      "parents": [
        "2395140ee2bffe38b1c8a59318f62882b797f5e6"
      ],
      "author": {
        "name": "Joe Korty",
        "email": "joe.korty@ccur.com",
        "time": "Mon Apr 10 22:54:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:42 2006 -0700"
      },
      "message": "[PATCH] add cpu_relax to hrtimer_cancel\n\nAdd a cpu_relax() to the hand-coded spinwait in hrtimer_cancel().\n\nSigned-off-by: Joe Korty \u003cjoe.korty@ccur.com\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": "d824e66a9a427faf69c58f98dd7e1c3d1bb51c61",
      "tree": "f2f1050a55e496777896aaac96ebd82cbc62c174",
      "parents": [
        "f6422f17d3a480f21917a3895e2a46b968f56a08"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Apr 10 22:54:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:41 2006 -0700"
      },
      "message": "[PATCH] build kernel/irq/migration.c only if CONFIG_GENERIC_PENDING_IRQ is set\n\nSigned-off-by: 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": "aa7271076ae6547d7f370ad7e91ef86fdb318f17",
      "tree": "5a04c82e8ea4dda6cfd7905da18f68752d10faa3",
      "parents": [
        "ba6edfcd1708da2e665f14eee76e87f39448ec40"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Mon Apr 10 22:53:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:40 2006 -0700"
      },
      "message": "[PATCH] the scheduled unexport of panic_timeout\n\nImplement the scheduled unexport of panic_timeout.\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": "ba6edfcd1708da2e665f14eee76e87f39448ec40",
      "tree": "68aaebb5d97c31712567fb459dcd34343a514b78",
      "parents": [
        "5246d0503130fa58904c8beb987fcf93b96d8ab6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Apr 10 22:53:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:40 2006 -0700"
      },
      "message": "[PATCH] timer initialisation fix\n\nWe need the boot CPU\u0027s tvec_bases[] entry to be initialised super-early in\nboot, for early_serial_setup().  That runs within setup_arch(), before even\nper-cpu areas are initialised.\n\nThe patch changes tvec_bases to use compile-time initialisation, and adds a\nseparate array `tvec_base_done\u0027 to keep track of which CPU has had its\ntvec_bases[] entry initialised (because we can no longer use the zeroness of\nthat tvec_bases[] entry to determine whether it has been initialised).\n\nThanks to Eugene Surovegin \u003cebs@ebshome.net\u003e for diagnosing this.\n\nCc: Eugene Surovegin \u003cebs@ebshome.net\u003e\nCc: 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": "3016b421534e2fa8a5eede1c12a3eba6164822f4",
      "tree": "136bf93a1c24f6d4ed46ce6c54ddd4ba5d56a8ae",
      "parents": [
        "21a26d49d1ab3163b589bf913dd9176e921eb1d7"
      ],
      "author": {
        "name": "Hyok S. Choi",
        "email": "hyok.choi@samsung.com",
        "time": "Mon Apr 10 22:53:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:33 2006 -0700"
      },
      "message": "[PATCH] frv: define MMU mode specific syscalls as \u0027cond_syscall\u0027 and clean up unneeded macros\n\nFor some architectures, a few syscalls are not linked in noMMU mode.  In\nthat case, the MMU depending syscalls are needed to be defined as\n\u0027cond_syscall\u0027.  For example, ARM architecture selectively links sys_mlock\nby the mode configuration.\n\nIn case of FRV, it has been managed by #ifdef CONFIG_MMU macro in\narch/frv/kernel/entry.S.  However these conditional macros are just\nduplicates if they were defined as cond_syscall.  Compilation test is done\nwith FRV toolchains for both of MMU and noMMU mode.\n\nSigned-off-by: Hyok S. Choi \u003chyok.choi@samsung.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": "8a5bc075b8d8cf7a87b3f08fad2fba0f5d13295e",
      "tree": "977c14c704c44a905014ff9b3c0f613983793109",
      "parents": [
        "5ce74abe788a26698876e66b9c9ce7e7acc25413"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Mon Apr 10 22:52:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:30 2006 -0700"
      },
      "message": "[PATCH] sched: don\u0027t awaken RT tasks on expired array\n\nRT tasks are being awakened on the expired array when expired_starving() is\ntrue, whereas they really should be excluded.  Fix.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\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": "5ce74abe788a26698876e66b9c9ce7e7acc25413",
      "tree": "2e0c2cfc1aad32a9e2903f5e01256f1ed43982e4",
      "parents": [
        "019ff2d57b0bbe77d1eca19f5b634e5e7ff2a0b8"
      ],
      "author": {
        "name": "Mike Galbraith",
        "email": "efault@gmx.de",
        "time": "Mon Apr 10 22:52:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Apr 11 06:18:30 2006 -0700"
      },
      "message": "[PATCH] sched: fix interactive task starvation\n\nFix a starvation problem that occurs when a stream of highly interactive tasks\ndelay an array switch for extended periods despite EXPIRED_STARVING(rq) being\ntrue.  AFAIKT, the only choice is to enqueue awakening tasks on the expired\narray in this case.\n\nWithout this patch, it can be nearly impossible to remotely login to a busy\nserver, and interactive shell commands can starve for minutes.\n\nAlso, convert the EXPIRED_STARVING macro into an inline function which humans\ncan understand.\n\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nAcked-by: 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": "b92ce55893745e011edae70830b8bc863be881f9",
      "tree": "e2afd62d2e63d74157905140f5907d07bdfe31b9",
      "parents": [
        "529565dcb1581c9a1e3f6df1c1763ca3e0f0d512"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Apr 11 13:52:07 2006 +0200"
      },
      "committer": {
        "name": "Jens Axboe",
        "email": "axboe@suse.de",
        "time": "Tue Apr 11 13:52:07 2006 +0200"
      },
      "message": "[PATCH] splice: add direct fd \u003c-\u003e fd splicing support\n\nIt\u0027s more efficient for sendfile() emulation. Basically we cache an\ninternal private pipe and just use that as the intermediate area for\npages. Direct splicing is not available from sys_splice(), it is only\nmeant to be used for sendfile() emulation.\n\nAdditional patch from Ingo Molnar to avoid the PIPE_BUFFERS loop at\nexit for the normal fast path.\n\nSigned-off-by: Jens Axboe \u003caxboe@suse.de\u003e\n"
    },
    {
      "commit": "b20367a6c2a0cd937cb1f0a8cf848f1402fef99c",
      "tree": "8624096baed40f8f89e757b2d170a7b4d1844575",
      "parents": [
        "49c93e84d8b2d602a07c302c7e3cd4fa09095fbb"
      ],
      "author": {
        "name": "Jordan Hargrave",
        "email": "jordan_hargrave@dell.com",
        "time": "Fri Apr 07 19:50:18 2006 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Apr 09 11:53:53 2006 -0700"
      },
      "message": "[PATCH] x86_64: Fix drift with HPET timer enabled\n\nIf the HPET timer is enabled, the clock can drift by ~3 seconds a day.\nThis is due to the HPET timer not being initialized with the correct\nsetting (still using PIT count).\n\nIf HZ changes, this drift can become even more pronounced.\n\nHPET patch initializes tick_nsec with correct tick_nsec settings for\nHPET timer.\n\nVojtech comments:\n\n  \"It\u0027s not entirely correct (it assumes the HPET ticks totally\n   exactly), but it\u0027s significantly better than assuming the PIT error\n   there.\"\n\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f31252cb61d5bc641cdef8a069a2ca5a77855f2",
      "tree": "b341ce067a5620a4a9650429ce64262888cd43a2",
      "parents": [
        "fda8bd78a15950b9b01a1c1477a9095cb08c27c1"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Apr 02 13:45:55 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Apr 02 13:45:55 2006 +0200"
      },
      "message": "BUG_ON() Conversion in kernel/signal.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": "fda8bd78a15950b9b01a1c1477a9095cb08c27c1",
      "tree": "362ca651ed8fdf046c4755c8d96cd4957ecdf1eb",
      "parents": [
        "524223ca8142d593124bde66f3ffa1deb6f56c06"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Apr 02 13:44:47 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Apr 02 13:44:47 2006 +0200"
      },
      "message": "BUG_ON() Conversion in kernel/signal.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": "524223ca8142d593124bde66f3ffa1deb6f56c06",
      "tree": "881d27c034459b931d8ba3adc0f1d2c8777fbf76",
      "parents": [
        "9ba025f10885758975fbbc2292a5b9e7cb8026a8"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sun Apr 02 13:43:40 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sun Apr 02 13:43:40 2006 +0200"
      },
      "message": "BUG_ON() Conversion in kernel/ptrace.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": "8ba8e95ed14a2771bbcb43300feda094f298853e",
      "tree": "8f487c4f31175eea531fbf7305c91819eca17bec",
      "parents": [
        "36a891b67f95fd5e1442fc0f7f953809b94b3fbc"
      ],
      "author": {
        "name": "Kalin KOZHUHAROV",
        "email": "kalin@thinrope.net",
        "time": "Sat Apr 01 01:41:22 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Apr 01 01:41:22 2006 +0200"
      },
      "message": "Fix comments: s/granuality/granularity/\n\nI was grepping through the code and some `grep ganularity -R .` didn\u0027t\ncatch what I thought. Then looking closer I saw the term \"granuality\"\nused in only four places (in comments) and granularity in many more\nplaces describing the same idea. Some other facts:\n\ndictionary.com does not know such a word\ndefine:granuality on google is not found (and pages for granuality are\nmostly related to patches to the kernel)\nit has not been discussed as a term on LKML, AFAICS (\u003dCan Search)\n\nTo be consistent, I think granularity should be used everywhere.\n\nSigned-off-by: Kalin KOZHUHAROV \u003ckalin@thinrope.net\u003e\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "8abd8e298eb15e2c1b993df0634daf29e43e0aab",
      "tree": "a83df11829c6ffdee4a787b57f899f87813a6fb1",
      "parents": [
        "9bc98fc6fd3d07f37b597601489df200e0024222"
      ],
      "author": {
        "name": "Eric Sesterhenn",
        "email": "snakebyte@gmx.de",
        "time": "Sat Apr 01 01:21:17 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Apr 01 01:21:17 2006 +0200"
      },
      "message": "BUG_ON() Conversion in kernel/printk.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": "3e6e952d1d17e5cd2e25a438662d906c44ffcfaa",
      "tree": "fc34bb93db925660dae368b582c68c0234424387",
      "parents": [
        "3a3f8a126d97cb5bdde92a26136402e88220b30f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Apr 01 01:03:08 2006 +0200"
      },
      "committer": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Sat Apr 01 01:03:08 2006 +0200"
      },
      "message": "help text: SOFTWARE_SUSPEND doesn\u0027t need ACPI\n\nThe note that SOFTWARE_SUSPEND doesn\u0027t need APM is helpful, but nowadays\nthe information that it doesn\u0027t need ACPI, too, is even more helpful.\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\n"
    },
    {
      "commit": "428622986858aebddc32d022af65e88b9d2ea8bb",
      "tree": "888b968f53e55d81386836ae3f43f46cea4ad6ce",
      "parents": [
        "e358c1a2c45f7ec32d77cc09a2bb42d6823a4193"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@openvz.org",
        "time": "Fri Mar 31 17:58:46 2006 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:25:46 2006 -0800"
      },
      "message": "[PATCH] wrong error path in dup_fd() leading to oopses in RCU\n\nWrong error path in dup_fd() - it should return NULL on error,\nnot an address of already freed memory :/\n\nTriggered by OpenVZ stress test suite.\n\nWhat is interesting is that it was causing different oopses in RCU like\nbelow:\nCall Trace:\n   [\u003cc013492c\u003e] rcu_do_batch+0x2c/0x80\n   [\u003cc0134bdd\u003e] rcu_process_callbacks+0x3d/0x70\n   [\u003cc0126cf3\u003e] tasklet_action+0x73/0xe0\n   [\u003cc01269aa\u003e] __do_softirq+0x10a/0x130\n   [\u003cc01058ff\u003e] do_softirq+0x4f/0x60\n   \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n   [\u003cc0113817\u003e] smp_apic_timer_interrupt+0x77/0x110\n   [\u003cc0103b54\u003e] apic_timer_interrupt+0x1c/0x24\n  Code:  Bad EIP value.\n   \u003c0\u003eKernel panic - not syncing: Fatal exception in interrupt\n\nSigned-Off-By: Pavel Emelianov \u003cxemul@sw.ru\u003e\nSigned-Off-By: Dmitry Mishin \u003cdim@openvz.org\u003e\nSigned-Off-By: Kirill Korotaev \u003cdev@openvz.org\u003e\nSigned-Off-By: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "92476d7fc0326a409ab1d3864a04093a6be9aca7",
      "tree": "ea50a5a31522492d9915e0763a7adc6ac87c4fbc",
      "parents": [
        "8c7904a00b06d2ee51149794b619e07369fcf9d4"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Mar 31 02:31:42 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:19:00 2006 -0800"
      },
      "message": "[PATCH] pidhash: Refactor the pid hash table\n\nSimplifies the code, reduces the need for 4 pid hash tables, and makes the\ncode more capable.\n\nIn the discussions I had with Oleg it was felt that to a large extent the\ncleanup itself justified the work.  With struct pid being dynamically\nallocated meant we could create the hash table entry when the pid was\nallocated and free the hash table entry when the pid was freed.  Instead of\nplaying with the hash lists when ever a process would attach or detach to a\nprocess.\n\nFor myself the fact that it gave what my previous task_ref patch gave for free\nwith simpler code was a big win.  The problem is that if you hold a reference\nto struct task_struct you lock in 10K of low memory.  If you do that in a user\ncontrollable way like /proc does, with an unprivileged but hostile user space\napplication with typical resource limits of 1000 fds and 100 processes I can\ntrigger the OOM killer by consuming all of low memory with task structs, on a\nmachine wight 1GB of low memory.\n\nIf I instead hold a reference to struct pid which holds a pointer to my\ntask_struct, I don\u0027t suffer from that problem because struct pid is 2 orders\nof magnitude smaller.  In fact struct pid is small enough that most other\nkernel data structures dwarf it, so simply limiting the number of referring\ndata structures is enough to prevent exhaustion of low memory.\n\nThis splits the current struct pid into two structures, struct pid and struct\npid_link, and reduces our number of hash tables from PIDTYPE_MAX to just one.\nstruct pid_link is the per process linkage into the hash tables and lives in\nstruct task_struct.  struct pid is given an indepedent lifetime, and holds\npointers to each of the pid types.\n\nThe independent life of struct pid simplifies attach_pid, and detach_pid,\nbecause we are always manipulating the list of pids and not the hash table.\nIn addition in giving struct pid an indpendent life it makes the concept much\nmore powerful.\n\nKernel data structures can now embed a struct pid * instead of a pid_t and\nnot suffer from pid wrap around problems or from keeping unnecessarily\nlarge amounts of memory allocated.\n\nSigned-off-by: 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": "8c7904a00b06d2ee51149794b619e07369fcf9d4",
      "tree": "c995150254e17dfda6e1679c3249343586e178cb",
      "parents": [
        "e4e5d3fc80d26ed26ebe42907b224f08d7eccfbf"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Mar 31 02:31:37 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] task: RCU protect task-\u003eusage\n\nA big problem with rcu protected data structures that are also reference\ncounted is that you must jump through several hoops to increase the reference\ncount.  I think someone finally implemented atomic_inc_not_zero(\u0026count) to\nautomate the common case.  Unfortunately this means you must special case the\nrcu access case.\n\nWhen data structures are only visible via rcu in a manner that is not\ndetermined by the reference count on the object (i.e.  tasks are visible until\ntheir zombies are reaped) there is a much simpler technique we can employ.\nSimply delaying the decrement of the reference count until the rcu interval is\nover.\n\nWhat that means is that the proc code that looks up a task and later\nwants to sleep can now do:\n\nrcu_read_lock();\ntask \u003d find_task_by_pid(some_pid);\nif (task) {\n\tget_task_struct(task);\n}\nrcu_read_unlock();\n\nThe effect on the rest of the kernel is that put_task_struct becomes cheaper\nand immediate, and in the case where the task has been reaped it frees the\ntask immediate instead of unnecessarily waiting an until the rcu interval is\nover.\n\nCleanup of task_struct does not happen when its reference count drops to\nzero, instead cleanup happens when release_task is called.  Tasks can only\nbe looked up via rcu before release_task is called.  All rcu protected\nmembers of task_struct are freed by release_task.\n\nTherefore we can move call_rcu from put_task_struct into release_task.  And\nwe can modify release_task to not immediately release the reference count\nbut instead have it call put_task_struct from the function it gives to\ncall_rcu.\n\nThe end result:\n\n- get_task_struct is safe in an rcu context where we have just looked\n  up the task.\n\n- put_task_struct() simplifies into its old pre rcu self.\n\nThis reorganization also makes put_task_struct uncallable from modules as\nit is not exported but it does not appear to be called from any modules so\nthis should not be an issue, and is trivially fixed.\n\nSigned-off-by: 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": "158d9ebd19280582da172626ad3edda1a626dace",
      "tree": "5b821a6faf28d136b65ae30a56e7f731adc11c28",
      "parents": [
        "390e2ff07712468ce6600a43aa91e897b056ce12"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 31 02:31:34 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] resurrect __put_task_struct\n\nThis just got nuked in mainline.  Bring it back because Eric\u0027s patches use it.\n\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": "390e2ff07712468ce6600a43aa91e897b056ce12",
      "tree": "fb92d3c2218fa3e41078d1b5e103892ac7e95117",
      "parents": [
        "9741ef964dc8bfeb6520825df9fed8f538c3336e"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Mar 31 02:31:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] Make setsid() more robust\n\nThe core problem: setsid fails if it is called by init.  The effect in 2.6.16\nand the earlier kernels that have this problem is that if you do a \"ps -j 1 or\nps -ej 1\" you will see that init and several of it\u0027s children have process\ngroup and session \u003d\u003d 0.  Instead of process group \u003d\u003d session \u003d\u003d 1.  Despite\ninit calling setsid.\n\nThe reason it fails is that daemonize calls set_special_pids(1,1) on kernel\nthreads that are launched before /sbin/init is called.\n\nThe only remaining effect in that current-\u003esignal-\u003eleader \u003d\u003d 0 for init\ninstead of 1.  And the setsid call fails.  No one has noticed because\n/sbin/init does not check the return value of setsid.\n\nIn 2.4 where we don\u0027t have the pidhash table, and daemonize doesn\u0027t exist\nsetsid actually works for init.\n\nI care a lot about pid \u003d\u003d 1 not being a special case that we leave broken,\nbecause of the container/jail work that I am doing.\n\n- Carefully allow init (pid \u003d\u003d 1) to call setsid despite the kernel using\n  its session.\n\n- Use find_task_by_pid instead of find_pid because find_pid taking a\n  pidtype is going away.\n\nSigned-off-by: 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": "9741ef964dc8bfeb6520825df9fed8f538c3336e",
      "tree": "6cc09d6b10a9ea9119a3a73e226300d747008bfe",
      "parents": [
        "d425b274ba83ba4e7746a40446ec0ba3267de51f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 31 02:31:32 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] futex: check and validate timevals\n\nThe futex timeval is not checked for correctness.  The change does not\nbreak existing applications as the timeval is supplied by glibc (and glibc\nalways passes a correct value), but the glibc-internal tests for this\nfunctionality fail.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@tglx.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": "d425b274ba83ba4e7746a40446ec0ba3267de51f",
      "tree": "73d3342be7ba8ef8d18a8c3cc9fea6e026e2bffa",
      "parents": [
        "7c4bb1f9b3788309e1159961c606ba0bdf7ed382"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] sched: activate SCHED BATCH expired\n\nTo increase the strength of SCHED_BATCH as a scheduling hint we can\nactivate batch tasks on the expired array since by definition they are\nlatency insensitive tasks.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\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": "7c4bb1f9b3788309e1159961c606ba0bdf7ed382",
      "tree": "47051dcde0cc24ec123e9ae3043465cc677a8c06",
      "parents": [
        "5138930e6a69f1c7851a82d7cedaa01fad029fcf"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:29 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] sched: remove on runqueue requeueing\n\nOn runqueue time is used to elevate priority in schedule().\n\nIn the code it currently requeues tasks even if their priority is not\nelevated, which would end up placing them at the end of their runqueue\narray effectively delaying them instead of improving their priority.\n\nBug spotted by Mike Galbraith \u003cefault@gmx.de\u003e\n\nThis patch removes this requeueing.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Mike Galbraith \u003cefault@gmx.de\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": "5138930e6a69f1c7851a82d7cedaa01fad029fcf",
      "tree": "cef55be8eb6d798188127f2ca7f53ed25ef88422",
      "parents": [
        "e72ff0bb2c163eb13014ba113701bd42dab382fe"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:27 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:59 2006 -0800"
      },
      "message": "[PATCH] sched: include noninteractive sleep in idle detect\n\nTasks waiting in SLEEP_NONINTERACTIVE state can now get to best priority so\nthey need to be included in the idle detection code.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\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": "e72ff0bb2c163eb13014ba113701bd42dab382fe",
      "tree": "6e4b8063442b3e020af474c2d4be124f01b0cb88",
      "parents": [
        "e7c38cb49c6cc05bc11f70d9e9889da1c4a0d37f"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:26 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] sched: dont decrease idle sleep avg\n\nWe watch for tasks that sleep extended periods and don\u0027t allow one single\nprolonged sleep period from elevating priority to maximum bonus to prevent cpu\nbound tasks from getting high priority with single long sleeps.  There is a\nbug in the current code that also penalises tasks that already have high\npriority.  Correct that bug.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\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": "e7c38cb49c6cc05bc11f70d9e9889da1c4a0d37f",
      "tree": "538e26f5ba32d052083dea53536c5366978838c8",
      "parents": [
        "3dee386e14045484a6c41c8f03a263f9d79de740"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:25 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] sched: make task_noninteractive use sleep_type\n\nAlterations to the pipe code in the kernel made it possible for relative\nstarvation to occur with tasks that slept waiting on a pipe getting unfair\npriority bonuses even if they were otherwise fully cpu bound so the\nTASK_NONINTERACTIVE flag was introduced which prevented any change to\nsleep_avg while sleeping waiting on a pipe.  This change also leads to the\nconverse though, preventing any priority boost from occurring in truly\ninteractive tasks that wait on pipes.\n\nConvert the TASK_NONINTERACTIVE flag to set sleep_type to SLEEP_NONINTERACTIVE\nwhich will allow a linear bonus to priority based on sleep time thus allowing\ninteractive tasks to get high priority if they sleep enough.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\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": "3dee386e14045484a6c41c8f03a263f9d79de740",
      "tree": "4b1643508ad94981e8d4deb5136d0a626e60932d",
      "parents": [
        "db1b1fefc2cecbff2e4214062fa8c680cb6e7b7d"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Fri Mar 31 02:31:23 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] sched: cleanup task_activated()\n\nThe activated flag in task_struct is used to track different sleep types and\nits usage is somewhat obfuscated.  Convert the variable to an enum with more\ndescriptive names without altering the function.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\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": "db1b1fefc2cecbff2e4214062fa8c680cb6e7b7d",
      "tree": "ad8e68882f7c36216e16ab264101c5da96ccd5c9",
      "parents": [
        "3055addadbe9bfb2365006a1c13fd342a8d30d52"
      ],
      "author": {
        "name": "Jack Steiner",
        "email": "steiner@sgi.com",
        "time": "Fri Mar 31 02:31:21 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] sched: reduce overhead of calc_load\n\nCurrently, count_active_tasks() calls both nr_running() \u0026\nnr_interruptible().  Each of these functions does a \"for_each_cpu\" \u0026 reads\nvalues from the runqueue of each cpu.  Although this is not a lot of\ninstructions, each runqueue may be located on different node.  Depending on\nthe architecture, a unique TLB entry may be required to access each\nrunqueue.\n\nSince there may be more runqueues than cpu TLB entries, a scan of all\nrunqueues can trash the TLB.  Each memory reference incurs a TLB miss \u0026\nrefill.\n\nIn addition, the runqueue cacheline that contains nr_running \u0026\nnr_uninterruptible may be evicted from the cache between the two passes.\nThis causes unnecessary cache misses.\n\nCombining nr_running() \u0026 nr_interruptible() into a single function\nsubstantially reduces the TLB \u0026 cache misses on large systems.  This should\nhave no measureable effect on smaller systems.\n\nOn a 128p IA64 system running a memory stress workload, the new function\nreduced the overhead of calc_load() from 605 usec/call to 324 usec/call.\n\nSigned-off-by: Jack Steiner \u003csteiner@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": "3055addadbe9bfb2365006a1c13fd342a8d30d52",
      "tree": "0efcbd4a4e1d129beeb2dee3649951bea0462052",
      "parents": [
        "669d7868ae414cdb7b7e5df375dc8e4b47f26f6d"
      ],
      "author": {
        "name": "Dimitri Sivanich",
        "email": "sivanich@sgi.com",
        "time": "Fri Mar 31 02:31:20 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] hrtimer: call get_softirq_time() only when necessary in run_hrtimer_queue()\n\nIt seems that run_hrtimer_queue() is calling get_softirq_time() more\noften than it needs to.\n\nWith this patch, it only calls get_softirq_time() if there\u0027s a\npending timer.\n\nSigned-off-by: Dimitri Sivanich \u003csivanich@sgi.com\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": "669d7868ae414cdb7b7e5df375dc8e4b47f26f6d",
      "tree": "0c78ee0833e10d10a5d2f9fa9b9fe7f71fda6eb7",
      "parents": [
        "00362e33f65f1cb5d15e62ea5509520ce2770360"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 31 02:31:19 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] hrtimer: use generic sleeper for nanosleep\n\nReplace the nanosleep private sleeper functionality by the generic hrtimer\nsleeper.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.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": "00362e33f65f1cb5d15e62ea5509520ce2770360",
      "tree": "02694b1416f3d98c4eebaeca7864c7fd3bad6fa0",
      "parents": [
        "2bfb646cdf348cb77c572f06d5b9d17ea205c7e2"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Mar 31 02:31:17 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:58 2006 -0800"
      },
      "message": "[PATCH] hrtimer: create generic sleeper\n\nThe removal of the data field in the hrtimer structure enforces the\nembedding of the timer into another data structure.  nanosleep now uses a\nprivate implementation of the most common used timer callback function\n(simple task wakeup).\n\nIn order to avoid the reimplentation of such functionality all over the\nplace a generic hrtimer_sleeper functionality is created.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.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": "7529c301165079d0f149d0e54724829e602f8fc0",
      "tree": "56e0ae4caed9675f230e63274cd3c9258eaaca44",
      "parents": [
        "0ca07731e495584bd84dca15a0f065470d594ec4"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Fri Mar 31 02:30:59 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:56 2006 -0800"
      },
      "message": "[PATCH] modules: permit Dual-MIT/GPL licenses\n\nOne of the LEDs driver files wants to use this.\n\nProbably drivers/mtd/maps/ipaq-flash.c wants to convert as well - right now\nit\u0027ll be tainting the kernel.\n\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Bowler \u003cjbowler@acm.org\u003e\nCc: \"\u0027Richard Purdie\u0027\" \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e4e364e865b382f9d99c7fc230ec2ce7df21257a",
      "tree": "9ff5ab54a0e40d7ad2b55d3ec48c6e175ebf50c7",
      "parents": [
        "2741a559a01e1ba9bf87285569dc1a104d134ecf"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 31 02:30:52 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:55 2006 -0800"
      },
      "message": "[PATCH] cpuset: memory migration interaction fix\n\nFix memory migration so that it works regardless of what cpuset the invoking\ntask is in.\n\nIf a task invoked a memory migration, by doing one of:\n\n       1) writing a different nodemask to a cpuset \u0027mems\u0027 file, or\n\n       2) writing a tasks pid to a different cpuset\u0027s \u0027tasks\u0027 file,\n          where the cpuset had its \u0027memory_migrate\u0027 option turned on, then the\n          allocation of the new pages for the migrated task(s) was constrained\n          by the invoking tasks cpuset.\n\nIf this task wasn\u0027t in a cpuset that allowed the requested memory nodes, the\nmemory migration would happen to some other nodes that were in that invoking\ntasks cpuset.  This was usually surprising and puzzling behaviour: Why didn\u0027t\nthe pages move?  Why did the pages move -there-?\n\nTo fix this, temporarilly change the invoking tasks \u0027mems_allowed\u0027 task_struct\nfield to the nodes the migrating tasks is moving to, so that new pages can be\nallocated there.\n\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nAcked-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2741a559a01e1ba9bf87285569dc1a104d134ecf",
      "tree": "8c61321d5fa1a0c3517219eaa3089e223d5cd943",
      "parents": [
        "4a01c8d5be628ac20cfd432c21808d76be5813e6"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 31 02:30:51 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:55 2006 -0800"
      },
      "message": "[PATCH] cpuset: unsafe mm reference fix\n\nFix unsafe reference to a tasks mm struct, by moving the reference inside of a\nconvenient nearby properly guarded code block.\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": "4a01c8d5be628ac20cfd432c21808d76be5813e6",
      "tree": "040ae0d60df3993a752ce852d3e3dc036586b037",
      "parents": [
        "2cf8d82d63807c2c68adf20bb28bf502496186dd"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Fri Mar 31 02:30:50 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:55 2006 -0800"
      },
      "message": "[PATCH] cpuset: task_lock comment fix\n\nFix cpuset comment involving case of a tasks cpuset pointer being NULL.\nThanks to \"the_top_cpuset_hack\", this code no longer sees NULL task-\u003ecpuset\npointers.\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": "bb231fe3a53b2d34c1aef119613816fcb18864b1",
      "tree": "55e686f0118aebedec1a6ddf52746a8a722b51cc",
      "parents": [
        "f79e2abb9bd452d97295f34376dedbec9686b986"
      ],
      "author": {
        "name": "KaiGai Kohei",
        "email": "kaigai@ak.jp.nec.com",
        "time": "Fri Mar 31 02:30:45 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:54 2006 -0800"
      },
      "message": "[PATCH] Fix pacct bug in multithreading case.\n\nI noticed a bug on the process accounting facility.  In multi-threading\nprocess, some data would be recorded incorrectly when the group_leader dies\nearlier than one or more threads.  The attached patch fixes this problem.\n\nSee below.  \u0027bugacct\u0027 is a test program that create a worker thread after 4\nseconds sleeping, then the group_leader dies soon.  The worker thread\nconsume CPU/Memory for 6 seconds, then exit.  We can estimate 10 seconds as\netime and 6 seconds as stime + utime.  This is a sample program which the\ngroup_leader dies earlier than other threads.\n\nThe results of same binary execution on different kernel are below.\n-- accounted records --------------------\n         |   btime  | utime | stime | etime | minflt | majflt |   comm  |\noriginal | 13:16:40 |  0.00 |  0.00 |  6.10 |    171 |      0 | bugacct |\n patched | 13:20:21 |  5.83 |  0.18 | 10.03 |  32776 |      0 | bugacct |\n(*) bugacct allocates 128MB memory, thus 128MB / 4KB \u003d 32768 of minflt is\n    appropriate.\n\n-- Test results in original kernel ------\n$ date; time -p ./bugacct\nTue Mar 28 13:16:36 JST 2006  \u003c- But pacct said btime is 13:16:40\nreal 10.11                    \u003c- But pacct said etime is 6.10\nuser 5.96                     \u003c- But pacct said utime is 0.00\nsys 0.14                      \u003c- But pacct said stime is 0.00\n$\n-- Test results in patched kernel -------\n$ date; time -p ./bugacct\nTue Mar 28 13:20:21 JST 2006\nreal 10.04\nuser 5.83\nsys 0.19\n$\n\nIn the original 2.6.16 kernel, pacct records btime, utime, stime, etime and\nminflt incorrectly.  In my opinion, this problem is caused by an assumption\nthat group_leader dies last.\n\nThe following section calculates process running time for etime and btime.\nBut it means running time of the thread that dies last, not process.  The\nstart_time of the first thread in the process (group_leader) should be\nreduced from uptime to calculate etime and btime correctly.\n\n   ---- do_acct_process() in kernel/acct.c:\n   /* calculate run_time in nsec*/\n   do_posix_clock_monotonic_gettime(\u0026uptime);\n   run_time \u003d (u64)uptime.tv_sec*NSEC_PER_SEC + uptime.tv_nsec;\n   run_time -\u003d (u64)current-\u003estart_time.tv_sec*NSEC_PER_SEC\n                                   + current-\u003estart_time.tv_nsec;\n   ----\n\nThe following section calculates stime and utime of the process.\nBut it might count the utime and stime of the group_leader duplicatly\nand ignore the utime and stime of the thread dies last, when one or\nmore threads remain after group_leader dead.\nThe ac_utime should be calculated as the sum of the signal-\u003eutime\nand utime of the thread dies last. The ac_stime should be done also.\n\n   ---- do_acct_process() in kernel/acct.c:\n   jiffies \u003d cputime_to_jiffies(cputime_add(current-\u003egroup_leader-\u003eutime,\n                                            current-\u003esignal-\u003eutime));\n   ac.ac_utime \u003d encode_comp_t(jiffies_to_AHZ(jiffies));\n   jiffies \u003d cputime_to_jiffies(cputime_add(current-\u003egroup_leader-\u003estime,\n                                            current-\u003esignal-\u003estime));\n   ac.ac_stime \u003d encode_comp_t(jiffies_to_AHZ(jiffies));\n   ----\n\nThe part of the minflt/majflt calculation has same problem.\nThis patch solves those problems, I think.\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": "9b41046cd0ee0a57f849d6e1363f7933e363cca9",
      "tree": "246820e9493770e071cb92a48e7f72d8b9c90a98",
      "parents": [
        "68eef3b4791572ecb70249c7fb145bb3742dd899"
      ],
      "author": {
        "name": "OGAWA Hirofumi",
        "email": "hirofumi@mail.parknet.co.jp",
        "time": "Fri Mar 31 02:30:33 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:53 2006 -0800"
      },
      "message": "[PATCH] Don\u0027t pass boot parameters to argv_init[]\n\nThe boot cmdline is parsed in parse_early_param() and\nparse_args(,unknown_bootoption).\n\nAnd __setup() is used in obsolete_checksetup().\n\n\tstart_kernel()\n\t\t-\u003e parse_args()\n\t\t\t-\u003e unknown_bootoption()\n\t\t\t\t-\u003e obsolete_checksetup()\n\nIf __setup()\u0027s callback (-\u003esetup_func()) returns 1 in\nobsolete_checksetup(), obsolete_checksetup() thinks a parameter was\nhandled.\n\nIf -\u003esetup_func() returns 0, obsolete_checksetup() tries other\n-\u003esetup_func().  If all -\u003esetup_func() that matched a parameter returns 0,\na parameter is seted to argv_init[].\n\nThen, when runing /sbin/init or init\u003dapp, argv_init[] is passed to the app.\nIf the app doesn\u0027t ignore those arguments, it will warning and exit.\n\nThis patch fixes a wrong usage of it, however fixes obvious one only.\n\nSigned-off-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a2c348fe0117adced11e374329a5ea3f7c43cb41",
      "tree": "95233412196f8093e2e82437afeeadd2e479040c",
      "parents": [
        "3691c5199e8a4be1c7a91b5ab925db5feb866e19"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Mar 31 02:30:31 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:53 2006 -0800"
      },
      "message": "[PATCH] __mod_timer: simplify -\u003ebase changing\n\nSince base and new_base are of the same type now, we can save one \u0027if\u0027\nbranch and simplify the code a bit.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\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": "3691c5199e8a4be1c7a91b5ab925db5feb866e19",
      "tree": "025210545818b080df13faa31c9266432579794c",
      "parents": [
        "5ce29646ebe352587e3b3160d599010c5da1b9dd"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Mar 31 02:30:30 2006 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Mar 31 12:18:52 2006 -0800"
      },
      "message": "[PATCH] kill __init_timer_base in favor of boot_tvec_bases\n\nCommit a4a6198b80cf82eb8160603c98da218d1bd5e104:\n\t[PATCH] tvec_bases too large for per-cpu data\n\nintroduced \"struct tvec_t_base_s boot_tvec_bases\" which is visible at\ncompile time.  This means we can kill __init_timer_base and move\ntimer_base_s\u0027s content into tvec_t_base_s.\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": "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"
    }
  ],
  "next": "d799f03597cabc6112acb518fc8ab4487aa4f953"
}
