)]}'
{
  "log": [
    {
      "commit": "481bed454247538e9f57d4ea37b153ccba24ba7b",
      "tree": "bb4198296962c08dbf52e8f377dc27206f621640",
      "parents": [
        "db73e9aa99bf093427b79877f9475392724fd5e5"
      ],
      "author": {
        "name": "Christoph Hellwig",
        "email": "hch@lst.de",
        "time": "Mon Nov 07 00:59:47 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:42 2005 -0800"
      },
      "message": "[PATCH] consolidate sys_ptrace()\n\nThe sys_ptrace boilerplate code (everything outside the big switch\nstatement for the arch-specific requests) is shared by most architectures.\nThis patch moves it to kernel/ptrace.c and leaves the arch-specific code as\narch_ptrace.\n\nSome architectures have a too different ptrace so we have to exclude them.\nThey continue to keep their implementations.  For sh64 I had to add a\nsh64_ptrace wrapper because it does some initialization on the first call.\nFor um I removed an ifdefed SUBARCH_PTRACE_SPECIAL block, but\nSUBARCH_PTRACE_SPECIAL isn\u0027t defined anywhere in the tree.\n\nSigned-off-by: Christoph Hellwig \u003chch@lst.de\u003e\nAcked-by: Paul Mackerras \u003cpaulus@samba.org\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-By: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nAcked-by: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8c65b4a60450590e79a28e9717ceffa9e4debb3f",
      "tree": "e0e42b5faee0a1c44746a36d9df7a8fbb2a2c24c",
      "parents": [
        "6fdcc2162285a8fc96ab12ff85086c37bceaa494"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Mon Nov 07 00:59:43 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:41 2005 -0800"
      },
      "message": "[PATCH] fix remaining missing includes\n\nFix more include file problems that surfaced since I submitted the previous\nfix-missing-includes.patch.  This should now allow not to include sched.h\nfrom module.h, which is done by a followup patch.\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "796f8d9b98fc92a5e9aaea8cf932957850332f51",
      "tree": "66e0a2bdf18e03c7dadba7c4c7b896533aa2e762",
      "parents": [
        "d55b5fdaf40846221d543937b786956e27837fda"
      ],
      "author": {
        "name": "David Gibson",
        "email": "david@gibson.dropbear.id.au",
        "time": "Mon Nov 07 00:59:33 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:38 2005 -0800"
      },
      "message": "[PATCH] FUTEX_WAKE_OP: enhanced error handling\n\nThe code for FUTEX_WAKE_OP calls an arch callback,\nfutex_atomic_op_inuser().  That callback can return an error code, but\ncurrently the caller assumes any error is EFAULT, and will try various\nthings to resolve the fault before eventually giving up with EFAULT\n(regardless of the original error code).  This is not a theoretical case -\narch callbacks currently return -ENOSYS if the opcode they are given is\nbogus.\n\nThis patch alters the code to detect non-EFAULT errors and return them\ndirectly to the user.\n\nOf course, whether -ENOSYS is the correct return value for the bogus opcode\ncase, or whether EINVAL would be more appropriate is another question.\n\nSigned-off-by: David Gibson \u003cdwg@au1.ibm.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d55b5fdaf40846221d543937b786956e27837fda",
      "tree": "ecdf572d7d2b08b4f7b31d804542a920934b6d9a",
      "parents": [
        "0f6ed7c2641fe4cea83cd09c21928ca30c0983ec"
      ],
      "author": {
        "name": "Zach Brown",
        "email": "zach.brown@oracle.com",
        "time": "Mon Nov 07 00:59:31 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:38 2005 -0800"
      },
      "message": "[PATCH] aio: remove aio_max_nr accounting race\n\nAIO was adding a new context\u0027s max requests to the global total before\ntesting if that resulting total was over the global limit.  This let\ninnocent tasks get their new limit tested along with a racing guilty task\nthat was crossing the limit.  This serializes the _nr accounting with a\nspinlock It also switches to using unsigned long for the global totals.\nIndividual contexts are still limited to an unsigned int\u0027s worth of\nrequests by the syscall interface.\n\nThe problem and fix were verified with a simple program that spun creating\nand destroying a context while holding on to another long lived context.\nBefore the patch a task creating a tiny context could get a spurious EAGAIN\nif it raced with a task creating a very large context that overran the\nlimit.\n\nSigned-off-by: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9f46080c41d5f3f7c00b4e169ba4b0b2865258bf",
      "tree": "e2c029ef7f0cd5fb8ea9b78db3f7be5badaf59b1",
      "parents": [
        "49364ce2534418462d681ad99e52e79a00b0f40b"
      ],
      "author": {
        "name": "Matt Helsley",
        "email": "matthltc@us.ibm.com",
        "time": "Mon Nov 07 00:59:16 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:35 2005 -0800"
      },
      "message": "[PATCH] Process Events Connector\n\nThis patch adds a connector that reports fork, exec, id change, and exit\nevents for all processes to userspace.  It replaces the fork_advisor patch\nthat ELSA is currently using.  Applications that may find these events\nuseful include accounting/auditing (e.g.  ELSA), system activity monitoring\n(e.g.  top), security, and resource management (e.g.  CKRM).\n\nSigned-off-by: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47b90ffe5c10ab9b5cfd14087b28b13109673ee5",
      "tree": "423c789290ef8eada4916f540c3e8f0be06316d1",
      "parents": [
        "dc19d507b17135069d9c5d6093d4458dc60e1861"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Mon Nov 07 00:58:41 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:29 2005 -0800"
      },
      "message": "[PATCH] swsusp: remove unused variable\n\nRemove unused variable, and make code less evil that way.  Fix whitespace\naround for-loop-like macro.\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": "dc19d507b17135069d9c5d6093d4458dc60e1861",
      "tree": "a5913fbd1185b3af5463a90aca59fe902aba2f73",
      "parents": [
        "36fabc248e5466e3f28897819b0400b5cdbb8dc6"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Mon Nov 07 00:58:40 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:29 2005 -0800"
      },
      "message": "[PATCH] swsusp cleanups\n\nThis cleans spaces between * and pointer up, and adds \"int\" in \"unsigned\nint\".\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": "a4c4af7c8dc1eccdfb8c57e1684f08179b4407e6",
      "tree": "210773f292da3ba85818402f1945ee7b14ba8c71",
      "parents": [
        "cc658cfe3c66a6124b5a8db90cdcdd440201b1dc"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Nov 07 00:58:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:29 2005 -0800"
      },
      "message": "[PATCH] cpu hoptlug: avoid usage of smp_processor_id() in preemptible code\n\nReplace smp_processor_id() with any_online_cpu(cpu_online_map) in order to\navoid lots of \"BUG: using smp_processor_id() in preemptible [00000001]\ncode:...\" messages in case taking a cpu online fails.\n\nAll the traces start at the last notifier_call_chain(...) in kernel/cpu.c.\nSince we hold the cpu_control semaphore it shouldn\u0027t be any problem to access\ncpu_online_map.\n\nThe reason why cpu_up failed is simply that the cpu that was supposed to be\ntaken online wasn\u0027t even there.  That is because on s390 we never know when a\nnew cpu comes and therefore cpu_possible_map consists of only ones and doesn\u0027t\nreflect reality.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7fd93cf30c531fd8b014e827e7a85fcfc010b2c6",
      "tree": "38326a3b27a04845f86054c85ebeda0d1170d87a",
      "parents": [
        "863c84b97cb660dbb949398e196c0b1bbe4ed39f"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Mon Nov 07 00:57:59 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Nov 07 07:53:24 2005 -0800"
      },
      "message": "[PATCH] posix-timers `unlikely\u0027 rejig\n\n!unlikely(expr) hurts my brain.   likely(!expr) is more straightforward.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "889dfafe836ac9bb711f73d07a4c044cae177c0b",
      "tree": "ca46672a0d807f82e5d1b13e1b9dff0b561d5f36",
      "parents": [
        "c8ebce6eeb1f6f83fd8c0de209f1f7b627220a81"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Nov 04 18:54:30 2005 +0300"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Nov 04 10:45:28 2005 -0800"
      },
      "message": "[PATCH] improve scheduler fairness a bit\n\nDo not transfer remaining time slice to another cpu on process exit.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "23fd07750a789a66fe88cf173d52a18f1a387da4",
      "tree": "06fdd6df35fdb835abdaa9b754d62f6b84b97250",
      "parents": [
        "bd787d438a59266af3c9f6351644c85ef1dd21fe",
        "ed28f96ac1960f30f818374d65be71d2fdf811b0"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Oct 31 13:37:12 2005 +1100"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Mon Oct 31 13:37:12 2005 +1100"
      },
      "message": "Merge ../linux-2.6 by hand\n"
    },
    {
      "commit": "4e57b6817880946a3a78d5d8cad1ace363f7e449",
      "tree": "b6b5f3f9e8e52cc55d98239a4992e72e983c8fa4",
      "parents": [
        "b0423a0d9cc836b2c3d796623cd19236bfedfe63"
      ],
      "author": {
        "name": "Tim Schmielau",
        "email": "tim@physik3.uni-rostock.de",
        "time": "Sun Oct 30 15:03:48 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:32 2005 -0800"
      },
      "message": "[PATCH] fix missing includes\n\nI recently picked up my older work to remove unnecessary #includes of\nsched.h, starting from a patch by Dave Jones to not include sched.h\nfrom module.h. This reduces the number of indirect includes of sched.h\nby ~300. Another ~400 pointless direct includes can be removed after\nthis disentangling (patch to follow later).\nHowever, quite a few indirect includes need to be fixed up for this.\n\nIn order to feed the patches through -mm with as little disturbance as\npossible, I\u0027ve split out the fixes I accumulated up to now (complete for\ni386 and x86_64, more archs to follow later) and post them before the real\npatch.  This way this large part of the patch is kept simple with only\nadding #includes, and all hunks are independent of each other.  So if any\nhunk rejects or gets in the way of other patches, just drop it.  My scripts\nwill pick it up again in the next round.\n\nSigned-off-by: Tim Schmielau \u003ctim@physik3.uni-rostock.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b0423a0d9cc836b2c3d796623cd19236bfedfe63",
      "tree": "21c6ebdc052b4e085aacb295b55c168bc60bcae2",
      "parents": [
        "ae6866c377943de73e2c95398ff0120516f167ce"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Sun Oct 30 15:03:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:32 2005 -0800"
      },
      "message": "[PATCH] Remove duplicate code in signal.c\n\nCombine a bit of redundant code between force_sig_info() and\nforce_sig_specific().\n\nSigned-off-by: paulmck@us.ibm.com\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ae6866c377943de73e2c95398ff0120516f167ce",
      "tree": "cd1e6a08f830de244696c5ff60f8309571cf090d",
      "parents": [
        "621d31219d9a788bda924a0613048053f3f5f211"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:03:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:32 2005 -0800"
      },
      "message": "[PATCH] remove unneeded SI_TIMER checks\n\nThis patch removes checks for -\u003esi_code \u003d\u003d SI_TIMER from send_signal,\nspecific_send_sig_info, __group_send_sig_info.\n\nI think posix-timers.c used these functions some time ago, now it sends\nsignals via send_{,group_}sigqueue, so these hooks are unneeded.\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": "621d31219d9a788bda924a0613048053f3f5f211",
      "tree": "9fb9846fdd999ba04c436aa84c7da0d8233ac545",
      "parents": [
        "b67a1b9e4bf878aa5d4b6b44cb5a251a2f425f0d"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:03:45 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:31 2005 -0800"
      },
      "message": "[PATCH] cleanup the usage of SEND_SIG_xxx constants\n\nThis patch simplifies some checks for magic siginfo values.  It should not\nchange the behaviour in any way.\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": "b67a1b9e4bf878aa5d4b6b44cb5a251a2f425f0d",
      "tree": "8fa921440476083be42f21ce6d0c4091a3757742",
      "parents": [
        "3e6716e748609a3a899e8d670e42832921bd45bc"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:03:44 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:31 2005 -0800"
      },
      "message": "[PATCH] remove hardcoded SEND_SIG_xxx constants\n\nThis patch replaces hardcoded SEND_SIG_xxx constants with\ntheir symbolic names.\n\nNo changes in affected .o files.\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": "4098f9918e068e51fed1727f6ba80efcec372378",
      "tree": "0495f14e29ad93c165988be49c70ec658fffd086",
      "parents": [
        "70a6a0cb92f24fd6bbe2e75299168909f735676a"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:03:21 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:28 2005 -0800"
      },
      "message": "[PATCH] sched: hardcode non-smp set_cpus_allowed\n\nSimplify the UP (1 CPU) implementatin of set_cpus_allowed.\n\nThe one CPU is hardcoded to be cpu 0 - so just test for that bit, and avoid\nhaving to pick up the cpu_online_map.\n\nAlso, unexport cpu_online_map: it was only needed for set_cpus_allowed().\n\nSigned-off-by: Paul Jackson \u003cpj@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": "708f430dcc50787d1c0b5c31962a5ff0dd8e35eb",
      "tree": "5c37085047a9c83555607e8811423da4dd3ed4ed",
      "parents": [
        "a241ec65aeac3d69a08a7b153cccbdb7ea35063f"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Sun Oct 30 15:03:13 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:27 2005 -0800"
      },
      "message": "[PATCH] posix-cpu-timers: fix overrun reporting\n\nThis change corrects an omission in posix_cpu_timer_schedule, so that it\ncorrectly propagates the overrun calculation to where it will get reported\nto the user.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a241ec65aeac3d69a08a7b153cccbdb7ea35063f",
      "tree": "e96585e8b1e699f31bad1fa61f34d2ec7c3a187c",
      "parents": [
        "b3099b48da23686d8378133b0264ee00385ee5fa"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Sun Oct 30 15:03:12 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:27 2005 -0800"
      },
      "message": "[PATCH] RCU torture-testing kernel module\n\nThis patch is a rewrite of the one submitted on October 1st, using modules\n(http://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d112819093522998\u0026w\u003d2).\n\nThis rewrite adds a tristate CONFIG_RCU_TORTURE_TEST, which enables an\nintense torture test of the RCU infratructure.  This is needed due to the\ncontinued changes to the RCU infrastructure to accommodate dynamic ticks,\nCPU hotplug, realtime, and so on.  Most of the code is in a separate file\nthat is compiled only if the CONFIG variable is set.  Documentation on how\nto run the test and interpret the output is also included.\n\nThis code has been tested on i386 and ppc64, and an earlier version of the\ncode has received extensive testing on a number of architectures as part of\nthe PREEMPT_RT patchset.\n\nSigned-off-by: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ecea8d19c9f0ebd62ddaa07fc919ff4e4b820d99",
      "tree": "189de0b898157618fbf08ec6e4adc8e5cce71ec3",
      "parents": [
        "371e8c25b65f2fe7942868a8a67129d571e94076"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Oct 30 15:03:00 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:25 2005 -0800"
      },
      "message": "[PATCH] jiffies_64 cleanup\n\nDefine jiffies_64 in kernel/timer.c rather than having 24 duplicated\ndefines in each architecture.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7f2a52555998c699a7e89f24636c909d6fc08a60",
      "tree": "98ef1254ab3e727ba3470d4eeaf064d5dcb48614",
      "parents": [
        "396dc44bcac58f464b7b23c345052e37881cccea"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Sun Oct 30 15:02:50 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:24 2005 -0800"
      },
      "message": "[PATCH] wait4 PTRACE_ATTACH race fix\n\nBack about a year ago when I last fiddled heavily with the do_wait code, I\nwas thinking too hard about the wrong thing and I now think I introduced a\nbug whose inverse thought I was fixing.\n\nApparently noone was looking too hard over much shoulder, so as to cite my\nbogus reasoning at the time.  In the race condition when PTRACE_ATTACH is\nabout to steal a child and then the child hits a tracing event (what\nmy_ptrace_child checks for), the real parent does need to set its flag\nnoting it has some eligible live children.  Otherwise a spurious ECHILD\nerror is possible, since the child in question is not yet on the\nptrace_children list.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7407251a0e2ed099e4b12b742b635503e981507c",
      "tree": "826c78104c96a3982ff8348484749c718f4a413a",
      "parents": [
        "40dc565122ed1e180a0637f88cdfca734d33db78"
      ],
      "author": {
        "name": "Coywolf Qi Hunt",
        "email": "qiyong@fc-cn.com",
        "time": "Sun Oct 30 15:02:47 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:23 2005 -0800"
      },
      "message": "[PATCH] PF_DEAD cleanup\n\nThe PF_DEAD setting doesn\u0027t belong to exit_notify(), move it to a proper\nplace.\n\nSigned-off-by: Coywolf Qi Hunt \u003cqiyong@fc-cn.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "40dc565122ed1e180a0637f88cdfca734d33db78",
      "tree": "3076103886ae7f60c9a3cfabaebef821c1e39b10",
      "parents": [
        "2a91f3e54ff27c6002597f689ba51c5fa657ddbd"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Sun Oct 30 15:02:46 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:23 2005 -0800"
      },
      "message": "[PATCH] cleanup for kernel/printk.c\n\n- Removes some trailing whitespace\n\n- Breaks long lines and make other small changes to conform to CodingStyle\n\n- Add explicit printk loglevels in two places.\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "20e1129ab831486c811d50d3905343ad48c4275f",
      "tree": "ab99b7172b903d2b4d3c58d45c11c41e4bba9c87",
      "parents": [
        "29db9190634067c5a328ee5fcc2890251b836b4b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Sun Oct 30 15:02:44 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:23 2005 -0800"
      },
      "message": "[PATCH] Keys: Get rid of warning in kmod.c if keys disabled\n\nThe attached patch gets rid of a \"statement without effect\" warning when\nCONFIG_KEYS is disabled by making use of the return value of key_get().\nThe compiler will optimise all of this away when keys are disabled.\n\nSigned-Off-By: 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": "30e0fca6c1d7d26f3f2daa4dd2b12c51dadc778a",
      "tree": "945004584995e3af816125245bbb2436cc8ebc9e",
      "parents": [
        "68860ec10bcc07ab4f89f9d940e3b77ae5ca13b3"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "andrea@suse.de",
        "time": "Sun Oct 30 15:02:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] ptrace/coredump/exit_group deadlock\n\nI could seldom reproduce a deadlock with a task not killable in T state\n(TASK_STOPPED, not TASK_TRACED) by attaching a NPTL threaded program to\ngdb, by segfaulting the task and triggering a core dump while some other\ntask is executing exit_group and while one task is in ptrace_attached\nTASK_STOPPED state (not TASK_TRACED yet).  This originated from a gdb\nbugreport (the fact gdb was segfaulting the task wasn\u0027t a kernel bug), but\nI just incidentally noticed the gdb bug triggered a real kernel bug as\nwell.\n\nMost threads hangs in exit_mm because the core_dumping is still going, the\ncore dumping hangs because the stopped task doesn\u0027t exit, the stopped task\ncan\u0027t wakeup because it has SIGNAL_GROUP_EXIT set, hence the deadlock.\n\nTo me it seems that the problem is that the force_sig_specific(SIGKILL) in\nzap_threads is a noop if the task has PF_PTRACED set (like in this case\nbecause gdb is attached).  The __ptrace_unlink does nothing because the\nsignal-\u003eflags is set to SIGNAL_GROUP_EXIT|SIGNAL_STOP_DEQUEUED (verified).\n\nThe above info also shows that the stopped task hit a race and got the stop\nsignal (presumably by the ptrace_attach, only the attach, state is still\nTASK_STOPPED and gdb hangs waiting the core before it can set it to\nTASK_TRACED) after one of the thread invoked the core dump (it\u0027s the core\ndump that sets signal-\u003eflags to SIGNAL_GROUP_EXIT).\n\nSo beside the fact nobody would wakeup the task in __ptrace_unlink (the\nstate is _not_ TASK_TRACED), there\u0027s a secondary problem in the signal\nhandling code, where a task should ignore the ptrace-sigstops as long as\nSIGNAL_GROUP_EXIT is set (or the wakeup in __ptrace_unlink path wouldn\u0027t be\nenough).\n\nSo I attempted to make this patch that seems to fix the problem.  There\nwere various ways to fix it, perhaps you prefer a different one, I just\nopted to the one that looked safer to me.\n\nI also removed the clearing of the stopped bits from the zap_other_threads\n(zap_other_threads was safe unlike zap_threads).  I don\u0027t like useless\ncode, this whole NPTL signal/ptrace thing is already unreadable enough and\nfull of corner cases without confusing useless code into it to make it even\nless readable.  And if this code is really needed, then you may want to\nexplain why it\u0027s not being done in the other paths that sets\nSIGNAL_GROUP_EXIT at least.\n\nEven after this patch I still wonder who serializes the read of\np-\u003eptrace in zap_threads.\n\nPatch is called ptrace-core_dump-exit_group-deadlock-1.\n\nThis was the trace I\u0027ve got:\n\ntest          T ffff81003e8118c0     0 14305      1         14311 14309 (NOTLB)\nffff810058ccdde8 0000000000000082 000001f4000037e1 ffff810000000013\n       00000000000000f8 ffff81003e811b00 ffff81003e8118c0 ffff810011362100\n       0000000000000012 ffff810017ca4180\nCall Trace:\u003cffffffff801317ed\u003e{try_to_wake_up+893} \u003cffffffff80141677\u003e{finish_stop+87}\n       \u003cffffffff8014367f\u003e{get_signal_to_deliver+1359} \u003cffffffff8010d3ad\u003e{do_signal+157}\n       \u003cffffffff8013deee\u003e{ptrace_check_attach+222} \u003cffffffff80111575\u003e{sys_ptrace+2293}\n       \u003cffffffff80131810\u003e{default_wake_function+0} \u003cffffffff80196399\u003e{sys_ioctl+73}\n       \u003cffffffff8010dd27\u003e{sysret_signal+28} \u003cffffffff8010e00f\u003e{ptregscall_common+103}\n\ntest          D ffff810011362100     0 14309      1         14305 14312 (NOTLB)\nffff810053c81cf8 0000000000000082 0000000000000286 0000000000000001\n       0000000000000195 ffff810011362340 ffff810011362100 ffff81002e338040\n       ffff810001e0ca80 0000000000000001\nCall Trace:\u003cffffffff801317ed\u003e{try_to_wake_up+893} \u003cffffffff8044677d\u003e{wait_for_completion+173}\n       \u003cffffffff80131810\u003e{default_wake_function+0} \u003cffffffff80137435\u003e{exit_mm+149}\n       \u003cffffffff801381af\u003e{do_exit+479} \u003cffffffff80138d0c\u003e{do_group_exit+252}\n       \u003cffffffff801436db\u003e{get_signal_to_deliver+1451} \u003cffffffff8010d3ad\u003e{do_signal+157}\n       \u003cffffffff8013deee\u003e{ptrace_check_attach+222} \u003cffffffff80140850\u003e{specific_send_sig_info+2\n\n       \u003cffffffff8014208a\u003e{force_sig_info+186} \u003cffffffff804479a0\u003e{do_int3+112}\n       \u003cffffffff8010e308\u003e{retint_signal+61}\ntest          D ffff81002e338040     0 14311      1         14716 14305 (NOTLB)\nffff81005ca8dcf8 0000000000000082 0000000000000286 0000000000000001\n       0000000000000120 ffff81002e338280 ffff81002e338040 ffff8100481cb740\n       ffff810001e0ca80 0000000000000001\nCall Trace:\u003cffffffff801317ed\u003e{try_to_wake_up+893} \u003cffffffff8044677d\u003e{wait_for_completion+173}\n       \u003cffffffff80131810\u003e{default_wake_function+0} \u003cffffffff80137435\u003e{exit_mm+149}\n       \u003cffffffff801381af\u003e{do_exit+479} \u003cffffffff80142d0e\u003e{__dequeue_signal+558}\n       \u003cffffffff80138d0c\u003e{do_group_exit+252} \u003cffffffff801436db\u003e{get_signal_to_deliver+1451}\n       \u003cffffffff8010d3ad\u003e{do_signal+157} \u003cffffffff8013deee\u003e{ptrace_check_attach+222}\n       \u003cffffffff80140850\u003e{specific_send_sig_info+208} \u003cffffffff8014208a\u003e{force_sig_info+186}\n       \u003cffffffff804479a0\u003e{do_int3+112} \u003cffffffff8010e308\u003e{retint_signal+61}\n\ntest          D ffff810017ca4180     0 14312      1         14309 13882 (NOTLB)\nffff81005d15fcb8 0000000000000082 ffff81005d15fc58 ffffffff80130816\n       0000000000000897 ffff810017ca43c0 ffff810017ca4180 ffff81003e8118c0\n       0000000000000082 ffffffff801317ed\nCall Trace:\u003cffffffff80130816\u003e{activate_task+150} \u003cffffffff801317ed\u003e{try_to_wake_up+893}\n       \u003cffffffff8044677d\u003e{wait_for_completion+173} \u003cffffffff80131810\u003e{default_wake_function+0}\n       \u003cffffffff8018cdc3\u003e{do_coredump+819} \u003cffffffff80445f52\u003e{thread_return+82}\n       \u003cffffffff801436d4\u003e{get_signal_to_deliver+1444} \u003cffffffff8010d3ad\u003e{do_signal+157}\n       \u003cffffffff8013deee\u003e{ptrace_check_attach+222} \u003cffffffff80140850\u003e{specific_send_sig_info+2\n\n       \u003cffffffff804472e5\u003e{_spin_unlock_irqrestore+5} \u003cffffffff8014208a\u003e{force_sig_info+186}\n       \u003cffffffff804476ff\u003e{do_general_protection+159} \u003cffffffff8010e308\u003e{retint_signal+61}\n\nSigned-off-by: Andrea Arcangeli \u003candrea@suse.de\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Linus Torvalds \u003ctorvalds@osdl.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "68860ec10bcc07ab4f89f9d940e3b77ae5ca13b3",
      "tree": "a411f9623a113d72f23da38cf2de51f66c177873",
      "parents": [
        "fb5eeeee44edb248b4837416966f19731f497f79"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:02:36 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:22 2005 -0800"
      },
      "message": "[PATCH] cpusets: automatic numa mempolicy rebinding\n\nThis patch automatically updates a tasks NUMA mempolicy when its cpuset\nmemory placement changes.  It does so within the context of the task,\nwithout any need to support low level external mempolicy manipulation.\n\nIf a system is not using cpusets, or if running on a system with just the\nroot (all-encompassing) cpuset, then this remap is a no-op.  Only when a\ntask is moved between cpusets, or a cpusets memory placement is changed\ndoes the following apply.  Otherwise, the main routine below,\nrebind_policy() is not even called.\n\nWhen mixing cpusets, scheduler affinity, and NUMA mempolicies, the\nessential role of cpusets is to place jobs (several related tasks) on a set\nof CPUs and Memory Nodes, the essential role of sched_setaffinity is to\nmanage a jobs processor placement within its allowed cpuset, and the\nessential role of NUMA mempolicy (mbind, set_mempolicy) is to manage a jobs\nmemory placement within its allowed cpuset.\n\nHowever, CPU affinity and NUMA memory placement are managed within the\nkernel using absolute system wide numbering, not cpuset relative numbering.\n\nThis is ok until a job is migrated to a different cpuset, or what\u0027s the\nsame, a jobs cpuset is moved to different CPUs and Memory Nodes.\n\nThen the CPU affinity and NUMA memory placement of the tasks in the job\nneed to be updated, to preserve their cpuset-relative position.  This can\nbe done for CPU affinity using sched_setaffinity() from user code, as one\ntask can modify anothers CPU affinity.  This cannot be done from an\nexternal task for NUMA memory placement, as that can only be modified in\nthe context of the task using it.\n\nHowever, it easy enough to remap a tasks NUMA mempolicy automatically when\na task is migrated, using the existing cpuset mechanism to trigger a\nrefresh of a tasks memory placement after its cpuset has changed.  All that\nis needed is the old and new nodemask, and notice to the task that it needs\nto rebind its mempolicy.  The tasks mems_allowed has the old mask, the\ntasks cpuset has the new mask, and the existing\ncpuset_update_current_mems_allowed() mechanism provides the notice.  The\nbitmap/cpumask/nodemask remap operators provide the cpuset relative\ncalculations.\n\nThis patch leaves open a couple of issues:\n\n 1) Updating vma and shmfs/tmpfs/hugetlbfs memory policies:\n\n    These mempolicies may reference nodes outside of those allowed to\n    the current task by its cpuset.  Tasks are migrated as part of jobs,\n    which reside on what might be several cpusets in a subtree.  When such\n    a job is migrated, all NUMA memory policy references to nodes within\n    that cpuset subtree should be translated, and references to any nodes\n    outside that subtree should be left untouched.  A future patch will\n    provide the cpuset mechanism needed to mark such subtrees.  With that\n    patch, we will be able to correctly migrate these other memory policies\n    across a job migration.\n\n 2) Updating cpuset, affinity and memory policies in user space:\n\n    This is harder.  Any placement state stored in user space using\n    system-wide numbering will be invalidated across a migration.  More\n    work will be required to provide user code with a migration-safe means\n    to manage its cpuset relative placement, while preserving the current\n    API\u0027s that pass system wide numbers, not cpuset relative numbers across\n    the kernel-user boundary.\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": "18a19cb3047e454ee5ecbc35d7acf3f8e09e0466",
      "tree": "ad91d0024d886bdd207ba72e875e736e833de616",
      "parents": [
        "053199edf54f685e7dea765b60d4d5e9070dadec"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:02:31 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:21 2005 -0800"
      },
      "message": "[PATCH] cpusets: simple rename\n\nAdd support for renaming cpusets.  Only allow simple rename of cpuset\ndirectories in place.  Don\u0027t allow moving cpusets elsewhere in hierarchy or\nrenaming the special cpuset files in each cpuset directory.\n\nThe usefulness of this simple rename became apparent when developing task\nmigration facilities.  It allows building a second cpuset hierarchy using\nnew names and containing new CPUs and Memory Nodes, moving tasks from the\nold to the new cpusets, removing the old cpusets, and then renaming the new\ncpusets to be just like the old names, so that any knowledge that the tasks\nhad of their cpuset names will still be valid.\n\nLeaf node cpusets can be migrated to other CPUs or Memory Nodes by just\nupdating their \u0027cpus\u0027 and \u0027mems\u0027 files, but because no cpuset can contain\nCPUs or Nodes not in its parent cpuset, one cannot do this in a cpuset\nhierarchy without first expanding all the non-leaf cpusets to contain the\nunion of both the old and new CPUs and Nodes, which would obfuscate the\none-to-one migration of a task from one cpuset to another required to\ncorrectly migrate the physical page frames currently allocated to that\ntask.\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": "053199edf54f685e7dea765b60d4d5e9070dadec",
      "tree": "a2d12a8b7f07b59048da992e7ae9405bc4ee292b",
      "parents": [
        "5aa15b5f27fc2c404530c6c8eabdb8437deb3163"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:02:30 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:21 2005 -0800"
      },
      "message": "[PATCH] cpusets: dual semaphore locking overhaul\n\nOverhaul cpuset locking.  Replace single semaphore with two semaphores.\n\nThe suggestion to use two locks was made by Roman Zippel.\n\nBoth locks are global.  Code that wants to modify cpusets must first\nacquire the exclusive manage_sem, which allows them read-only access to\ncpusets, and holds off other would-be modifiers.  Before making actual\nchanges, the second semaphore, callback_sem must be acquired as well.  Code\nthat needs only to query cpusets must acquire callback_sem, which is also a\nglobal exclusive lock.\n\nThe earlier problems with double tripping are avoided, because it is\nallowed for holders of manage_sem to nest the second callback_sem lock, and\nonly callback_sem is needed by code called from within __alloc_pages(),\nwhere the double tripping had been possible.\n\nThis is not quite the same as a normal read/write semaphore, because\nobtaining read-only access with intent to change must hold off other such\nattempts, while allowing read-only access w/o such intention.  Changing\ncpusets involves several related checks and changes, which must be done\nwhile allowing read-only queries (to avoid the double trip), but while\nensuring nothing changes (holding off other would be modifiers.)\n\nThis overhaul of cpuset locking also makes careful use of task_lock() to\nguard access to the task-\u003ecpuset pointer, closing a couple of race\nconditions noticed while reading this code (thanks, Roman).  I\u0027ve never\nseen these races fail in any use or test.\n\nSee further the comments in the code.\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": "5aa15b5f27fc2c404530c6c8eabdb8437deb3163",
      "tree": "914f0b33f5190bd0183cde2e9f6da552d3d1d7aa",
      "parents": [
        "f35f31d7ed0150f9865619f21b5050c91b46c03f"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:02:28 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:21 2005 -0800"
      },
      "message": "[PATCH] cpusets: remove depth counted locking hack\n\nRemove a rather hackish depth counter on cpuset locking.  The depth counter\nwas avoiding a possible double trip on the global cpuset_sem semaphore.  It\nworked, but now an improved version of cpuset locking is available, to come\nin the next patch, using two global semaphores.\n\nThis patch reverses \"cpuset semaphore depth check deadlock fix\"\n\nThe kernel still works, even after this patch, except for some rare and\ndifficult to reproduce race conditions when agressively creating and\ndestroying cpusets marked with the notify_on_release option, on very large\nsystems.\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": "f35f31d7ed0150f9865619f21b5050c91b46c03f",
      "tree": "fb33df4eb302de0d249682e77d3d07bd6f6611ba",
      "parents": [
        "e9543659715602e3180f00a227bb6db34141ac41"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Sun Oct 30 15:02:27 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:21 2005 -0800"
      },
      "message": "[PATCH] cpuset cleanup\n\nRemove one more useless line from cpuset_common_file_read().\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": "4eb9af2a8a431a832830f986fead7332dab27229",
      "tree": "424d265f46c7d2e545235117e1b5dcfb074b5228",
      "parents": [
        "33430dc593f866f5d67ff6a6213b6dd6d7ea3ce1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:02:21 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:20 2005 -0800"
      },
      "message": "[PATCH] posix-timers: use schedule_timeout() in common_nsleep()\n\ncommon_nsleep() reimplements schedule_timeout_interruptible() for unknown\nreason.\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": "6dd69f1061bfdeca230509b173438e0731bff767",
      "tree": "66094a2fdf02fd808b0661cc2a26c6ff64d1c590",
      "parents": [
        "19a4fcb531659f2f7d18b5d04cee039176e9540d"
      ],
      "author": {
        "name": "Vadim Lobanov",
        "email": "vlobanov@speakeasy.net",
        "time": "Sun Oct 30 15:02:18 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:19 2005 -0800"
      },
      "message": "[PATCH] Unify sys_tkill() and sys_tgkill()\n\nThe majority of the sys_tkill() and sys_tgkill() function code is\nduplicated between the two of them.  This patch pulls the duplication out\ninto a separate function -- do_tkill() -- and lets sys_tkill() and\nsys_tgkill() be simple wrappers around it.  This should make it easier to\nmaintain in light of future changes.\n\nSigned-off-by: Vadim Lobanov \u003cvlobanov@speakeasy.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "19a4fcb531659f2f7d18b5d04cee039176e9540d",
      "tree": "30e0636d6163a5c0c3a4ad41c2d5f49cd858b457",
      "parents": [
        "932aeafbe8521a9a9d790152d66020e0fef2029b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:02:17 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:19 2005 -0800"
      },
      "message": "[PATCH] kill sigqueue-\u003elock\n\nThis lock is used in sigqueue_free(), but it is always equal to\ncurrent-\u003esighand-\u003esiglock, so we don\u0027t need to keep it in the struct\nsigqueue.\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": "dfc4f94d2ff95fc92127d3e512c1df7cab274fb8",
      "tree": "c9ed4d74147a3674816f59cf9fbeb69e2cb6afe4",
      "parents": [
        "89ada67917f516212452443a56b9fd3b65b74dc7"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Oct 30 15:02:03 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] remove timer debug field\n\nRemove timer_list.magic and associated debugging code.\n\nI originally added this when a spinlock was added to timer_list - this meant\nthat an all-zeroes timer became illegal and init_timer() was required.\n\nThat spinlock isn\u0027t even there any more, although timer.base must now be\ninitialised.\n\nI\u0027ll keep this debugging code in -mm.\n\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "89ada67917f516212452443a56b9fd3b65b74dc7",
      "tree": "00986fd653bf1973a70ae894f503b3b2352943b5",
      "parents": [
        "d61780c0d384939ef31c46b47442854d5def4623"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@engr.sgi.com",
        "time": "Sun Oct 30 15:01:59 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] Use alloc_percpu to allocate workqueues locally\n\nThis patch makes the workqueus use alloc_percpu instead of an array.  The\nworkqueues are placed on nodes local to each processor.\n\nThe workqueue structure can grow to a significant size on a system with\nlots of processors if this patch is not applied.  64 bit architectures with\nall debugging features enabled and configured for 512 processors will not\nbe able to boot without this patch.\n\nSigned-off-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": "a5a0d52c7305cb3629ef0cc9e2e0e106869e1907",
      "tree": "11be2b00bc455e8f0dbe280b64932bdb7369bde0",
      "parents": [
        "1bb34a412750291e4e5e9f1d0fe7ae1b7e976098"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Sun Oct 30 15:01:42 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] ntp whitespace cleanup\n\nFix bizarre 4-space coding style in the NTP code.\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1bb34a412750291e4e5e9f1d0fe7ae1b7e976098",
      "tree": "00d481a2ff4302f444fbf7c31e5e661f79dc85a9",
      "parents": [
        "9c0cbd54ce0397017a823484f9a8054ab369b8a2"
      ],
      "author": {
        "name": "john stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Sun Oct 30 15:01:42 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:18 2005 -0800"
      },
      "message": "[PATCH] NTP shift_right cleanup\n\nCreate a macro shift_right() that avoids the numerous ugly conditionals in the\nNTP code that look like:\n\n        if(a \u003c 0)\n                b \u003d -(-a \u003e\u003e shift);\n        else\n                b \u003d a \u003e\u003e shift;\n\nReplacing it with:\n\n        b \u003d shift_right(a, shift);\n\nThis should have zero effect on the logic, however it should probably have\na bit of testing just to be sure.\n\nAlso replace open-coded min/max with the macros.\n\nSigned-off-by : John Stultz \u003cjohnstul@us.ibm.com\u003e\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "61e1a9ea4b425eb8c3b4965c35fe953bd881728f",
      "tree": "2dcf017eedd4a72698593c878aff3ae31e3a6b09",
      "parents": [
        "83521d3eb8dd2dfb04dd78b4733e9766f61bb47e"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Sun Oct 30 15:01:40 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] Add kthread_stop_sem()\n\nEnhance the kthread API by adding kthread_stop_sem, for use in stopping\nthreads that spend their idle time waiting on a semaphore.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a8db2db1e6a8d323d87a67c5391d48fe2b97faf5",
      "tree": "0aa5fb9f80e4a476e097337104a3e1f94f39a96e",
      "parents": [
        "9e4e23bccb127fac109e765dfb7f9372661cb415"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 30 15:01:38 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:17 2005 -0800"
      },
      "message": "[PATCH] introduce setup_timer() helper\n\nEvery user of init_timer() also needs to initialize -\u003efunction and -\u003edata\nfields.  This patch adds a simple setup_timer() helper for that.\n\nThe schedule_timeout() is patched as an example of usage.\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": "eb9289eb20df6b54214c45ac7c6bf5179a149026",
      "tree": "dac51cecdd94e0c7273c990259ddd800057311b9",
      "parents": [
        "0245b3e787dc3267a915e1f56419e7e9c197e148"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Sun Oct 30 15:00:01 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:15 2005 -0800"
      },
      "message": "[PATCH] introduce .valid callback for pm_ops\n\nAdd pm_ops.valid callback, so only the available pm states show in\n/sys/power/state.  And this also makes an earlier states error report at\nenter_state before we do actual suspend/resume.\n\nSigned-off-by: Shaohua Li\u003cshaohua.li@intel.com\u003e\nAcked-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": "0245b3e787dc3267a915e1f56419e7e9c197e148",
      "tree": "96a366f2fc732f42d4993dd177982e6b657d83aa",
      "parents": [
        "2e32a43efdc8175579cc91e8b620ac331376a437"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 15:00:01 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:15 2005 -0800"
      },
      "message": "[PATCH] swsusp: two simplifications\n\nThe following patch simplifies the progress meter in disk.c:free_some_memory()\nand makes disk.c:pm_suspend_disk() call device_resume() explicitly in the\nsuspend path.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-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": "2e32a43efdc8175579cc91e8b620ac331376a437",
      "tree": "fd46c6cf28d437fc53acc72cff03d2d796d834ff",
      "parents": [
        "de491861e1457c31aed6d44d96afb549365ff790"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 15:00:00 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:15 2005 -0800"
      },
      "message": "[PATCH] swsusp: get rid of unnecessary wrapper function\n\nThe following patch merges two functions in a trivial way.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-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": "de491861e1457c31aed6d44d96afb549365ff790",
      "tree": "9480b80bab7d5f2ef141249b70a6beffde0c7599",
      "parents": [
        "96bc7aec20b50761822f96130127b8e31e168af1"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Sun Oct 30 14:59:59 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: cleanups\n\nReduce number of ifdefs somehow, and fix whitespace a bit.  No real code\nchanges.\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": "96bc7aec20b50761822f96130127b8e31e168af1",
      "tree": "f1bb9562fcec1764a39b1b01423770d4ddbcc1dc",
      "parents": [
        "2c1b4a5ca48831595979a850f40ced8e7da026f8"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Sun Oct 30 14:59:58 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: remove unneccessary includes\n\nCleanup comments and remove unneccessary includes.\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": "2c1b4a5ca48831595979a850f40ced8e7da026f8",
      "tree": "06fe8a400df8c5166c7f47ca2c30a584473f1170",
      "parents": [
        "a0f496517f3e28d651d0cbbcf2d4fb701ed6957e"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 14:59:58 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: rework memory freeing on resume\n\nThe following patch makes swsusp use the PG_nosave and PG_nosave_free flags to\nmark pages that should be freed in case of an error during resume.\n\nThis allows us to simplify the code and to use swsusp_free() in all of the\nswsusp\u0027s resume error paths, which makes them actually work.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a0f496517f3e28d651d0cbbcf2d4fb701ed6957e",
      "tree": "39ab8b387061cc5737c542f6cddea7320b82970b",
      "parents": [
        "25761b6eb7b33823bcfff6bfe2a015badcd76fb8"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 14:59:57 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: reduce the use of global variables\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "25761b6eb7b33823bcfff6bfe2a015badcd76fb8",
      "tree": "a25841a3f4c4cf087ce75c0907c00966f19d339a",
      "parents": [
        "351619baf9878731b4272fa10dda0f84f5582241"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 14:59:56 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: move snapshot functionality to separate file\n\nThe following patch moves the functionality of swsusp related to creating and\nhandling the snapshot of memory to a separate file, snapshot.c\n\nThis should enable us to untangle the code in the future and eventually to\nimplement some parts of swsusp.c in the user space.\n\nThe patch does not change the code.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\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": "351619baf9878731b4272fa10dda0f84f5582241",
      "tree": "62bf45ba8368dddde3adb501a37c428ead5feff7",
      "parents": [
        "c32b6b8e524d2c337767d312814484d9289550cf"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 30 14:59:55 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] swsusp: rework image freeing\n\nThe following patch makes swsusp use PG_nosave and PG_nosave_free flags to\nmark pages that should be freed after the state of the system has been\nrestored from the image (or in case of an error during suspend).\n\nThis allows us to avoid storing metadata in swap twice and to reduce the\namount of memory needed by swsusp.   Additionally, it allows us to simplify\nthe code by removing a couple of functions that are no longer necessary.\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\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": "c32b6b8e524d2c337767d312814484d9289550cf",
      "tree": "02e634b0b48db6eccc8774369366daa1893921ea",
      "parents": [
        "d434fca737bee0862625c2377b987a7713b6b487"
      ],
      "author": {
        "name": "Ashok Raj",
        "email": "ashok.raj@intel.com",
        "time": "Sun Oct 30 14:59:54 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:14 2005 -0800"
      },
      "message": "[PATCH] create and destroy cpufreq sysfs entries based on cpu notifiers\n\ncpufreq entries in sysfs should only be populated when CPU is online state.\n When we either boot with maxcpus\u003dx and then boot the other cpus by echoing\nto sysfs online file, these entries should be created and destroyed when\nCPU_DEAD is notified.  Same treatement as cache entries under sysfs.\n\nWe place the processor in the lowest frequency, so hw managed P-State\ntransitions can still work on the other threads to save power.\n\nPrimary goal was to just make these directories appear/disapper dynamically.\n\nThere is one in this patch i had to do, which i really dont like myself but\nprobably best if someone handling the cpufreq infrastructure could give\nthis code right treatment if this is not acceptable.  I guess its probably\ngood for the first cut.\n\n- Converting lock_cpu_hotplug()/unlock_cpu_hotplug() to disable/enable preempt.\n  The locking was smack in the middle of the notification path, when the\n  hotplug is already holding the lock. I tried another solution to avoid this\n  so avoid taking locks if we know we are from notification path. The solution\n  was getting very ugly and i decided this was probably good for this iteration\n  until someone who understands cpufreq could do a better job than me.\n\n(akpm: export cpucontrol to GPL modules: drivers/cpufreq/cpufreq_stats.c now\ndoes lock_cpu_hotplug())\n\nSigned-off-by: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Venkatesh Pallipadi \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Dave Jones \u003cdavej@codemonkey.org.uk\u003e\nCc: Zwane Mwaikambo \u003czwane@holomorphy.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4276d32260662d5401a15a0a46e506fb5c8ab563",
      "tree": "5968cda01076da10592729986975c7952d18862e",
      "parents": [
        "6e9d6b8ee4e0c37d3952256e6472c57490d6780d"
      ],
      "author": {
        "name": "Brian Gerst",
        "email": "bgerst@didntduck.org",
        "time": "Sun Oct 30 14:59:18 2005 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 30 17:37:10 2005 -0800"
      },
      "message": "[PATCH] Remove redundant configs.o\n\nSince CONFIG_IKCONFIG_PROC already depends on CONFIG_IKCONFIG, adding\nconfigs.o again is redundant.\n\nSigned-off-by: Brian Gerst \u003cbgerst@didntduck.org\u003e\nCc: Sam Ravnborg \u003csam@ravnborg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4c21e2f2441dc5fbb957b030333f5a3f2d02dea7",
      "tree": "1f76d33bb1d76221c6424bc5fed080a4f91349a6",
      "parents": [
        "b38c6845b695141259019e2b7c0fe6c32a6e720d"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:40 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:42 2005 -0700"
      },
      "message": "[PATCH] mm: split page table lock\n\nChristoph Lameter demonstrated very poor scalability on the SGI 512-way, with\na many-threaded application which concurrently initializes different parts of\na large anonymous area.\n\nThis patch corrects that, by using a separate spinlock per page table page, to\nguard the page table entries in that page, instead of using the mm\u0027s single\npage_table_lock.  (But even then, page_table_lock is still used to guard page\ntable allocation, and anon_vma allocation.)\n\nIn this implementation, the spinlock is tucked inside the struct page of the\npage table page: with a BUILD_BUG_ON in case it overflows - which it would in\nthe case of 32-bit PA-RISC with spinlock debugging enabled.\n\nSplitting the lock is not quite for free: another cacheline access.  Ideally,\nI suppose we would use split ptlock only for multi-threaded processes on\nmulti-cpu machines; but deciding that dynamically would have its own costs.\nSo for now enable it by config, at some number of cpus - since the Kconfig\nlanguage doesn\u0027t support inequalities, let preprocessor compare that with\nNR_CPUS.  But I don\u0027t think it\u0027s worth being user-configurable: for good\ntesting of both split and unsplit configs, split now at 4 cpus, and perhaps\nchange that to 8 later.\n\nThere is a benefit even for singly threaded processes: kswapd can be attacking\none part of the mm while another part is busy faulting.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "deceb6cd17e6dfafe4c4f81b1b4153bc41b2cb70",
      "tree": "2a722f50e8edef8609a49f65bfcb222e499c44cc",
      "parents": [
        "c34d1b4d165c67b966bca4aba026443d7ff161eb"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:41 2005 -0700"
      },
      "message": "[PATCH] mm: follow_page with inner ptlock\n\nFinal step in pushing down common core\u0027s page_table_lock.  follow_page no\nlonger wants caller to hold page_table_lock, uses pte_offset_map_lock itself;\nand so no page_table_lock is taken in get_user_pages itself.\n\nBut get_user_pages (and get_futex_key) do then need follow_page to pin the\npage for them: take Daniel\u0027s suggestion of bitflags to follow_page.\n\nNeed one for WRITE, another for TOUCH (it was the accessed flag before:\nvanished along with check_user_page_readable, but surely get_numa_maps is\nwrong to mark every page it finds as accessed), another for GET.\n\nAnd another, ANON to dispose of untouched_anonymous_page: it seems silly for\nthat to descend a second time, let follow_page observe if there was no page\ntable and return ZERO_PAGE if so.  Fix minor bug in that: check VM_LOCKED -\nmake_pages_present ought to make readonly anonymous present.\n\nGive get_numa_maps a cond_resched while we\u0027re there.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c74df32c724a1652ad8399b4891bb02c9d43743a",
      "tree": "5a79d56fdcf7dc2053a277dbf6db7c3b339e9659",
      "parents": [
        "1bb3630e89cb8a7b3d3807629c20c5bad88290ff"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:40 2005 -0700"
      },
      "message": "[PATCH] mm: ptd_alloc take ptlock\n\nSecond step in pushing down the page_table_lock.  Remove the temporary\nbridging hack from __pud_alloc, __pmd_alloc, __pte_alloc: expect callers not\nto hold page_table_lock, whether it\u0027s on init_mm or a user mm; take\npage_table_lock internally to check if a racing task already allocated.\n\nConvert their callers from common code.  But avoid coming back to change them\nagain later: instead of moving the spin_lock(\u0026mm-\u003epage_table_lock) down,\nswitch over to new macros pte_alloc_map_lock and pte_unmap_unlock, which\nencapsulate the mapping+locking and unlocking+unmapping together, and in the\nend may use alternatives to the mm page_table_lock itself.\n\nThese callers all hold mmap_sem (some exclusively, some not), so at no level\ncan a page table be whipped away from beneath them; and pte_alloc uses the\n\"atomic\" pmd_present to test whether it needs to allocate.  It appears that on\nall arches we can safely descend without page_table_lock.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "365e9c87a982c03d0af3886e29d877f581b59611",
      "tree": "d06c1918ca9fe6677d7e4e869555e095004274f7",
      "parents": [
        "861f2fb8e796022b4928cab9c74fca6681a1c557"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] mm: update_hiwaters just in time\n\nupdate_mem_hiwater has attracted various criticisms, in particular from those\nconcerned with mm scalability.  Originally it was called whenever rss or\ntotal_vm got raised.  Then many of those callsites were replaced by a timer\ntick call from account_system_time.  Now Frank van Maarseveen reports that to\nbe found inadequate.  How about this?  Works for Frank.\n\nReplace update_mem_hiwater, a poor combination of two unrelated ops, by macros\nupdate_hiwater_rss and update_hiwater_vm.  Don\u0027t attempt to keep\nmm-\u003ehiwater_rss up to date at timer tick, nor every time we raise rss (usually\nby 1): those are hot paths.  Do the opposite, update only when about to lower\nrss (usually by many), or just before final accounting in do_exit.  Handle\nmm-\u003ehiwater_vm in the same way, though it\u0027s much less of an issue.  Demand\nthat whoever collects these hiwater statistics do the work of taking the\nmaximum with rss or total_vm.\n\nAnd there has been no collector of these hiwater statistics in the tree.  The\nnew convention needs an example, so match Frank\u0027s usage by adding a VmPeak\nline above VmSize to /proc/\u003cpid\u003e/status, and also a VmHWM line above VmRSS\n(High-Water-Mark or High-Water-Memory).\n\nThere was a particular anomaly during mremap move, that hiwater_vm might be\ncaptured too high.  A fleeting such anomaly remains, but it\u0027s quickly\ncorrected now, whereas before it would stick.\n\nWhat locking?  None: if the app is racy then these statistics will be racy,\nit\u0027s not worth any overhead to make them exact.  But whenever it suits,\nhiwater_vm is updated under exclusive mmap_sem, and hiwater_rss under\npage_table_lock (for now) or with preemption disabled (later on): without\ngoing to any trouble, minimize the time between reading current values and\nupdating, to minimize those occasions when a racing thread bumps a count up\nand back down in between.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b5810039a54e5babf428e9a1e89fc1940fabff11",
      "tree": "835836cb527ec9bd525f93eb7e016f3dfb8c8ae2",
      "parents": [
        "f9c98d0287de42221c624482fd4f8d485c98ab22"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "nickpiggin@yahoo.com.au",
        "time": "Sat Oct 29 18:16:12 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:39 2005 -0700"
      },
      "message": "[PATCH] core remove PageReserved\n\nRemove PageReserved() calls from core code by tightening VM_RESERVED\nhandling in mm/ to cover PageReserved functionality.\n\nPageReserved special casing is removed from get_page and put_page.\n\nAll setting and clearing of PageReserved is retained, and it is now flagged\nin the page_alloc checks to help ensure we don\u0027t introduce any refcount\nbased freeing of Reserved pages.\n\nMAP_PRIVATE, PROT_WRITE of VM_RESERVED regions is tentatively being\ndeprecated.  We never completely handled it correctly anyway, and is be\nreintroduced in future if required (Hugh has a proof of concept).\n\nOnce PageReserved() calls are removed from kernel/power/swsusp.c, and all\narch/ and driver code, the Set and Clear calls, and the PG_reserved bit can\nbe trivially removed.\n\nLast real user of PageReserved is swsusp, which uses PageReserved to\ndetermine whether a struct page points to valid memory or not.  This still\nneeds to be addressed (a generic page_is_ram() should work).\n\nA last caveat: the ZERO_PAGE is now refcounted and managed with rmap (and\nthus mapcounted and count towards shared rss).  These writes to the struct\npage could cause excessive cacheline bouncing on big systems.  There are a\nnumber of ways this could be addressed if it is an issue.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\n\nRefcount bug fix for filemap_xip.c\n\nSigned-off-by: Carsten Otte \u003ccotte@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7ee78232501ea9de2b6c8f10d32c9a0fee541357",
      "tree": "2041a36a13bdd8b096dfbf52b63a87739ea97d6b",
      "parents": [
        "fd3e42fcc888a773572282575d2fdbf5cfd6216e"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:08 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: dup_mmap down new mmap_sem\n\nOne anomaly remains from when Andrea rationalized the responsibilities of\nmmap_sem and page_table_lock: in dup_mmap we add vmas to the child holding its\npage_table_lock, but not the mmap_sem which normally guards the vma list and\nrbtree.  Which could be an issue for unuse_mm: though since it just walks down\nthe list (today with page_table_lock, tomorrow not), it\u0027s probably okay.  Will\nneed a memory barrier?  Oh, keep it simple, Nick and I agreed, no harm in\ntaking child\u0027s mmap_sem here.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fd3e42fcc888a773572282575d2fdbf5cfd6216e",
      "tree": "ffe2c223b9200185eb67881582f784d534958883",
      "parents": [
        "ae859762332f19bfc06f4c4a1b1fefb41e9e1084"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: dup_mmap use oldmm more\n\nUse the parent\u0027s oldmm throughout dup_mmap, instead of perversely going back\nto current-\u003emm.  (Can you hear the sigh of relief from those mpnts?  Usually I\nsquash them, but not today.)\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4294621f41a85497019fae64341aa5351a1921b7",
      "tree": "fdeb7eb44384a99d0679ffa6de5019bab0ea2166",
      "parents": [
        "404351e67a9facb475abf1492245374a28d13e90"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:05 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: rss \u003d file_rss + anon_rss\n\nI was lazy when we added anon_rss, and chose to change as few places as\npossible.  So currently each anonymous page has to be counted twice, in rss\nand in anon_rss.  Which won\u0027t be so good if those are atomic counts in some\nconfigurations.\n\nChange that around: keep file_rss and anon_rss separately, and add them\ntogether (with get_mm_rss macro) when the total is needed - reading two\natomics is much cheaper than updating two atomics.  And update anon_rss\nupfront, typically in memory.c, not tucked away in page_add_anon_rmap.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "404351e67a9facb475abf1492245374a28d13e90",
      "tree": "5ef4e78b399b36a46eda339ad0cd27556fc5b9a2",
      "parents": [
        "fc2acab31be8e869b2d5f6de12f557f6f054f19c"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:16:04 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:38 2005 -0700"
      },
      "message": "[PATCH] mm: mm_init set_mm_counters\n\nHow is anon_rss initialized?  In dup_mmap, and by mm_alloc\u0027s memset; but\nthat\u0027s not so good if an mm_counter_t is a special type.  And how is rss\ninitialized?  By set_mm_counter, all over the place.  Come on, we just need to\ninitialize them both at once by set_mm_counter in mm_init (which follows the\nmemcpy when forking).\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab50b8ed818016cfecd747d6d4bb9139986bc029",
      "tree": "33c666578c14dccce05b3f7a5538405098eebcc4",
      "parents": [
        "72866f6f277ec0ddd6df7a3b6ecdcf59a28de115"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hugh@veritas.com",
        "time": "Sat Oct 29 18:15:56 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:37 2005 -0700"
      },
      "message": "[PATCH] mm: vm_stat_account unshackled\n\nThe original vm_stat_account has fallen into disuse, with only one user, and\nonly one user of vm_stat_unaccount.  It\u0027s easier to keep track if we convert\nthem all to __vm_stat_account, then free it from its __shackles.\n\nSigned-off-by: Hugh Dickins \u003chugh@veritas.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b8f573b5db02a3017afbba49026a6aef480174f",
      "tree": "4abf19125526809d4be44cb83373f85605854575",
      "parents": [
        "930fc45a49ddebe7555cc5c837d82b9c27e65ff4"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Sat Oct 29 18:15:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 21:40:35 2005 -0700"
      },
      "message": "[PATCH] TIMERS: add missing compensation for HZ \u003d\u003d 250\n\nAdd missing compensation for (HZ \u003d\u003d 250) !\u003d (1 \u003c\u003c SHIFT_HZ) in\nsecond_overflow().\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "943eae03143790c71cf42fe13529f1b74ceb0266",
      "tree": "64b815091689324d1124ccafd7ab80274033bd2f",
      "parents": [
        "9d86b7d37018c917837477dd4501d44bf8f3f98c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Sat Oct 29 07:32:07 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 10:35:07 2005 -0700"
      },
      "message": "[PATCH] missing exports of do_settimeofday() variants\n\nfrv, sh64, ia64 and sparc64 do not have do_settimeofday() exported (the\nlast two are using variant in kernel/time.c).  Exports added to match\nthe rest of architectures.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8d027de54c77d38eedc9b331c7a2a39807d34691",
      "tree": "cfa290c7ca6b63f33b2b4624695596f38bcda2fd",
      "parents": [
        "47e627ce83b6df9f4bb8e4b0a4dde1c5d7a4c929"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sat Oct 29 19:37:40 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 29 10:28:13 2005 -0700"
      },
      "message": "[PATCH] fix -\u003esignal-\u003elive leak in copy_process()\n\nexit_signal() (called from copy_process\u0027s error path) should decrement\n-\u003esignal-\u003elive, otherwise forking process will miss \u0027group_dead\u0027 in\ndo_exit().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9796fdd829da626374458e8706daedcc0e432ddd",
      "tree": "a0b4af7f45267cdcdfb677c2167906c6ef981b76",
      "parents": [
        "55016f10e31bb15b85d8c500f979dfdceb37d548"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 21 03:22:03 2005 -0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 28 08:16:49 2005 -0700"
      },
      "message": "[PATCH] gfp_t: kernel/*\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4542437679de448de0f75bc901dab380d6a5bc5b",
      "tree": "1a436c9b6f9459c3938e2bb1ab7ad2c888d0003c",
      "parents": [
        "2227718ca2f7d5fcc2741c1bbca4d0c2efd340ce",
        "741b2252a5e14d6c60a913c77a6099abe73a854a"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri Oct 28 13:38:53 2005 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Fri Oct 28 13:38:53 2005 +1000"
      },
      "message": "Merge in v2.6.14 by hand\n"
    },
    {
      "commit": "72ab373a5688a78cbdaf3bf96012e597d5399bb7",
      "tree": "906d4857e3cebe48649c4459acb78dca698d58c0",
      "parents": [
        "a362f463a6d316d14daed0f817e151835ce97ff7"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Oct 27 03:16:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Oct 27 09:08:43 2005 -0700"
      },
      "message": "[PATCH] Yet more posix-cpu-timer fixes\n\nThis just makes sure that a thread\u0027s expiry times can\u0027t get reset after\nit clears them in do_exit.\n\nThis is what allowed us to re-introduce the stricter BUG_ON() check in\na362f463a6d316d14daed0f817e151835ce97ff7.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a362f463a6d316d14daed0f817e151835ce97ff7",
      "tree": "99b510438f9c88860ae17f1233cf21be24a152e3",
      "parents": [
        "7a4ed937aa44acdeb8c6ba671509dc7b54b09d3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Oct 27 09:07:33 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Oct 27 09:07:33 2005 -0700"
      },
      "message": "Revert \"remove false BUG_ON() from run_posix_cpu_timers()\"\n\nThis reverts commit 3de463c7d9d58f8cf3395268230cb20a4c15bffa.\n\nRoland has another patch that allows us to leave the BUG_ON() in place\nby just making sure that the condition it tests for really is always\ntrue.\n\nThat goes in next.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a4ed937aa44acdeb8c6ba671509dc7b54b09d3a",
      "tree": "b602abc9445b2c4a10788147c58a28fe1f4e63f7",
      "parents": [
        "e02fd44056dd8077b49b4bd92c5799a75e89cd65"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed Oct 26 20:26:53 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 26 15:21:14 2005 -0700"
      },
      "message": "[PATCH] Fix cpu timers expiration time\n\nThere\u0027s a silly off-by-one error in the code that updates the expiration\nof posix CPU timers, causing them to not be properly updated when they\nhit exactly on their expiration time (which should be the normal case).\n\nThis causes them to then fire immediately again, and only _then_ get\nproperly updated.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "70ab81c2ed3d1323e7d6805bf59cbb570dff7937",
      "tree": "7679256f81780842aa443846f4cea7524c0db37a",
      "parents": [
        "b0917bd912d3708c50e1df1b5e1648d0547108a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 26 11:23:06 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 26 11:23:06 2005 -0700"
      },
      "message": "posix cpu timers: fix timer ordering\n\nPointed out by Oleg Nesterov, who has been walking over the code\nforwards and backwards.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bb32051532fed727de0d513a9a578b54c0b7ea5a",
      "tree": "128c1b4f00aae8a26cbfc03805a0b53c9f35e546",
      "parents": [
        "958d24df82e021704437da0789c47fcf581e4b85"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed Oct 26 01:59:01 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 26 10:39:43 2005 -0700"
      },
      "message": "[PATCH] export cpu_online_map\n\nWith CONFIG_SMP\u003dn:\n\n*** Warning: \"cpu_online_map\" [drivers/firmware/dcdbas.ko] undefined!\n\ndue to set_cpus_allowed().\n\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a69ac4a78d8bd9e1ec478bd7297d4f047fcd44a8",
      "tree": "a56edf4f69cc01c6d4b7b3eeee3646c7ea9810df",
      "parents": [
        "ca531a0a5e01e5122f67cb6aca8fcbfc70e18e0b"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 24 18:29:58 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 24 08:13:14 2005 -0700"
      },
      "message": "[PATCH] posix-timers: fix posix_cpu_timer_set() vs run_posix_cpu_timers() race\n\nThis might be harmless, but looks like a race from code inspection (I\nwas unable to trigger it).  I must admit, I don\u0027t understand why we\ncan\u0027t return TIMER_RETRY after \u0027spin_unlock(\u0026p-\u003esighand-\u003esiglock)\u0027\nwithout doing bump_cpu_timer(), but this is what original code does.\n\nposix_cpu_timer_set:\n\n\tread_lock(\u0026tasklist_lock);\n\n\tspin_lock(\u0026p-\u003esighand-\u003esiglock);\n\tlist_del_init(\u0026timer-\u003eit.cpu.entry);\n\tspin_unlock(\u0026p-\u003esighand-\u003esiglock);\n\nWe are probaly deleting the timer from run_posix_cpu_timers\u0027s \u0027firing\u0027\nlocal list_head while run_posix_cpu_timers() does list_for_each_safe.\n\nVarious bad things can happen, for example we can just delete this timer\nso that list_for_each() will not notice it and run_posix_cpu_timers()\nwill not reset \u0027-\u003efiring\u0027 flag. In that case,\n\n\t....\n\n\tif (timer-\u003eit.cpu.firing) {\n\t\tread_unlock(\u0026tasklist_lock);\n\t\ttimer-\u003eit.cpu.firing \u003d -1;\n\t\treturn TIMER_RETRY;\n\t}\n\nsys_timer_settime() goes to \u0027retry:\u0027, calls posix_cpu_timer_set() again,\nit returns TIMER_RETRY ...\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ca531a0a5e01e5122f67cb6aca8fcbfc70e18e0b",
      "tree": "4dc28c012d1bb78aba82acdcd2462d17020ba77e",
      "parents": [
        "3de463c7d9d58f8cf3395268230cb20a4c15bffa"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 24 14:36:28 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 24 08:12:35 2005 -0700"
      },
      "message": "[PATCH] posix-timers: exit path cleanup\n\nNo need to rebalance when task exited\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3de463c7d9d58f8cf3395268230cb20a4c15bffa",
      "tree": "20ba1584eefb7ed75f6f8536f40e55966294cf4f",
      "parents": [
        "108150ea78003044e41150c75259447b2c0953b6"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 24 14:34:03 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 24 08:12:35 2005 -0700"
      },
      "message": "[PATCH] posix-timers: remove false BUG_ON() from run_posix_cpu_timers()\n\ndo_exit() clears -\u003eit_##clock##_expires, but nothing prevents\nanother cpu to attach the timer to exiting process after that.\n\nAfter exit_notify() does \u0027write_unlock_irq(\u0026tasklist_lock)\u0027 and\nbefore do_exit() calls \u0027schedule() local timer interrupt can find\ntsk-\u003eexit_state !\u003d 0. If that state was EXIT_DEAD (or another cpu\ndoes sys_wait4) interrupted task has -\u003esignal \u003d\u003d NULL.\n\nAt this moment exiting task has no pending cpu timers, they were cleaned\nup in __exit_signal()-\u003eposix_cpu_timers_exit{,_group}(), so we can just\nreturn from irq.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "108150ea78003044e41150c75259447b2c0953b6",
      "tree": "ffe0b7e59e6ca1c8a4dad18110e485e5c72872bc",
      "parents": [
        "ba9e358fd04190a59e605c2963a15e014139a707"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Sun Oct 23 20:25:39 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 24 08:12:35 2005 -0700"
      },
      "message": "[PATCH] posix-timers: fix cleanup_timers() and run_posix_cpu_timers() races\n\n1. cleanup_timers() sets timer-\u003etask \u003d NULL under tasklist + -\u003esighand locks.\n   That means that this code in posix_cpu_timer_del() and posix_cpu_timer_set()\n\n   \t\tlock_timer(timer);\n\t\tif (timer-\u003etask \u003d\u003d NULL)\n\t\t\treturn;\n\t\tread_lock(tasklist);\n\t\tput_task_struct(timer-\u003etask)\n\n   is racy. With this patch timer-\u003etask modified and accounted only under\n   timer-\u003eit_lock. Sadly, this means that dead task_struct won\u0027t be freed\n   until timer deleted or armed.\n\n2. run_posix_cpu_timers() collects expired timers into local list under\n   tasklist + -\u003esighand again. That means that posix_cpu_timer_del()\n   should check timer-\u003eit.cpu.firing under these locks too.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e80eda94d3eaf1d12cfc97878eff77cd679dabc9",
      "tree": "38ab17e7b9839297708a6982d661c3725d181c3a",
      "parents": [
        "d475f3f47a0427dfee483cecf9a7e9109e991423"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 23 10:02:50 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sun Oct 23 10:02:50 2005 -0700"
      },
      "message": "Posix timers: limit number of timers firing at once\n\nBursty timers aren\u0027t good for anybody, very much including latency for\nother programs when we trigger lots of timers in interrupt context.  So\nset a random limit, after which we\u0027ll handle the rest on the next timer\ntick.\n\nNoted by Oleg Nesterov \u003coleg@tv-sign.ru\u003e\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "985990137e81ca9fd6561cd0f7d1a9695ec57d5a",
      "tree": "7a67493285623a7356ba7065cada6728993d1a3b",
      "parents": [
        "834289447542b7ec55c0847486616d4d53ddf891",
        "63172cb3d5ef762dcb60a292bc7f016b85cf6e1f"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Sat Oct 22 16:51:34 2005 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Sat Oct 22 16:51:34 2005 +1000"
      },
      "message": "Merge changes from linux-2.6 by hand\n"
    },
    {
      "commit": "25f407f0b668f5e4ebd5d13e1fb4306ba6427ead",
      "tree": "10d8661419da9e0d6be6d22ef319582d052c4a26",
      "parents": [
        "9465bee863bc4c6cf1566c12d6f92a8133e3da5c"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Fri Oct 21 15:03:29 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 21 15:38:08 2005 -0700"
      },
      "message": "[PATCH] Call exit_itimers from do_exit, not __exit_signal\n\nWhen I originally moved exit_itimers into __exit_signal, that was the only\nplace where we could reliably know it was the last thread in the group\ndying, without races.  Since then we\u0027ve gotten the signal_struct.live\ncounter, and do_exit can reliably do group-wide cleanup work.\n\nThis patch moves the call to do_exit, where it\u0027s made without locks.  This\navoids the deadlock issues that the old __exit_signal code\u0027s comment talks\nabout, and the one that Oleg found recently with process CPU timers.\n\n[ This replaces e03d13e985d48ac4885382c9e3b1510c78bd047f, which is why\n  it was just reverted. ]\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9465bee863bc4c6cf1566c12d6f92a8133e3da5c",
      "tree": "339f5d3f7554afe2226eb6bdf9fa63851ae73311",
      "parents": [
        "0213df74315bbab9ccaa73146f3e11972ea6de46"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 21 15:36:00 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 21 15:36:00 2005 -0700"
      },
      "message": "Revert \"Fix cpu timers exit deadlock and races\"\n\nRevert commit e03d13e985d48ac4885382c9e3b1510c78bd047f, to be replaced\nby a much nicer fix from Roland.\n"
    },
    {
      "commit": "d1209d049bbc3df66650f8417637be4f7b57b604",
      "tree": "0712622c596cd3ca93234e8eca661240b5fa042b",
      "parents": [
        "f9b25fabfddf142b5af8268692701d386cf37e4f"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Wed Oct 19 21:23:51 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 19 23:04:31 2005 -0700"
      },
      "message": "[PATCH] Threads shouldn\u0027t inherit PF_NOFREEZE\n\nThe PF_NOFREEZE process flag should not be inherited when a thread is\nforked.  This patch (as585) removes the flag from the child.\n\nThis problem is starting to show up more and more as drivers turn to the\nkthread API instead of using kernel_thread().  As a result, their kernel\nthreads are now children of the kthread worker instead of modprobe, and\nthey inherit the PF_NOFREEZE flag.  This can cause problems during system\nsuspend; the kernel threads are not getting frozen as they ought to be.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\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": "e03d13e985d48ac4885382c9e3b1510c78bd047f",
      "tree": "04a124c1759f4b16e21fd04031ee9677fab58021",
      "parents": [
        "3359b54c8c07338f3a863d1109b42eebccdcf379"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed Oct 19 22:21:23 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Oct 19 23:02:01 2005 -0700"
      },
      "message": "[PATCH] Fix cpu timers exit deadlock and races\n\nOleg Nesterov reported an SMP deadlock.  If there is a running timer\ntracking a different process\u0027s CPU time clock when the process owning\nthe timer exits, we deadlock on tasklist_lock in posix_cpu_timer_del via\nexit_itimers.\n\nThat code was using tasklist_lock to check for a race with __exit_signal\nbeing called on the timer-target task and clearing its -\u003esignal.\nHowever, there is actually no such race.  __exit_signal will have called\nposix_cpu_timers_exit and posix_cpu_timers_exit_group before it does\nthat.  Those will clear those k_itimer\u0027s association with the dying\ntask, so posix_cpu_timer_del will return early and never reach the code\nin question.\n\nIn addition, posix_cpu_timer_del called from exit_itimers during execve\nor directly from timer_delete in the process owning the timer can race\nwith an exiting timer-target task to cause a double put on timer-target\ntask struct.  Make sure we always access cpu_timers lists with sighand\nlock held.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Chris Wright \u003cchrisw@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5ee832dbc6770135ec8d63296af0a4374557bb79",
      "tree": "80ffdc157100df18f1c18d39f5036a9b798f2c06",
      "parents": [
        "cc675230a9ca17010694bc8bd3c69ca9adf2efef"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "dada1@cosmosbay.com",
        "time": "Mon Oct 17 20:01:21 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 15:27:58 2005 -0700"
      },
      "message": "[PATCH] rcu: keep rcu callback event counter\n\nThis makes call_rcu() keep track of how many events there are on the RCU\nlist, and cause a reschedule event when the list gets too long.\n\nThis helps keep RCU event lists down.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "47d6b08334a43fafa61a587f721fa21ef65d81be",
      "tree": "57e9082d0011a4ada210878be2b90c2ede14451a",
      "parents": [
        "6ce969171d5187f7621be68c0ebbc7fb02ec53f1"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Mon Oct 17 18:49:42 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 15:00:00 2005 -0700"
      },
      "message": "[PATCH] posix-timers: fix task accounting\n\nMake sure we release the task struct properly when releasing pending\ntimers.\n\nrelease_task() does write_lock_irq(\u0026tasklist_lock), so it can\u0027t race\nwith run_posix_cpu_timers() on any cpu.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2cc78eb52bc1ae89f0a4fa5a00eb998dffde4a9f",
      "tree": "27422cfcf8f403e5aa25e98148c225dbedb027c5",
      "parents": [
        "de21eb63add932c61e018d20a760dcaed8c3e40c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 09:10:15 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 17 09:10:15 2005 -0700"
      },
      "message": "Increase default RCU batching sharply\n\nDipankar made RCU limit the batch size to improve latency, but that\napproach is unworkable: it can cause the RCU queues to grow without\nbounds, since the batch limiter ended up limiting the callbacks.\n\nSo make the limit much higher, and start planning on instead limiting\nthe batch size by doing RCU callbacks more often if the queue looks like\nit might be growing too long.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c6ecf7ed3131961e5aeedb0efd217afa0808798f",
      "tree": "e10117b6ad2149dd54eafeafeb1bb297b7d4438d",
      "parents": [
        "65d406ace3b44e042807d3f9a2e71088818e80f2"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Fri Oct 14 15:59:03 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Oct 14 17:10:12 2005 -0700"
      },
      "message": "[PATCH] Add missing export of getnstimeofday()\n\nAdds the missing EXPORT_SYMBOL_GPL for getnstimeofday() when\nCONFIG_TIME_INTERPOLATION isn\u0027t set.  Needed by drivers/char/mmtimer.c\n\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b6ec995a21a9428aef620b5adf46d047a18d88b8",
      "tree": "6719121e6605cbca524b687f47336b9bbf3b8d41",
      "parents": [
        "3a5f8c5f788d68e325d9fe3c26f4df5a5aee838a",
        "da64c6ee6bb71bfb3f09d9bb89ce1aa4b1ee7e89"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Oct 12 14:43:32 2005 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Oct 12 14:43:32 2005 +1000"
      },
      "message": "Merge from Linus\u0027 tree\n"
    },
    {
      "commit": "46113830a18847cff8da73005e57bc49c2f95a56",
      "tree": "93946fc290d9481e7055217ff497583647d1e4d4",
      "parents": [
        "094804c5a132f04c12dd4902ee15c64362e5c1af"
      ],
      "author": {
        "name": "Harald Welte",
        "email": "laforge@gnumonks.org",
        "time": "Mon Oct 10 19:44:29 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 10 16:16:33 2005 -0700"
      },
      "message": "[PATCH] Fix signal sending in usbdevio on async URB completion\n\nIf a process issues an URB from userspace and (starts to) terminate\nbefore the URB comes back, we run into the issue described above.  This\nis because the urb saves a pointer to \"current\" when it is posted to the\ndevice, but there\u0027s no guarantee that this pointer is still valid\nafterwards.\n\nIn fact, there are three separate issues:\n\n1) the pointer to \"current\" can become invalid, since the task could be\n   completely gone when the URB completion comes back from the device.\n\n2) Even if the saved task pointer is still pointing to a valid task_struct,\n   task_struct-\u003esighand could have gone meanwhile.\n\n3) Even if the process is perfectly fine, permissions may have changed,\n   and we can no longer send it a signal.\n\nSo what we do instead, is to save the PID and uid\u0027s of the process, and\nintroduce a new kill_proc_info_as_uid() function.\n\nSigned-off-by: Harald Welte \u003claforge@gnumonks.org\u003e\n[ Fixed up types and added symbol exports ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3dd083255ddcfa87751fa8e32f61a9547a15a541",
      "tree": "9767ee9d882e57037d8423ea06205f6f0139bfea",
      "parents": [
        "52a2d3e45e06012a662f627177729d3196ba8903"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Sun Oct 09 21:19:40 2005 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Mon Oct 10 08:36:46 2005 -0700"
      },
      "message": "[PATCH] x86_64: Set up safe page tables during resume\n\nThe following patch makes swsusp avoid the possible temporary corruption\nof page translation tables during resume on x86-64.  This is achieved by\ncreating a copy of the relevant page tables that will not be modified by\nswsusp and can be safely used by it on resume.\n\nThe problem is that during resume on x86-64 swsusp may temporarily\ncorrupt the page tables used for the direct mapping of RAM.  If that\nhappens, a page fault occurs and cannot be handled properly, which leads\nto the solid hang of the affected system.  This leads to the loss of the\nsystem\u0027s state from before suspend and may result in the loss of data or\nthe corruption of filesystems, so it is a serious issue.  Also, it\nappears to happen quite often (for me, as often as 50% of the time).\n\nThe problem is related to the fact that (at least) one of the PMD\nentries used in the direct memory mapping (starting at PAGE_OFFSET)\npoints to a page table the physical address of which is much greater\nthan the physical address of the PMD entry itself.  Moreover,\nunfortunately, the physical address of the page table before suspend\n(i.e.  the one stored in the suspend image) happens to be different to\nthe physical address of the corresponding page table used during resume\n(i.e.  the one that is valid right before swsusp_arch_resume() in\narch/x86_64/kernel/suspend_asm.S is executed).  Thus while the image is\nrestored, the \"offending\" PMD entry gets overwritten, so it does not\npoint to the right physical address any more (i.e.  there\u0027s no page\ntable at the address pointed to by it, because it points to the address\nthe page table has been at during suspend).  Consequently, if the PMD\nentry is used later on, and it _is_ used in the process of copying the\nimage pages, a page fault occurs, but it cannot be handled in the normal\nway and the system hangs.\n\nIn principle we can call create_resume_mapping() from\nswsusp_arch_resume() (ie.  from suspend_asm.S), but then the memory\nallocations in create_resume_mapping(), resume_pud_mapping(), and\nresume_pmd_mapping() must be made carefully so that we use _only_\nNosaveFree pages in them (the other pages are overwritten by the loop in\nswsusp_arch_resume()).  Additionally, we are in atomic context at that\ntime, so we cannot use GFP_KERNEL.  Moreover, if one of the allocations\nfails, we should free all of the allocated pages, so we need to trace\nthem somehow.\n\nAll of this is done in the appended patch, except that the functions\npopulating the page tables are located in arch/x86_64/kernel/suspend.c\nrather than in init.c.  It may be done in a more elegan way in the\nfuture, with the help of some swsusp patches that are in the works now.\n\n[AK: move some externs into headers, renamed a function]\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Andi Kleen \u003cak@suse.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0fc66fb33cd610bc1a5db8a5e232d34879b4d7",
      "tree": "51f96a9db96293b352e358f66032e1f4ff79fafb",
      "parents": [
        "3b0e77bd144203a507eb191f7117d2c5004ea1de"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Oct 07 07:46:04 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 15:00:57 2005 -0700"
      },
      "message": "[PATCH] gfp flags annotations - part 1\n\n - added typedef unsigned int __nocast gfp_t;\n\n - replaced __nocast uses for gfp flags with gfp_t - it gives exactly\n   the same warnings as far as sparse is concerned, doesn\u0027t change\n   generated code (from gcc point of view we replaced unsigned int with\n   typedef) and documents what\u0027s going on far better.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "788e05a67c343fa22f2ae1d3ca264e7f15c25eaf",
      "tree": "4fa2f7e11cc757160ae5f492fdbe0da72d30cf26",
      "parents": [
        "829841146878e082613a49581ae252c071057c23"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Fri Oct 07 17:46:19 2005 +0400"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 08 14:53:31 2005 -0700"
      },
      "message": "[PATCH] fix do_coredump() vs SIGSTOP race\n\nLet\u0027s suppose we have 2 threads in thread group:\n\tA - does coredump\n\tB - has pending SIGSTOP\n\nthread A\t\t\t\t\t\tthread B\n\ndo_coredump:\t\t\t\t\t\tget_signal_to_deliver:\n\n  lock(-\u003esighand)\n  -\u003esignal-\u003eflags \u003d SIGNAL_GROUP_EXIT\n  unlock(-\u003esighand)\n\n\t\t\t\t\t\t\tlock(-\u003esighand)\n\t\t\t\t\t\t\tsignr \u003d dequeue_signal()\n\t\t\t\t\t\t\t\t-\u003esignal-\u003eflags |\u003d SIGNAL_STOP_DEQUEUED\n\t\t\t\t\t\t\t\treturn SIGSTOP;\n\n\t\t\t\t\t\t\tdo_signal_stop:\n\t\t\t\t\t\t\t    unlock(-\u003esighand)\n\n  coredump_wait:\n\n      zap_threads:\n          lock(tasklist_lock)\n          send SIGKILL to B\n              // signal_wake_up() does nothing\n          unlock(tasklist_lock)\n\n\t\t\t\t\t\t\t    lock(tasklist_lock)\n\t\t\t\t\t\t\t    lock(-\u003esighand)\n\t\t\t\t\t\t\t    re-check sig-\u003eflags \u0026 SIGNAL_STOP_DEQUEUED, yes\n\t\t\t\t\t\t\t    set_current_state(TASK_STOPPED);\n\t\t\t\t\t\t\t    finish_stop:\n\t\t\t\t\t\t\t        schedule();\n\t\t\t\t\t\t\t            // -\u003estate \u003d\u003d TASK_STOPPED\n\n      wait_for_completion(\u0026startup_done)\n         // waits for complete() from B,\n         // -\u003estate \u003d\u003d TASK_UNINTERRUPTIBLE\n\nWe can\u0027t wake up \u0027B\u0027 in any way:\n\n\tSIGCONT will be ignored because handle_stop_signal() sees\n\t-\u003esignal-\u003eflags \u0026 SIGNAL_GROUP_EXIT.\n\n\tsys_kill(SIGKILL)-\u003e__group_complete_signal() will choose\n\tuninterruptible \u0027A\u0027, so it can\u0027t help.\n\n\tsys_tkill(B, SIGKILL) will be ignored by specific_send_sig_info()\n\tbecause B already has pending SIGKILL.\n\nThis scenario is not possbile if \u0027A\u0027 does do_group_exit(), because\nit sets sig-\u003eflags \u003d SIGNAL_GROUP_EXIT and delivers SIGKILL to\nsubthreads atomically, holding both tasklist_lock and sighand-\u003elock.\nThat means that do_signal_stop() will notice !SIGNAL_STOP_DEQUEUED\nafter re-locking -\u003esighand. And it is not possible to any other\nthread to re-add SIGNAL_STOP_DEQUEUED later, because dequeue_signal()\ncan only return SIGKILL.\n\nI think it is better to change do_coredump() to do sigaddset(SIGKILL)\nand signal_wake_up() under sighand-\u003elock, but this patch is much\nsimpler.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "14bf01bb0599c89fc7f426d20353b76e12555308",
      "tree": "4d9c164faaff5df25044b15afa235debc96091dc",
      "parents": [
        "fd2e54b35bd70d11c160ded4834e2378e915356e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 01 11:04:18 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Sat Oct 01 11:04:18 2005 -0700"
      },
      "message": "Fix inequality comparison against \"task-\u003estate\"\n\nWe should always use bitmask ops, rather than depend on some ordering of\nthe different states.  With the TASK_NONINTERACTIVE flag, the inequality\ndoesn\u0027t really work.\n\nOleg Nesterov argues (likely correctly) that this test is unnecessary in\nthe first place.  However, the minimal fix for now is to at least make\nit work in the presense of TASK_NONINTERACTIVE.  Waiting for consensus\nfrom Roland \u0026 co on potential bigger cleanups.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "eacaa1f5aa4a41a48349f55abcd9258506943e76",
      "tree": "6b0e7e82f0ba4144639bb30eeb82dc8588cfd3f5",
      "parents": [
        "46d7031ecb8a8360b0022abd8014f38cc1197166"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ftp.linux.org.uk",
        "time": "Fri Sep 30 03:26:43 2005 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 30 08:42:24 2005 -0700"
      },
      "message": "[PATCH] cpuset crapectomy\n\nSwitched cpuset_common_file_read() to simple_read_from_buffer(), killed\na bunch of useless (and not quite correct - e.g.  min(size_t,ssize_t))\ncode.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5acbc5cb507e6c381b70093b1081854708e82b16",
      "tree": "504bf5b1a1079fedd424d130589a336745f803e9",
      "parents": [
        "4a8342d233a39ee582e9f7260e12d2f5fd194a05"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Thu Sep 29 14:54:42 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Thu Sep 29 15:20:47 2005 -0700"
      },
      "message": "[PATCH] Fix task state testing properly in do_signal_stop()\n\nAny tests using \u003c TASK_STOPPED or the like are left over from the time\nwhen the TASK_ZOMBIE and TASK_DEAD bits were in the same word, and it\nserved to check for \"stopped or dead\".  I think this one in\ndo_signal_stop is the only such case.  It has been buggy ever since\nexit_state was separated, and isn\u0027t testing the exit_state value.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ab11d1ea281e85895369ef57c5259ad8a432fabb",
      "tree": "684147479c6a8bb2fbed21bdcf12de1dd519c730",
      "parents": [
        "952ecef7a0479049c8abb7c34a688ec2981ceadd",
        "664cceb0093b755739e56572b836a99104ee8a75"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Sep 29 13:13:36 2005 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Thu Sep 29 13:13:36 2005 +1000"
      },
      "message": "Merge by hand from Linus\u0027 tree.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "5134fc15b643dc36eb9aa77e4318b886844a9ac5",
      "tree": "170339651303da0bb530c407300f09d3cd39caa2",
      "parents": [
        "2dd3c1df95fb29e9227f16ccd7d786d129e2b34d"
      ],
      "author": {
        "name": "Paul Jackson",
        "email": "pj@sgi.com",
        "time": "Wed Sep 28 06:42:24 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:58:51 2005 -0700"
      },
      "message": "[PATCH] cpuset read past eof memory leak fix\n\nDon\u0027t leak a page of memory if user reads a cpuset file past eof.\n\nSigned-off-by: KUROSAWA Takahiro \u003ckurosawa@valinux.co.jp\u003e\nSigned-off-by: Paul Jackson \u003cpj@sgi.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0f7347c20c410c300be0db4c132945fd02e54110",
      "tree": "8f8a059eaed60c6d4f98a62f7dde447d4a76b9e3",
      "parents": [
        "f65a4d10c8a4eb9f919cf416e5dcd720b7d20f50"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 27 21:45:43 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:41 2005 -0700"
      },
      "message": "[PATCH] swsusp: avoid problems if there are too many pages to save\n\nThe following patch makes swsusp avoid problems during resume if there are\ntoo many pages to save on suspend.  It adds a constant that allows us to\nverify if we are going to save too many pages and implements the check\n(this is done as early as we can tell that the check will trigger, which is\nin swsusp_alloc()).\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nAcked-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": "f36462f078403c1859a7e58177b28e01b3a179e4",
      "tree": "48cc5b800e8fb6701a18135e015ebe57b4f1be60",
      "parents": [
        "e3306dd5f7eb2e699f36a4a313fca4b48b18d5e1"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Sep 27 21:45:34 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:41 2005 -0700"
      },
      "message": "[PATCH] Ignore trailing whitespace on kernel parameters correctly\n\nDave Jones says:\n\n... if the modprobe.conf has trailing whitespace, modules fail to load\nwith the following helpful message..\n\n\tsnd_intel8x0: Unknown parameter `\u0027\n\nPrevious version truncated last argument.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f2d613799af915da1fd78463ba8ec5086a0d6f92",
      "tree": "dba02c1108bd9e101ce4986c458a2fa2a400eb56",
      "parents": [
        "254b54771cc4c00002f796be65d2885191dca9dc"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 27 21:45:32 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:40 2005 -0700"
      },
      "message": "[PATCH] swsusp: prevent possible memory leak\n\nPrevent swsusp from leaking some memory in case of an error in\nread_pagedir().  It also prevents the BUG_ON() from triggering if there\u0027s\nan error while reading swap.\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": "254b54771cc4c00002f796be65d2885191dca9dc",
      "tree": "bb9503e93d40da3f5a19aa2db45f3e31338e5a63",
      "parents": [
        "249a6771afcdfaca0ac178f63343aff2c4dc2853"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Tue Sep 27 21:45:31 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Wed Sep 28 07:46:40 2005 -0700"
      },
      "message": "[PATCH] swsusp: remove wrong code from data_free\n\nThe following patch removes some wrong code from the data_free() function\nin swsusp.\n\nThis function could only be called if there\u0027s an error while writing the\nsuspend image to swap, so it is not triggered easily.  However, if\ntriggered, it would probably corrupt some memory.\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": "beeca08738c4c4024c81a591812bfe38f8c436c0",
      "tree": "2d668f8529c54562c13ee06f2777d0f145f92c1e",
      "parents": [
        "20c8c2106305729e7d5e06f6c3d390e965a3dd34"
      ],
      "author": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Sep 28 20:29:44 2005 +1000"
      },
      "committer": {
        "name": "Paul Mackerras",
        "email": "paulus@samba.org",
        "time": "Wed Sep 28 20:29:44 2005 +1000"
      },
      "message": "Don\u0027t call a NULL ack function in the generic IRQ code.\n\nSome IRQ controllers don\u0027t need an ack function (e.g. OpenPIC on\nPPC platforms) and for them we\u0027d rather not have the overhead\nof doing an indirect call to a function that does nothing.\n\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n"
    },
    {
      "commit": "188a1eafa03aaa5e5fe6f53e637e704cd2c31c7c",
      "tree": "33d9480c792724c10e4e6fb681fc69c477cf1ff0",
      "parents": [
        "ede1327ea4ca8019ec6df24b3e837def091c26b8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 23 13:22:21 2005 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Fri Sep 23 13:22:21 2005 -0700"
      },
      "message": "Make sure SIGKILL gets proper respect\n\nBhavesh P. Davda \u003cbhavesh@avaya.com\u003e noticed that SIGKILL wouldn\u0027t\nproperly kill a process under just the right cicumstances: a stopped\ntask that already had another signal queued would get the SIGKILL\nqueued onto the shared queue, and there it would remain until SIGCONT.\n\nThis simplifies the signal acceptance logic, and fixes the bug in the\nprocess.\n\nLosely based on an earlier patch by Bhavesh.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "8686bcd0a5f5e3f599ed9f1028ec9e449e7b87e3"
}
