)]}'
{
  "log": [
    {
      "commit": "ed7c0feede39d70092d048ec30f59bb1df69eec6",
      "tree": "67ff89df1a5db2037da34ddf17002b4c7ff218df",
      "parents": [
        "06ba38a9a0f6ceffe70343f684c5a690e3710ef4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:16 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "make queue_delayed_work() friendly to flush_fork()\n\nCurrently typeof(delayed_work-\u003ework.data) is\n\n\t\"struct workqueue_struct\" when the timer is pending\n\n\t\"struct cpu_workqueue_struct\" whe the work is queued\n\nThis makes impossible to use flush_fork(delayed_work-\u003ework) in addition\nto cancel_delayed_work/cancel_rearming_delayed_work, not good.\n\nChange queue_delayed_work/delayed_work_timer_fn to use cwq, not wq. This\ncomplicates (and uglifies) these functions a little bit, but alows us to\nuse flush_fork(dwork) and imho makes the whole code more consistent.\n\nAlso, document the fact that cancel_rearming_delayed_work() doesn\u0027t garantee\nthe completion of work-\u003efunc() upon return.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "06ba38a9a0f6ceffe70343f684c5a690e3710ef4",
      "tree": "500f4d8a3be212ececa80ead44d9658c8b7a4ce1",
      "parents": [
        "c12920d19078eb8fd99560ec232a6e05c6ff1aa8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:15 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "workqueues: shift kthread_bind() from CPU_UP_PREPARE to CPU_ONLINE\n\nCPU_UP_PREPARE binds cwq-\u003ethread to the new CPU.  So CPU_UP_CANCELED tries to\nwake up the task which is bound to the failed CPU.\n\nWith this patch we don\u0027t bind cwq-\u003ethread until CPU becomes online.  The first\nwake_up() after kthread_create() is a bit special, make a simple helper for\nthat.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c12920d19078eb8fd99560ec232a6e05c6ff1aa8",
      "tree": "614d7acbb8393bc3ae16d41c5a7f69a0abb4c9c1",
      "parents": [
        "cce1a1656c9a3fdc6c6c1029b576e4ab6ecaac37"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:14 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "workqueue: make init_workqueues() __init\n\nThe only caller of init_workqueues() is do_basic_setup().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cce1a1656c9a3fdc6c6c1029b576e4ab6ecaac37",
      "tree": "016a79e653156e32766f17bd801ffd0e4dd3a79f",
      "parents": [
        "b1f4ec172f75bc2f5cc4f4be69b5587660a955d2"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:13 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "workqueue: introduce workqueue_struct-\u003esinglethread\n\nAdd explicit workqueue_struct-\u003esinglethread flag.  This lessens .text a\nlittle, but most importantly this allows us to manipulate wq-\u003elist without\nchangine the meaning of is_single_threaded().\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b1f4ec172f75bc2f5cc4f4be69b5587660a955d2",
      "tree": "41a96f3996246d1f8667b9b84705a800f03d7c49",
      "parents": [
        "dfb4b82e1c631b1a6057e77212996a890aa515b7"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:12 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "workqueue: introduce cpu_singlethread_map\n\nThe code like\n\n\tif (is_single_threaded(wq))\n\t\tdo_something(singlethread_cpu);\n\telse {\n\t\tfor_each_cpu_mask(cpu, cpu_populated_map)\n\t\t\tdo_something(cpu);\n\t}\n\nlooks very annoying. We can add \"static cpumask_t cpu_singlethread_map\" and\nsimplify the code. Lessens .text a bit, and imho makes the code more readable.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dfb4b82e1c631b1a6057e77212996a890aa515b7",
      "tree": "9e2fcd9ff6bd990740b3f0a48fc4194f2e64d89f",
      "parents": [
        "f293ea92007419e4f9c52db0cf57af17f45b9f94"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:11 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "workqueue: make cancel_rearming_delayed_workqueue() work on idle dwork\n\ncancel_rearming_delayed_workqueue(dwork) will hang forever if dwork was not\nscheduled, because in that case cancel_delayed_work()-\u003edel_timer_sync() never\nreturns true.\n\nI don\u0027t know if there are any callers which may have problems, but this is not\nso convenient, and the fix is very simple.\n\nQ: looks like we don\u0027t need \"struct workqueue_struct *wq\" parameter.  If the\ntimer was aborted successfully, get_wq_data() \u003d\u003d wq.  Is it worth to add the\nnew function?\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f293ea92007419e4f9c52db0cf57af17f45b9f94",
      "tree": "829d06499c1d9004ca530e5f23de43df27d3baa4",
      "parents": [
        "7097a87afe937a5879528d52880c2d95f089e96c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "workqueue: don\u0027t save interrupts in run_workqueue()\n\nwork-\u003efunc() may sleep, it\u0027s a bug to call run_workqueue() with irqs disabled.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7097a87afe937a5879528d52880c2d95f089e96c",
      "tree": "f06090c0f6ed327ee2894deb8ac7c588ab55bf4e",
      "parents": [
        "3af24433efac62f451bfdb1cf1edb7181fb73645"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:10 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "workqueue: kill run_scheduled_work()\n\nBecause it has no callers.\n\nActually, I think the whole idea of run_scheduled_work() was not right, not\ngood to mix \"unqueue this work and execute its -\u003efunc()\" in one function.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3af24433efac62f451bfdb1cf1edb7181fb73645",
      "tree": "330353b50a88615ef6e99440e8412667ae0a855e",
      "parents": [
        "36aa9dfc39bf473780439f5629c30f59d677e793"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "workqueue: don\u0027t migrate pending works from the dead CPU\n\nCurrently CPU_DEAD uses kthread_stop() to stop cwq-\u003ethread and then\ntransfers cwq-\u003eworklist to another CPU.  However, it is very unlikely that\nworker_thread() will notice kthread_should_stop() before flushing\ncwq-\u003eworklist.  It is only possible if worker_thread() was preempted after\nrun_workqueue(cwq), a new work_struct was added, and CPU_DEAD happened\nbefore cwq-\u003ethread has a chance to run.\n\nThis means that take_over_work() mostly adds unneeded complications.  Note\nalso that kthread_stop() is not good per se, wake_up_process() may confuse\nwork-\u003efunc() if it sleeps waiting for some event.\n\nRemove take_over_work() and migrate_sequence complications.  CPU_DEAD sets\nthe cwq-\u003eshould_stop flag (introduced by this patch) and waits for\ncwq-\u003ethread to flush cwq-\u003eworklist and exit.  Because the dead CPU is not\non cpu_online_map, no more works can be added to that cwq.\n\ncpu_populated_map was introduced to optimize for_each_possible_cpu(), it is\nnot strictly needed, and it is more a documentation in fact.\n\nSaves 418 bytes.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: \"Pallipadi, Venkatesh\" \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Gautham shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "36aa9dfc39bf473780439f5629c30f59d677e793",
      "tree": "301d615747210733a271c376fc036a7480594207",
      "parents": [
        "d721304dce0ced0b3b0366996cc02929669708a8"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "workqueue: don\u0027t clear cwq-\u003ethread until it exits\n\nPointed out by Srivatsa Vaddagiri.\n\ncleanup_workqueue_thread() sets cwq-\u003ethread \u003d NULL and does kthread_stop().\nThis breaks the \"if (cwq-\u003ethread \u003d\u003d current)\" logic in flush_cpu_workqueue()\nand leads to deadlock.\n\nKill the thead first, then clear cwq-\u003ethread. workqueue_mutex protects us\nfrom create_workqueue_thread() so we don\u0027t need cwq-\u003elock.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: \"Pallipadi, Venkatesh\" \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Gautham shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d721304dce0ced0b3b0366996cc02929669708a8",
      "tree": "a7c41390d082e4d2c70b185e508368293cf68b92",
      "parents": [
        "319c2a986eb45989690c955d9667b814ef0ed56f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:52 2007 -0700"
      },
      "message": "workqueue: fix flush_workqueue() vs CPU_DEAD race\n\nMany thanks to Srivatsa Vaddagiri for the helpful discussion and for spotting\nthe bug in my previous attempt.\n\nwork-\u003efunc() (and thus flush_workqueue()) must not use workqueue_mutex,\nthis leads to deadlock when CPU_DEAD does kthread_stop(). However without\nthis mutex held we can\u0027t detect CPU_DEAD in progress, which can move pending\nworks to another CPU while the dead one is not on cpu_online_map.\n\nChange flush_workqueue() to use for_each_possible_cpu(). This means that\nflush_cpu_workqueue() may hit CPU which is already dead. However in that\ncase\n\n\t!list_empty(\u0026cwq-\u003eworklist) || cwq-\u003ecurrent_work !\u003d NULL\n\nmeans that CPU_DEAD in progress, it will do kthread_stop() + take_over_work()\nso we can proceed and insert a barrier. We hold cwq-\u003elock, so we are safe.\n\nAlso, add migrate_sequence incremented by take_over_work() under cwq-\u003elock.\nIf take_over_work() happened before we checked this CPU, we should see the\nnew value after spin_unlock().\n\nFurther possible changes:\n\n\tremove CPU_DEAD handling (along with take_over_work, migrate_sequence)\n\tfrom workqueue.c. CPU_DEAD just sets cwq-\u003eplease_exit_after_flush flag.\n\n\tCPU_UP_PREPARE-\u003ecreate_workqueue_thread() clears this flag, and creates\n\tthe new thread if cwq-\u003ethread \u003d\u003d NULL.\n\nThis way the workqueue/cpu-hotplug interaction is almost zero, workqueue_mutex\njust protects \"workqueues\" list, CPU_LOCK_ACQUIRE/CPU_LOCK_RELEASE go away.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: \"Pallipadi, Venkatesh\" \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Gautham shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "319c2a986eb45989690c955d9667b814ef0ed56f",
      "tree": "1408756a141247f703b2866886d9707006ab33a9",
      "parents": [
        "38c3bd96a0a7d375e12f173c34fbebf9f153cb56"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:34:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "workqueue: fix freezeable workqueues implementation\n\nCurrently -\u003efreezeable is per-cpu, this is wrong. CPU_UP_PREPARE creates\ncwq-\u003ethread which is not freezeable. Move -\u003efreezeable to workqueue_struct.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: \"Pallipadi, Venkatesh\" \u003cvenkatesh.pallipadi@intel.com\u003e\nCc: Gautham shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38c3bd96a0a7d375e12f173c34fbebf9f153cb56",
      "tree": "4c96cfe17f7578eb182471c8ad17653837abc219",
      "parents": [
        "e7407dcc69e077ac34a527842db916abfbc458df"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed May 09 02:34:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "slab: use CPU_LOCK_[ACQUIRE|RELEASE]\n\nLooks like this was forgotten when CPU_LOCK_[ACQUIRE|RELEASE] was\nintroduced.\n\nCc: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Gautham Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7407dcc69e077ac34a527842db916abfbc458df",
      "tree": "138b24bceee828dc256bb81f2b592926be9f1515",
      "parents": [
        "5be9361cdff17fc76fa0c3e262ead94158555f16"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Wed May 09 02:34:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "call cpu_chain with CPU_DOWN_FAILED if CPU_DOWN_PREPARE failed\n\nThis makes cpu hotplug symmetrical: if CPU_UP_PREPARE fails we get\nCPU_UP_CANCELED, so we can undo what ever happened on PREPARE.  The same\nshould happen for CPU_DOWN_PREPARE.\n\n[akpm@linux-foundation.org: fix for reduce-size-of-task_struct-on-64-bit-machines]\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Gautham Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5be9361cdff17fc76fa0c3e262ead94158555f16",
      "tree": "c0fd48bc0a39a2ba8a71677467f3d4e164b40f65",
      "parents": [
        "baaca49f415b25fdbe2a8f3c22b39929e450fbfd"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed May 09 02:34:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "Eliminate lock_cpu_hotplug in kernel/schedc\n\nEliminate lock_cpu_hotplug from kernel/sched.c and use sched_hotcpu_mutex\ninstead to postpone a hotplug event.\n\nIn the migration_call hotcpu callback function, take sched_hotcpu_mutex\nwhile handling the event CPU_LOCK_ACQUIRE and release it while handling\nCPU_LOCK_RELEASE event.\n\n[akpm@linux-foundation.org: fix deadlock]\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "baaca49f415b25fdbe2a8f3c22b39929e450fbfd",
      "tree": "b152b4235fc07fe56619bd3a2e975e5ca90b8c5b",
      "parents": [
        "6f7cc11aa6c7d5002e16096c7590944daece70ed"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed May 09 02:34:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "Define and use new events,CPU_LOCK_ACQUIRE and CPU_LOCK_RELEASE\n\nThis is an attempt to provide an alternate mechanism for postponing\na hotplug event instead of using a global mechanism like lock_cpu_hotplug.\n\nThe proposal is to add two new events namely CPU_LOCK_ACQUIRE and\nCPU_LOCK_RELEASE. The notification for these two events would be sent\nout before and after a cpu_hotplug event respectively.\n\nDuring the CPU_LOCK_ACQUIRE event, a cpu-hotplug-aware subsystem is\nsupposed to acquire any per-subsystem hotcpu mutex ( Eg. workqueue_mutex\nin kernel/workqueue.c ).\n\nDuring the CPU_LOCK_RELEASE release event the cpu-hotplug-aware subsystem\nis supposed to release the per-subsystem hotcpu mutex.\n\nThe reasons for defining new events as opposed to reusing the existing events\nlike CPU_UP_PREPARE/CPU_UP_FAILED/CPU_ONLINE for locking/unlocking of\nper-subsystem hotcpu mutexes are as follow:\n\n\t- CPU_LOCK_ACQUIRE: All hotcpu mutexes are taken before subsystems\n\tstart handling pre-hotplug events like CPU_UP_PREPARE/CPU_DOWN_PREPARE\n\tetc, thus ensuring a clean handling of these events.\n\n\t- CPU_LOCK_RELEASE: The hotcpu mutexes will be released only after\n\tall subsystems have handled post-hotplug events like CPU_DOWN_FAILED,\n\tCPU_DEAD,CPU_ONLINE etc thereby ensuring that there are no subsequent\n\tclashes amongst the interdependent subsystems after a cpu hotplugs.\n\nThis patch also uses __raw_notifier_call chain in _cpu_up to take care\nof the dependency between the two consequetive calls to\nraw_notifier_call_chain.\n\n[akpm@linux-foundation.org: fix a bug]\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f7cc11aa6c7d5002e16096c7590944daece70ed",
      "tree": "68a11e4b67189c44ac0f3ab579e52e134d479cf5",
      "parents": [
        "7c9cb38302e78d24e37f7d8a2ea7eed4ae5f2fa7"
      ],
      "author": {
        "name": "Gautham R Shenoy",
        "email": "ego@in.ibm.com",
        "time": "Wed May 09 02:34:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "Extend notifier_call_chain to count nr_calls made\n\nSince 2.6.18-something, the community has been bugged by the problem to\nprovide a clean and a stable mechanism to postpone a cpu-hotplug event as\nlock_cpu_hotplug was badly broken.\n\nThis is another proposal towards solving that problem.  This one is along the\nlines of the solution provided in kernel/workqueue.c\n\nInstead of having a global mechanism like lock_cpu_hotplug, we allow the\nsubsytems to define their own per-subsystem hot cpu mutexes.  These would be\ntaken(released) where ever we are currently calling\nlock_cpu_hotplug(unlock_cpu_hotplug).\n\nAlso, in the per-subsystem hotcpu callback function,we take this mutex before\nwe handle any pre-cpu-hotplug events and release it once we finish handling\nthe post-cpu-hotplug events.  A standard means for doing this has been\nprovided in [PATCH 2/4] and demonstrated in [PATCH 3/4].\n\nThe ordering of these per-subsystem mutexes might still prove to be a\nproblem, but hopefully lockdep should help us get out of that muddle.\n\nThe patch set to be applied against linux-2.6.19-rc5 is as follows:\n\n[PATCH 1/4] :\tExtend notifier_call_chain with an option to specify the\n\t\tnumber of notifications to be sent and also count the\n\t\tnumber of notifications actually sent.\n\n[PATCH 2/4] :\tDefine events CPU_LOCK_ACQUIRE and CPU_LOCK_RELEASE\n\t\tand send out notifications for these in _cpu_up and\n\t\t_cpu_down. This would help us standardise the acquire and\n\t\trelease of the subsystem locks in the hotcpu\n\t\tcallback functions of these subsystems.\n\n[PATCH 3/4] :\tEliminate lock_cpu_hotplug from kernel/sched.c.\n\n[PATCH 4/4] :\tIn workqueue_cpu_callback function, acquire(release) the\n\t\tworkqueue_mutex while handling\n\t\tCPU_LOCK_ACQUIRE(CPU_LOCK_RELEASE).\n\nIf the per-subsystem-locking approach survives the test of time, we can expect\na slow phasing out of lock_cpu_hotplug, which has not yet been eliminated in\nthese patches :)\n\nThis patch:\n\nProvide notifier_call_chain with an option to call only a specified number of\nnotifiers and also record the number of call to notifiers made.\n\nThe need for this enhancement was identified in the post entitled\n\"Slab - Eliminate lock_cpu_hotplug from slab\"\n(http://lkml.org/lkml/2006/10/28/92) by Ravikiran G Thirumalai and\nAndrew Morton.\n\nThis patch adds two additional parameters to notifier_call_chain API namely\n - int nr_to_calls : Number of notifier_functions to be called.\n \t\t     The don\u0027t care value is -1.\n\n - unsigned int *nr_calls : Records the total number of notifier_funtions\n\t\t\t    called by notifier_call_chain. The don\u0027t care\n\t\t\t    value is NULL.\n\n[michal.k.k.piotrowski@gmail.com: build fix]\nCredit: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Gautham R Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Michal Piotrowski \u003cmichal.k.k.piotrowski@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7c9cb38302e78d24e37f7d8a2ea7eed4ae5f2fa7",
      "tree": "b65be3c42762e85f3611fe5298d203f7f901da02",
      "parents": [
        "d0758bc334780d70266c1d1b974ed26f740a0819"
      ],
      "author": {
        "name": "Tom Zanussi",
        "email": "zanussi@comcast.net",
        "time": "Wed May 09 02:34:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "relay: use plain timer instead of delayed work\n\nrelay doesn\u0027t need to use schedule_delayed_work() for waking readers\nwhen a simple timer will do.\n\nSigned-off-by: Tom Zanussi \u003czanussi@comcast.net\u003e\nCc: Satyam Sharma \u003csatyam.sharma@gmail.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d0758bc334780d70266c1d1b974ed26f740a0819",
      "tree": "f60114dcee62542f5ecc3ce6b540bbd5b99f0c8e",
      "parents": [
        "67ac58edf771b10f8e89bf9fe1ccf6c9b92ce063"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed May 09 02:34:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "phy: use flush_work_keventd()\n\n(akpm: bypassed maintainers, sorry.  There are other patches which depend on\nthis)\n\nCc: \"Maciej W. Rozycki\" \u003cmacro@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67ac58edf771b10f8e89bf9fe1ccf6c9b92ce063",
      "tree": "5bfc140eb9781cff6dc4a9340ae3c398beaa68bb",
      "parents": [
        "d9ef8b92887c35f113cb749270530f87961f7a0a"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed May 09 02:33:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "libata: use flush_work()\n\n(akpm: bypassed maintainers, sorry.  There are other patches which depend on\nthis)\n\nCc: \"Maciej W. Rozycki\" \u003cmacro@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Tejun Heo \u003chtejun@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9ef8b92887c35f113cb749270530f87961f7a0a",
      "tree": "3304f44495736878874dbb41a516ab074bc656ea",
      "parents": [
        "2b3cb2e778811a1df99e37fd7c359837501ab103"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed May 09 02:33:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "e1000: use flush_work_keventd()\n\nSwitch e1000 over to flush_work_keventd().  This probably fixes a netdev-close\nversus linkwatch rtnl_lock() deadlock which nobody knew about.\n\n(akpm: bypassed maintainers, sorry.  There are other patches which depend on\nthis)\n\nCc: \"Maciej W. Rozycki\" \u003cmacro@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nAcked-by: Auke Kok \u003cauke-jan.h.kok@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2b3cb2e778811a1df99e37fd7c359837501ab103",
      "tree": "736b6e149fababf75b1bd0d94a316b790e7f59ae",
      "parents": [
        "19a75d83ffeab004cfcfac64024ad3997bac7220"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed May 09 02:33:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "tg3: use flush_work_keventd()\n\nConvert tg3 over to flush_work_keventd().  Remove nasty now-unneeded deadlock\navoidance logic.\n\n(akpm: bypassed maintainers, sorry.  There are other patches which depend on\nthis)\n\nCc: \"Maciej W. Rozycki\" \u003cmacro@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Michael Chan \u003cmchan@broadcom.com\u003e\nCc: Jeff Garzik \u003cjeff@garzik.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19a75d83ffeab004cfcfac64024ad3997bac7220",
      "tree": "1a4c3d299527989cde6d87e18dd189cfb35749a8",
      "parents": [
        "a9df62c7585e6caa1e7d2425b2b14460ec3afc20"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed May 09 02:33:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "kblockd: use flush_work\n\nSwitch the kblockd flushing from a global flush to a more specific\nflush_work().\n\n(akpm: bypassed maintainers, sorry.  There are other patches which depend on\nthis)\n\nCc: \"Maciej W. Rozycki\" \u003cmacro@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Jens Axboe \u003caxboe@suse.de\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9df62c7585e6caa1e7d2425b2b14460ec3afc20",
      "tree": "f3d291e208ca09cb0c185ed96242bb977e4e60e3",
      "parents": [
        "83c22520c51bf67529367e8237f95c03fe44e2da"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed May 09 02:33:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "aio: use flush_work()\n\nMigrate AIO over to use flush_work().\n\nCc: \"Maciej W. Rozycki\" \u003cmacro@linux-mips.org\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nCc: Zach Brown \u003czach.brown@oracle.com\u003e\nCc: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "83c22520c51bf67529367e8237f95c03fe44e2da",
      "tree": "d9798e4f60551bdad0f7d8f1f1d5c69d7c4214c1",
      "parents": [
        "edab2516a6c1752e8e5e3d55727cabf12346e5df"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:33:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "flush_cpu_workqueue: don\u0027t flush an empty -\u003eworklist\n\nNow when we have -\u003ecurrent_work we can avoid adding a barrier and waiting\nfor its completition when cwq\u0027s queue is empty.\n\nNote: this change is also useful if we change flush_workqueue() to also\ncheck the dead CPUs.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Gautham Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "edab2516a6c1752e8e5e3d55727cabf12346e5df",
      "tree": "235f0e8dd26341a650cc3329e4fc54b3b857aa07",
      "parents": [
        "b89deed32ccc96098bd6bc953c64bba6b847774f"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed May 09 02:33:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:51 2007 -0700"
      },
      "message": "flush_workqueue(): use preempt_disable to hold off cpu hotplug\n\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Gautham Shenoy \u003cego@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b89deed32ccc96098bd6bc953c64bba6b847774f",
      "tree": "7a5963bbc5203cfdb39bf2fb1204764df39c71db",
      "parents": [
        "fc2e4d70410546307344821eed6fd23803a45286"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:33:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "implement flush_work()\n\nA basic problem with flush_scheduled_work() is that it blocks behind _all_\npresently-queued works, rather than just the work whcih the caller wants to\nflush.  If the caller holds some lock, and if one of the queued work happens\nto want that lock as well then accidental deadlocks can occur.\n\nOne example of this is the phy layer: it wants to flush work while holding\nrtnl_lock().  But if a linkwatch event happens to be queued, the phy code will\ndeadlock because the linkwatch callback function takes rtnl_lock.\n\nSo we implement a new function which will flush a *single* work - just the one\nwhich the caller wants to free up.  Thus we avoid the accidental deadlocks\nwhich can arise from unrelated subsystems\u0027 callbacks taking shared locks.\n\nflush_work() non-blockingly dequeues the work_struct which we want to kill,\nthen it waits for its handler to complete on all CPUs.\n\nAdd -\u003ecurrent_work to the \"struct cpu_workqueue_struct\", it points to\ncurrently running \"struct work_struct\". When flush_work(work) detects\n-\u003ecurrent_work \u003d\u003d work, it inserts a barrier at the _head_ of -\u003eworklist\n(and thus right _after_ that work) and waits for completition. This means\nthat the next work fired on that CPU will be this barrier, or another\nbarrier queued by concurrent flush_work(), so the caller of flush_work()\nwill be woken before any \"regular\" work has a chance to run.\n\nWhen wait_on_work() unlocks workqueue_mutex (or whatever we choose to protect\nagainst CPU hotplug), CPU may go away. But in that case take_over_work() will\nmove a barrier we queued to another CPU, it will be fired sometime, and\nwait_on_work() will be woken.\n\nActually, we are doing cleanup_workqueue_thread()-\u003ekthread_stop() before\ntake_over_work(), so cwq-\u003ethread should complete its -\u003eworklist (and thus\nthe barrier), because currently we don\u0027t check kthread_should_stop() in\nrun_workqueue(). But even if we did, everything should be ok.\n\n[akpm@osdl.org: cleanup]\n[akpm@osdl.org: add flush_work_keventd() wrapper]\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fc2e4d70410546307344821eed6fd23803a45286",
      "tree": "b8253b7e42245c9b21b959a77c8070ddcbc9359e",
      "parents": [
        "e18f3ffb9c3ddfc1b4ad8f38f5f2acae8c16f0c9"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Wed May 09 02:33:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "reimplement flush_workqueue()\n\nRemove -\u003eremove_sequence, -\u003einsert_sequence, and -\u003ework_done from struct\ncpu_workqueue_struct.  To implement flush_workqueue() we can queue a\nbarrier work on each CPU and wait for its completition.\n\nThe barrier is queued under workqueue_mutex to ensure that per cpu\nwq-\u003ecpu_wq is alive, we drop this mutex before going to sleep.  If CPU goes\ndown while we are waiting for completition, take_over_work() will move the\nbarrier on another CPU, and the handler will wake up us eventually.\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e18f3ffb9c3ddfc1b4ad8f38f5f2acae8c16f0c9",
      "tree": "6a1ccc7a10ccc25dd9b7e09fefa3db96e211e1ee",
      "parents": [
        "a1e3cf418fc1e6b13bdc472ffb60bd02735e41a6"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@osdl.org",
        "time": "Wed May 09 02:33:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "schedule_on_each_cpu(): use preempt_disable()\n\nWe take workqueue_mutex in there to keep CPU hotplug away.  But\npreempt_disable() will suffice for that.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1e3cf418fc1e6b13bdc472ffb60bd02735e41a6",
      "tree": "c4b936f602bf6716e23f6fb8ee9b1e0b59233411",
      "parents": [
        "e7498281d3caec1141d7542ec494c4e4a1d404c9"
      ],
      "author": {
        "name": "Haavard Skinnemoen",
        "email": "hskinnemoen@atmel.com",
        "time": "Wed May 09 02:33:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "atmel_spi: remove unnecessary (and wrong) #ifdefs\n\nNow that the cpu_is_xxx() macros are available both on AVR32 and AT91, we can\nremove a couple of #ifdefs from this driver.  One of them is actually wrong --\nnew_1 should be set on AVR32 but isn\u0027t.  This causes the bus clock to run at\ntwice the speed it is configured to.\n\nSigned-off-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nAcked-by: Andrew Victor \u003candrew@sanpeople.com\u003e\nCc: Nicolas Ferre \u003cnicolas.ferre@rfo.atmel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7498281d3caec1141d7542ec494c4e4a1d404c9",
      "tree": "fcf4d2d82cb52211a4a1c7f7c6965d4996b99ac4",
      "parents": [
        "31143d5d515ece617ffccb7df5ff75e4d1dfa120"
      ],
      "author": {
        "name": "Haavard Skinnemoen",
        "email": "hskinnemoen@atmel.com",
        "time": "Wed May 09 02:33:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "Use common cpu_is_xxx() macros on AT91 and AVR32\n\nSeveral drivers shared between AT91 and AVR32 chips use cpu_is_xxx()\nto handle CPU-specific differences. Currently, such code needs to be\ninside #ifdef CONFIG_ARCH_AT91 because the macros don\u0027t exist on AVR32.\n\nBy defining the same macros on both AT91 and AVR32, these #ifdefs can\nbe eliminated. Since the macros will evaluate to a constant value for\nCPUs that aren\u0027t supported by the current architecture, any code that\nis only needed on AT91 will be optimized away on AVR32 and vice versa.\n\nSigned-off-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nCc: David Brownell \u003cdavid-b@pacbell.net\u003e\nAcked-by: Andrew Victor \u003candrew@sanpeople.com\u003e\nCc: Nicolas Ferre \u003cnicolas.ferre@rfo.atmel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31143d5d515ece617ffccb7df5ff75e4d1dfa120",
      "tree": "db28c26930f6a26db3e85da90f6668061425463a",
      "parents": [
        "416351f28d2b31d15ff73e9aff699b2163704c95"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed May 09 02:33:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "AFS: implement basic file write support\n\nImplement support for writing to regular AFS files, including:\n\n (1) write\n\n (2) truncate\n\n (3) fsync, fdatasync\n\n (4) chmod, chown, chgrp, utime.\n\nAFS writeback attempts to batch writes into as chunks as large as it can manage\nup to the point that it writes back 65535 pages in one chunk or it meets a\nlocked page.\n\nFurthermore, if a page has been written to using a particular key, then should\nanother write to that page use some other key, the first write will be flushed\nbefore the second is allowed to take place.  If the first write fails due to a\nsecurity error, then the page will be scrapped and reread before the second\nwrite takes place.\n\nIf a page is dirty and the callback on it is broken by the server, then the\ndirty data is not discarded (same behaviour as NFS).\n\nShared-writable mappings are not supported by this patch.\n\n[akpm@linux-foundation.org: fix a bunch of warnings]\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "416351f28d2b31d15ff73e9aff699b2163704c95",
      "tree": "4b43838415b2cb95dfc66f9bc5fdb36b0f245e6c",
      "parents": [
        "ef71c15c46a053818f7e69098ebb052b31ffa56b"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed May 09 02:33:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "AFS: AFS fixups\n\nMake some miscellaneous changes to the AFS filesystem:\n\n (1) Assert RCU barriers on module exit to make sure RCU has finished with\n     callbacks in this module.\n\n (2) Correctly handle the AFS server returning a zero-length read.\n\n (3) Split out data zapping calls into one function (afs_zap_data).\n\n (4) Rename some afs_file_*() functions to afs_*() where they apply to\n     non-regular files too.\n\n (5) Be consistent about the presentation of volume ID:vnode ID in debugging\n     output.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ef71c15c46a053818f7e69098ebb052b31ffa56b",
      "tree": "1136f1280e2a570a5c29486aef408473160c76b5",
      "parents": [
        "9b04bd27564cfd7224e0135ba37df778f1d490bf"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed May 09 02:33:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "AFS: export a couple of core functions for AFS write support\n\nExport a couple of core functions for AFS write support to use:\n\n\tfind_get_pages_contig()\n\tfind_get_pages_tag()\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9b04bd27564cfd7224e0135ba37df778f1d490bf",
      "tree": "fd62f8c1fe7f17a9e92796412c1657b83ebe3965",
      "parents": [
        "0366299bd2de283091f4394c0f446e58b5f94815"
      ],
      "author": {
        "name": "David Miller",
        "email": "davem@davemloft.net",
        "time": "Wed May 09 02:33:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "Fix printk format warnings in timer_list.c\n\nu64 and s64 are not necessarily \u0027long long\u0027 on some 64-bit\nplatforms, so explicit the type to kill the compiler warnings.\n\nAlso consistently use \u0027%Lu\u0027 which is unsigned.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0366299bd2de283091f4394c0f446e58b5f94815",
      "tree": "731f06faa6ed4b93da3c45a78a13683e55c9503b",
      "parents": [
        "66effdc6a6a79c11f1c0d607d0de299108d69507"
      ],
      "author": {
        "name": "Borislav Petkov",
        "email": "bbpetkov@yahoo.de",
        "time": "Wed May 09 02:33:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "kernel-doc: small kernel-doc optimization\n\nGet the kernel version string only once from the environment, thus slightly\nspeeding up kernel-doc.\n\nSigned-off-by: Borislav Petkov \u003cbbpetkov@yahoo.de\u003e\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "66effdc6a6a79c11f1c0d607d0de299108d69507",
      "tree": "359abb757e01eaae92bc1cd94c908bc4c7807ca7",
      "parents": [
        "2dfdd266b9a2f2d93a3fdbee89969f6ea9ec5377"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "randy.dunlap@oracle.com",
        "time": "Wed May 09 02:33:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "doc: what a patch series is\n\nIt seems that we need to clarify that a patch series is a series of related\npatches rather than \"here are some of my patches as multiple (numbered)\nemails.\"\n\nSigned-off-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2dfdd266b9a2f2d93a3fdbee89969f6ea9ec5377",
      "tree": "a3dd643401a5fa63f60759c89fd00a4ef175cda5",
      "parents": [
        "62ce39c531860aee6c12128c629b0a82f656a306"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Wed May 09 02:33:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:50 2007 -0700"
      },
      "message": "fs: use path_walk in do_path_lookup\n\nSince path_walk sets the total_link_count to 0 and calls link_path_walk, we\ncan just call path_walk directly.\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "62ce39c531860aee6c12128c629b0a82f656a306",
      "tree": "cfa57bde671ac341f46b8844a159b4b7b06a247e",
      "parents": [
        "35c35d1afa8f9afe01d922ff9668a14c5d879b02"
      ],
      "author": {
        "name": "Josef \u0027Jeff\u0027 Sipek",
        "email": "jsipek@cs.sunysb.edu",
        "time": "Wed May 09 02:33:41 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "fs: fix indentation in do_path_lookup\n\nSigned-off-by: Josef \u0027Jeff\u0027 Sipek \u003cjsipek@cs.sunysb.edu\u003e\nAcked-by: Christoph Hellwig \u003chch@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35c35d1afa8f9afe01d922ff9668a14c5d879b02",
      "tree": "5134d8447f5d25e8c8c32c7ed6f4cb0cd97c9da8",
      "parents": [
        "18d8362d517cb2bd97761294924fe6c2a6ee5e3c"
      ],
      "author": {
        "name": "Daniel Walker",
        "email": "dwalker@mvista.com",
        "time": "Wed May 09 02:33:40 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "clocksource: spelling error in watchdog code\n\nThere\u0027s more that need fixing, and fix my own subject spelling error too.\n\nSigned-off-by: Daniel Walker \u003cdwalker@mvista.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "18d8362d517cb2bd97761294924fe6c2a6ee5e3c",
      "tree": "fff49e54cb725ba33ddf4453fb866838ad6ceeca",
      "parents": [
        "ae030e435f5400cff77c52506a8d3d7278f0947c"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed May 09 02:33:39 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "mutex_lock_interruptible(): add __must_check\n\nIt\u0027s not sane to use mutex_lock_interruptible() and to then ignore the result.\n\nDitto down_interruptible(), but I\u0027m lazy.\n\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ae030e435f5400cff77c52506a8d3d7278f0947c",
      "tree": "73520671c56d8a54dff2a4969201251815ca93de",
      "parents": [
        "55c0d1f83e481dd6c77f52f7dcfeb043b8b740fa"
      ],
      "author": {
        "name": "Paul Fulghum",
        "email": "paulkf@microgate.com",
        "time": "Wed May 09 02:33:38 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "tty_set_ldisc() receive_room fix\n\nFix tty_set_ldisc in tty_io.c so that tty-\u003ereceive_room is only cleared if\nactually changing line disciplines.\n\nWithout this fix a problem occurs when requesting the line discipline to\nchange to the same line discipline.  In this case tty-\u003ereceive_room is\ncleared but ldisc-\u003eopen() is not called to set tty-\u003ereceive_room back to a\nsane value.  The result is that tty-\u003ereceive_room is stuck at 0 preventing\nthe tty flip buffer from passing receive data to the line discipline.\n\nFor example: a switch from N_TTY to N_TTY followed by a select() call for\nread input results in data never being received because tty-\u003ereceive_room\nis stuck at zero.\n\nA switch from N_TTY to N_TTY followed by a read() call works because the\nread() call itself sets tty-\u003ereceive_room correctly (but select does not).\n\nPreviously (\u003c 2.6.18) this was not a problem because the tty flip buffer\npushed data to the line discipline without regard for tty-\u003ereceive room.\n\nSigned-off-by: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nAcked-by: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "55c0d1f83e481dd6c77f52f7dcfeb043b8b740fa",
      "tree": "5d3240d565c158712345094362d40c3973483a7f",
      "parents": [
        "84963048ca8093e0aa71ac90c2a5fe7af5f617c3"
      ],
      "author": {
        "name": "Roland McGrath",
        "email": "roland@redhat.com",
        "time": "Wed May 09 02:33:37 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "Move sig_kernel_* et al macros to linux/signal.h\n\nThis patch moves the sig_kernel_* and related macros from kernel/signal.c\nto linux/signal.h, and cleans them up slightly.  I need the sig_kernel_*\nmacros for default signal behavior in the utrace code, and want to avoid\nduplication or overhead to share the knowledge.\n\nSigned-off-by: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "84963048ca8093e0aa71ac90c2a5fe7af5f617c3",
      "tree": "336e616e2e51bcf74010d33dc331484f30676fca",
      "parents": [
        "b8cb34481edfee6692c83d3b283e29820e840280"
      ],
      "author": {
        "name": "WANG Cong",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Wed May 09 02:33:36 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "nbd: check the return value of sysfs_create_file\n\n[akpm@linux-foundation.org: fix it]\nSigned-off-by: WANG Cong \u003cxiyou.wangcong@gmail.com\u003e\nCc: Paul Clements \u003cpaul.clements@steeleye.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b8cb34481edfee6692c83d3b283e29820e840280",
      "tree": "86fde81c70394960ed0a2b374a50f37fa3278f2b",
      "parents": [
        "4d3556329926bde7c1e80cd6c650525326652ea4"
      ],
      "author": {
        "name": "Olof Johansson",
        "email": "olof@lixom.net",
        "time": "Wed May 09 02:33:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "pasemi: hardware rng driver\n\nDriver for the on-chip hardware random number generator on PA Semi\nPA6T-1682M.\n\nSigned-off-by: Egor Martovetsky \u003cegor@pasemi.com\u003e\nSigned-off-by: Olof Johansson \u003colof@lixom.net\u003e\nSigned-off-by: Michael Buesch \u003cmb@bu3sch.de\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Kumar Gala \u003cgalak@gate.crashing.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4d3556329926bde7c1e80cd6c650525326652ea4",
      "tree": "1ffc2fff128fc2440e100b7d6978492d8b93ced2",
      "parents": [
        "8a63011275e1a0ec9389e8c7d9b08caab8957ca0"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "rdreier@cisco.com",
        "time": "Wed May 09 02:33:35 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "Add info about whitespace to SubmitChecklist\n\nSigned-off-by: Roland Dreier \u003crolandd@cisco.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8a63011275e1a0ec9389e8c7d9b08caab8957ca0",
      "tree": "ae631cb1206c60a8b375384a880cabf7dc156d00",
      "parents": [
        "85badbdf5120d246ce2bb3f1a7689a805f9c9006"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Wed May 09 02:33:34 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "pretend cpuset has some form of hugetlb page reservation\n\nWhen cpuset is configured, it breaks the strict hugetlb page reservation as\nthe accounting is done on a global variable.  Such reservation is\ncompletely rubbish in the presence of cpuset because the reservation is not\nchecked against page availability for the current cpuset.  Application can\nstill potentially OOM\u0027ed by kernel with lack of free htlb page in cpuset\nthat the task is in.  Attempt to enforce strict accounting with cpuset is\nalmost impossible (or too ugly) because cpuset is too fluid that task or\nmemory node can be dynamically moved between cpusets.\n\nThe change of semantics for shared hugetlb mapping with cpuset is\nundesirable.  However, in order to preserve some of the semantics, we fall\nback to check against current free page availability as a best attempt and\nhopefully to minimize the impact of changing semantics that cpuset has on\nhugetlb.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Christoph Lameter \u003cclameter@engr.sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "85badbdf5120d246ce2bb3f1a7689a805f9c9006",
      "tree": "0c406f24c1533dc8dcaf322751b05e7b8bcd5d23",
      "parents": [
        "92f4c701aad794de9e4cf7341d0a486aed027c46"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 09 02:33:33 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "use simple_read_from_buffer in kernel/\n\nCleanup using simple_read_from_buffer() for /dev/cpuset/tasks and\n/proc/config.gz.\n\nCc: Paul Jackson \u003cpj@sgi.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "92f4c701aad794de9e4cf7341d0a486aed027c46",
      "tree": "59a47427d43670a50409fc91d68a325e7cfa0ab7",
      "parents": [
        "884c3d751093446918c2f7a4b2c745f28cf91c39"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 09 02:33:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "use simple_read_from_buffer() in fs/\n\nCleanup using simple_read_from_buffer() in binfmt_misc, configfs, and sysfs.\n\nCc: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nCc: Joel Becker \u003cjoel.becker@oracle.com\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "884c3d751093446918c2f7a4b2c745f28cf91c39",
      "tree": "0400743d4b53a0ea208bfef332c5e7bcdda720d2",
      "parents": [
        "54493c10069741a02cd34c2b44a6bfdb85e7de6a"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 09 02:33:32 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "cm4000_cs: use bitrev\n\nCleanup using bitrev8 in cm4000_cs driver.\n\nCc: Harald Welte \u003claforge@gnumonks.org\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54493c10069741a02cd34c2b44a6bfdb85e7de6a",
      "tree": "21c3d853bb7af8b7f5b1f77ebdab0e8922c3e49c",
      "parents": [
        "8813d1c00ca923c1683da625ff85959be1db9a49"
      ],
      "author": {
        "name": "Akinobu Mita",
        "email": "akinobu.mita@gmail.com",
        "time": "Wed May 09 02:33:31 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "cm4000_cs: fix error paths\n\nThis patch fixes error paths in module_init and probe functions in cm4000_cs\nand cm4040_cs drivers.\n\nCc: Harald Welte \u003claforge@gnumonks.org\u003e\nSigned-off-by: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Dominik Brodowski \u003clinux@dominikbrodowski.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8813d1c00ca923c1683da625ff85959be1db9a49",
      "tree": "db16312db25ccfbef05f7cb05b58a9a6423f7b54",
      "parents": [
        "809aa5048fb7e7fd3bf0aa1fb169c42db0f63b08"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Wed May 09 02:33:30 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "mca: add integrated device bus matching\n\nThe MCA bus has a few \"integrated\" functions, which are effectively virtual\nslots on the bus.  The problem is that these special functions don\u0027t have\ndedicated pos IDs, so we have to manufacture ids for them outside the pos\nspace ...  and these ids can\u0027t be matched by the standard matching function,\nso add a special registration that requests a list of pos ids or a particular\nintegrated function.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "809aa5048fb7e7fd3bf0aa1fb169c42db0f63b08",
      "tree": "11b46cfe54de960d7c5ea83c2ee31ee8222ad8b3",
      "parents": [
        "818563dceccf695a71f8bd683a249e7bb09e3240"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Wed May 09 02:33:29 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "mca: fix bus matching\n\nThere\u0027s a bug in the MCA bus matching algorithm in that it promotes from\nsigned short to int before comparing with the actual id and does sign\nextension on anything \u003e 0x7fff (which means that pos ids \u003e 0x7fff never get\ncorrectly matched).\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "818563dceccf695a71f8bd683a249e7bb09e3240",
      "tree": "d1a7ff414283be1607547f4ae55ddad47d3f10c7",
      "parents": [
        "dd988528f4a7d64908b427c251d727f3c3e88add"
      ],
      "author": {
        "name": "Fernando Luis Vazquez Cao",
        "email": "fernando@oss.ntt.co.jp",
        "time": "Wed May 09 02:33:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:49 2007 -0700"
      },
      "message": "Always ask the hardware to obtain hardware processor id - ia64\n\nAlways ask the hardware to determine the hardware processor id in both UP and\nSMP kernels.\n\nSigned-off-by: Fernando Luis Vazquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd988528f4a7d64908b427c251d727f3c3e88add",
      "tree": "6a11ed178206e7310be3ddc2524a278db6fec5bb",
      "parents": [
        "a36166c6ef45081fea6eeaf5ca785d7ed786b6e2"
      ],
      "author": {
        "name": "Fernando Luis Vazquez Cao",
        "email": "fernando@oss.ntt.co.jp",
        "time": "Wed May 09 02:33:28 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "Use the APIC to determine the hardware processor id - x86_64\n\nhard_smp_processor_id used to be just a macro that hard-coded\nhard_smp_processor_id to 0 in the non SMP case.  When booting non SMP kernels\non hardware where the boot ioapic id is not 0 this turns out to be a problem.\nThis is happens frequently in the case of kdump and once in a great while in\nthe case of real hardware.\n\nUse the APIC to determine the hardware processor id in both UP and SMP kernels\nto fix this issue.\n\nNotice that hard_smp_processor_id is only used by SMP code or by code that\nworks with apics so we do not need to handle the case when apics are not\npresent and hard_smp_processor_id should never be called there.\n\nSigned-off-by: Fernando Luis Vazquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nAcked-by: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a36166c6ef45081fea6eeaf5ca785d7ed786b6e2",
      "tree": "bdb5a99e3c80883cbb84d6e190b4dabefec79032",
      "parents": [
        "2f4dfe206a2fc07099dfad77a8ea2f4b4ae2140f"
      ],
      "author": {
        "name": "Fernando Luis Vazquez Cao",
        "email": "fernando@oss.ntt.co.jp",
        "time": "Wed May 09 02:33:27 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "Use the APIC to determine the hardware processor id - i386\n\nhard_smp_processor_id used to be just a macro that hard-coded\nhard_smp_processor_id to 0 in the non SMP case.  When booting non SMP kernels\non hardware where the boot ioapic id is not 0 this turns out to be a problem.\nThis is happens frequently in the case of kdump and once in a great while in\nthe case of real hardware.\n\nUse the APIC to determine the hardware processor id in both UP and SMP kernels\nto fix this issue.\n\nNotice that hard_smp_processor_id is only used by SMP code or by code that\nworks with apics so we do not need to handle the case when apics are not\npresent and hard_smp_processor_id should never be called there.\n\nSigned-off-by: Fernando Luis Vazquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nAcked-by: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f4dfe206a2fc07099dfad77a8ea2f4b4ae2140f",
      "tree": "b66a624ba68766282fa0ddb509ff641552703da4",
      "parents": [
        "dd2a345f8f002845636dbf5d2d768bb5cd8a5f59"
      ],
      "author": {
        "name": "Fernando Luis Vazquez Cao",
        "email": "fernando@oss.ntt.co.jp",
        "time": "Wed May 09 02:33:25 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "Remove hardcoding of hard_smp_processor_id on UP systems\n\nWith the advent of kdump, the assumption that the boot CPU when booting an UP\nkernel is always the CPU with a particular hardware ID (often 0) (usually\nreferred to as BSP on some architectures) is not valid anymore.  The reason\nbeing that the dump capture kernel boots on the crashed CPU (the CPU that\ninvoked crash_kexec), which may be or may not be that particular CPU.\n\nMove definition of hard_smp_processor_id for the UP case to\narchitecture-specific code (\"asm/smp.h\") where it belongs, so that each\narchitecture can provide its own implementation.\n\nSigned-off-by: Fernando Luis Vazquez Cao \u003cfernando@oss.ntt.co.jp\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nAcked-by: Andi Kleen \u003cak@suse.de\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd2a345f8f002845636dbf5d2d768bb5cd8a5f59",
      "tree": "9ddbe34d18cf97496f4d3d582ed127fee0d96a01",
      "parents": [
        "0e7d18b57c39bedcbd181e3c06d13572b33e5380"
      ],
      "author": {
        "name": "Dave Gilbert",
        "email": "linux@treblig.org",
        "time": "Wed May 09 02:33:24 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "Display all possible partitions when the root filesystem failed to mount\n\nDisplay all possible partitions when the root filesystem is not mounted.\nThis helps to track spell\u0027o\u0027s and missing drivers.\n\nUpdated to work with newer kernels.\n\nExample output:\n\nVFS: Cannot open root device \"foobar\" or unknown-block(0,0)\nPlease append a correct \"root\u003d\" boot option; here are the available partitions:\n0800    8388608 sda driver: sd\n  0801     192748 sda1\n  0802    8193150 sda2\n0810    4194304 sdb driver: sd\nKernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)\n\n[akpm@linux-foundation.org: cleanups, fix printk warnings]\nSigned-off-by: Jan Engelhardt \u003cjengelh@gmx.de\u003e\nCc: Dave Gilbert \u003clinux@treblig.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0e7d18b57c39bedcbd181e3c06d13572b33e5380",
      "tree": "18d89d066be5bdf0ce3d86b5cd7b6ab41152ca46",
      "parents": [
        "cb0c78cc94a63871cad051674516b38e4a8aef95"
      ],
      "author": {
        "name": "Miklos Szeredi",
        "email": "mszeredi@suse.cz",
        "time": "Wed May 09 02:33:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "uml: turn build warnings into comments\n\nThese haven\u0027t been fixed for ages.  Just make comments out of them.\n\narch/um/kernel/skas/process.c:181:2: warning: #warning Need to look up\n+userspace_pid by cpu\narch/um/kernel/skas/process.c:187:2: warning: #warning Need to look up\n+userspace_pid by cpu\narch/um/kernel/skas/process.c:194:2: warning: #warning need to loop over\n+userspace_pids in kill_off_processes_skas\n\nSigned-off-by: Miklos Szeredi \u003cmszeredi@suse.cz\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cb0c78cc94a63871cad051674516b38e4a8aef95",
      "tree": "2f90ad36bcfebf29caa3bc38cc5775e53ac58a54",
      "parents": [
        "231f7e9d029a710c14352bff3b8d3753cb9bfde8"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Wed May 09 02:33:22 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "Fix Linuxdoc comment\n\nA linuxdoc comment had fallen out of date - it refers to an argument which no\nlonger exists.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "231f7e9d029a710c14352bff3b8d3753cb9bfde8",
      "tree": "9676c0f0e5995f756ef3508b244f21c2541523cf",
      "parents": [
        "0ff563830209d2f5ea2ece071f7ea71aff934544"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Wed May 09 02:33:21 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "uml: mark a tt-only function\n\nMark another function as tt-mode only.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ff563830209d2f5ea2ece071f7ea71aff934544",
      "tree": "c1cc50625af2c273e357e6a2f2fdbed0fcd28b86",
      "parents": [
        "1e0cb0c3bf04850fa6fb300293d9e85ba81b605f"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Wed May 09 02:33:20 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "uml: turn on SCSI support\n\nEnable (i)SCSI on UML, dunno why SCSI was deemed broken, it works like a\ncharm.\n\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e0cb0c3bf04850fa6fb300293d9e85ba81b605f",
      "tree": "50cd7d2b57eefef7746f4200166cf90be119918d",
      "parents": [
        "a3d25c275d383975504dc53c25b691df59bd3c48"
      ],
      "author": {
        "name": "Jeff Dike",
        "email": "jdike@addtoit.com",
        "time": "Wed May 09 02:33:19 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "uml: fix build breakage\n\nUML now needs required-features.h to build - an empty one suffices.\n\nSigned-off-by: Jeff Dike \u003cjdike@linux.intel.com\u003e\nCc: Paolo \u0027Blaisorblade\u0027 Giarrusso \u003cblaisorblade@yahoo.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a3d25c275d383975504dc53c25b691df59bd3c48",
      "tree": "161a2ae12a20a630c2f639e144872db2b92eb098",
      "parents": [
        "d60846c4d16f9518b098b905af2b87cb6bf6dc42"
      ],
      "author": {
        "name": "Rafael J. Wysocki",
        "email": "rjw@sisk.pl",
        "time": "Wed May 09 02:33:18 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "PM: Separate hibernation code from suspend code\n\n[ With Johannes Berg \u003cjohannes@sipsolutions.net\u003e ]\n\nSeparate the hibernation (aka suspend to disk code) from the other suspend\ncode.  In particular:\n\n * Remove the definitions related to hibernation from include/linux/pm.h\n * Introduce struct hibernation_ops and a new hibernate() function to hibernate\n   the system, defined in include/linux/suspend.h\n * Separate suspend code in kernel/power/main.c from hibernation-related code\n   in kernel/power/disk.c and kernel/power/user.c (with the help of\n   hibernation_ops)\n * Switch ACPI (the only user of pm_ops.pm_disk_mode) to hibernation_ops\n\nSigned-off-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nCc: Nigel Cunningham \u003cnigel@nigel.suspend2.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d60846c4d16f9518b098b905af2b87cb6bf6dc42",
      "tree": "c8531fd981874f8a4e388079ca9edaf8ff27d63f",
      "parents": [
        "ace4bd29c248b51db3f8a97e9b59740dc6caa074"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed May 09 02:33:17 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "swsusp: clean up printk\n\nRemove an inexplicable /\n\nCc: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nCc: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ace4bd29c248b51db3f8a97e9b59740dc6caa074",
      "tree": "474d6b74fcd4ab07262d624a278faf65e14ddc4d",
      "parents": [
        "ba8b45cea5f632540d561d37d94c71c07f6af1aa"
      ],
      "author": {
        "name": "Ken Chen",
        "email": "kenchen@google.com",
        "time": "Wed May 09 02:33:09 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "fix leaky resv_huge_pages when cpuset is in use\n\nThe internal hugetlb resv_huge_pages variable can permanently leak nonzero\nvalue in the error path of hugetlb page fault handler when hugetlb page is\nused in combination of cpuset.  The leaked count can permanently trap N\nnumber of hugetlb pages in unusable \"reserved\" state.\n\nSteps to reproduce the bug:\n\n  (1) create two cpuset, user1 and user2\n  (2) reserve 50 htlb pages in cpuset user1\n  (3) attempt to shmget/shmat 50 htlb page inside cpuset user2\n  (4) kernel oom the user process in step 3\n  (5) ipcrm the shm segment\n\nAt this point resv_huge_pages will have a count of 49, even though\nthere are no active hugetlbfs file nor hugetlb shared memory segment\nin the system.  The leak is permanent and there is no recovery method\nother than system reboot. The leaked count will hold up all future use\nof that many htlb pages in all cpusets.\n\nThe culprit is that the error path of alloc_huge_page() did not\nproperly undo the change it made to resv_huge_page, causing\ninconsistent state.\n\nSigned-off-by: Ken Chen \u003ckenchen@google.com\u003e\nCc: David Gibson \u003cdavid@gibson.dropbear.id.au\u003e\nCc: Adam Litke \u003cagl@us.ibm.com\u003e\nCc: Martin Bligh \u003cmbligh@google.com\u003e\nAcked-by: David Gibson \u003cdwg@au1.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba8b45cea5f632540d561d37d94c71c07f6af1aa",
      "tree": "03604401cd4162a16d1888b71e7d65c8cc14ec31",
      "parents": [
        "b997b82d266c9fb910fc2ad95b9bb93b3bccf9be"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:33:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "dm log: fix resume failed log device\n\nThis patch removes the possibility of having uninitialized log state if the\nlog device has failed.\n\nWhen a mirror resumes operation, it calls \u0027resume\u0027 on the logging module.  If\ndisk based logging is being used, the log device is read to fill in the log\nstate.  If the log device has failed, we cannot simply return, because this\nwould leave the in-memory log state uninitialized.  Instead, we assume all\nregions are out-of-sync and reset the log state.  Failure to do this could\nresult in the logging code reporting a region as in-sync, even though it\nisn\u0027t; which could result in a corrupted mirror.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b997b82d266c9fb910fc2ad95b9bb93b3bccf9be",
      "tree": "e6f9b05361b4d15d6ce3ac21f11e69f7809d1780",
      "parents": [
        "f5353cd7c9cd10cdf9d62a5487f3db77b7b68105"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:33:08 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "dm raid1: switch rh_in_sync to blocking in do_reads\n\nThe call to rh_in_sync() in do_reads() should be allowed to block.  It is in\nthe mirror worker thread which already permits blocking operations.  This will\nbe needed to support clustered mirroring which will perform network\noperations.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5353cd7c9cd10cdf9d62a5487f3db77b7b68105",
      "tree": "25c3f22f87d2d6aff90768764a6aa7d7d1c45936",
      "parents": [
        "26b9f228703f0518a90e7513d6fe7b6abeed5138"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:33:07 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:48 2007 -0700"
      },
      "message": "dm raid1: fix to commit pending clear region requests\n\nWith the code as it is, it is possible for oustanding clear region requests\nnever to get flushed when a mirror is deactivated or suspended.  This means\nthere will always be some resync work required when a mirror is activated,\neven though it may very well be in-sync.\n\nAlways requesting the flush doesn\u0027t hurt us.  This is because the log tracks\nwhether any changes occurred and, if not, no flush is performed.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26b9f228703f0518a90e7513d6fe7b6abeed5138",
      "tree": "3437e92667c338ea46ad47b064ce4908d7d75fe2",
      "parents": [
        "0ba699347e96b5468b42b3decf1f381abbf99652"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "mauelshagen@redhat.com",
        "time": "Wed May 09 02:33:06 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm: delay target\n\nNew device-mapper target that can delay I/O (for testing).  Reads can be\nseparated from writes, redirected to different underlying devices and delayed\nby differing amounts of time.\n\nSigned-off-by: Heinz Mauelshagen \u003cmauelshagen@redhat.com\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0ba699347e96b5468b42b3decf1f381abbf99652",
      "tree": "7ec0aeedd92ffee6c2a8ecda60e8f85106c28c04",
      "parents": [
        "bf17ce3a604d943f29bf1bc1a66a4e0d2ad4ec96"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm: bio list helpers\n\nMore bio_list helper functions for new targets (including dm-delay and\ndm-loop) to manipulate lists of bios.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Bryn Reeves \u003cbreeves@redhat.com\u003e\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf17ce3a604d943f29bf1bc1a66a4e0d2ad4ec96",
      "tree": "531058ab5ad63fb2e104bfadddbdbde080a0289b",
      "parents": [
        "88be163abb5324bab09f5eff9646590eec5314eb"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:33:05 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: remove old interface\n\nRemove old dm-io interface.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "88be163abb5324bab09f5eff9646590eec5314eb",
      "tree": "0db6fc18ae4b534d78da1e9756fa13405cc96dbd",
      "parents": [
        "5d234d1e03d0a4cef4da32177be6657b45cc513f"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:33:04 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm raid1: update dm io interface\n\nThis patch ports dm-raid1.c to the new dm-io interface.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5d234d1e03d0a4cef4da32177be6657b45cc513f",
      "tree": "6f1cd0cedbd2a9ad276b1a92195f00925ce517fd",
      "parents": [
        "6cca1e7af543aa396b3e4919c251080741a49e69"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "heinzm@redhat.com",
        "time": "Wed May 09 02:33:03 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm log: update dm io interface\n\nThis patch ports dm-log.c to the new dm-io interface in order to make it\nscalable to have a large number of persistent dirty logs active in parallel.\n\nSigned-off-by: Heinz Mauelshagen \u003cheinzm@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cca1e7af543aa396b3e4919c251080741a49e69",
      "tree": "640d743a15c99510cd0b64138f33f465c5c978b9",
      "parents": [
        "373a392bd76c4cc2cbbdab3906aee2ae4dc6702e"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm exception store: update dm io interface\n\nThis patch ports dm-exception-store.c to the new, scalable dm_io() interface.\n\nIt replaces dm_io_get()/dm_io_put() by\ndm_io_client_create()/dm_io_client_destroy() calls and\ndm_io_sync_vm() by dm_io() to achive this.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "373a392bd76c4cc2cbbdab3906aee2ae4dc6702e",
      "tree": "5adf4bf86e25abe107e0623dc3257a0e46b74670",
      "parents": [
        "c8b03afe3d38a635861e4bfa5c563d844e754a91"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:33:02 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm kcopyd: update dm io interface\n\nThis patch ports kcopyd.c to the new, scalable dm_io() interface.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c8b03afe3d38a635861e4bfa5c563d844e754a91",
      "tree": "d23d2aa8d6cec93bab6e23ffd2199509e7d85113",
      "parents": [
        "891ce207011d3d9219f79fd5114c8594bbacc653"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:01 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: new interface\n\nAdd a new API to dm-io.c that uses a private mempool and bio_set for each\nclient.\n\nThe new functions to use are dm_io_client_create(), dm_io_client_destroy(),\ndm_io_client_resize() and dm_io().\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "891ce207011d3d9219f79fd5114c8594bbacc653",
      "tree": "969ca658f41ec8a9f719a44a487ae582ee278c27",
      "parents": [
        "c897feb3dcf3c3300849056ee82b01df7bf66d3c"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: prepare for new interface\n\nIntroduce struct dm_io_client to prepare for per-client mempools and bio_sets.\n\nTemporary functions bios() and io_pool() choose between the per-client\nstructures and the global ones so the old and new interfaces can co-exist.\n\nMake error_bits optional.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c897feb3dcf3c3300849056ee82b01df7bf66d3c",
      "tree": "29d82a62375d7a6394ba39e11926a695e6691de0",
      "parents": [
        "a8e6afa2363de7ee0dea1a3297f6236f421c2dd4"
      ],
      "author": {
        "name": "Heinz Mauelshagen",
        "email": "hjm@redhat.com",
        "time": "Wed May 09 02:33:00 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm io: delay dec_count\n\nDelay decrementing the \u0027struct io\u0027 reference count until after the bio has\nbeen freed so that a bio destructor function may reference it.  Required by a\nlater patch.\n\nSigned-off-by: Heinz Mauelshagen \u003chjm@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a8e6afa2363de7ee0dea1a3297f6236f421c2dd4",
      "tree": "f0559bd5e25dbafaee331815c75774fa0834252b",
      "parents": [
        "315dcc226f066c1d3cef79283dcde807fe0e32d1"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:32:59 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm raid1: add handle_errors feature flag\n\nThis patch adds the ability to specify desired features in the mirror\nconstructor/mapping table.\n\nThe first feature of interest is \"handle_errors\".  Currently, mirroring will\nignore any I/O errors from the devices.  Subsequent patches will check for\nthis flag and handle the errors.  If flag/feature is not present, mirror will\ndo nothing - maintaining backwards compatibility.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "315dcc226f066c1d3cef79283dcde807fe0e32d1",
      "tree": "f3abf75905aec13819292564ef4c2711c8bf4b8d",
      "parents": [
        "01d03a660e73fb524957c09825a3eb7c2ae7c205"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:32:58 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm log: report fault status\n\nThis patch reports the status of the log device so that userspace can detect\nthe error and take appropriate action.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01d03a660e73fb524957c09825a3eb7c2ae7c205",
      "tree": "8f87a5b6b6e34f9baab8661c127bf427cb4eaf41",
      "parents": [
        "2cd54d9bedb79a97f014e86c0da393416b264eb3"
      ],
      "author": {
        "name": "Jonathan E Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Wed May 09 02:32:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm log: fault detection\n\nThis patch gives the disk logging code the ability to store the fact that an\nerror occured on the log device.  In addition, an event is raised when an\nerror is encountered during I/O to the log device.\n\nSigned-off-by: Jonathan E Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2cd54d9bedb79a97f014e86c0da393416b264eb3",
      "tree": "bb7b81120cdd84e106da22222b6eec57e45ac5c4",
      "parents": [
        "79eb885c96b5ccf8bbffd0dddc4c15a5dd436a1c"
      ],
      "author": {
        "name": "Mike Anderson",
        "email": "andmike@us.ibm.com",
        "time": "Wed May 09 02:32:57 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:47 2007 -0700"
      },
      "message": "dm: allow offline devices\n\nAllow check_device_area to succeed if a device has an i_size of zero.  This\naddresses an issue seen on DASD devices setting up a multipath table for paths\nin online and offline state.\n\nSigned-off-by: Mike Anderson \u003candmike@us.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "79eb885c96b5ccf8bbffd0dddc4c15a5dd436a1c",
      "tree": "1bae1cea97907415f19a0009aaa8e11e63fef34c",
      "parents": [
        "46b477306afcd0516924b26792c7a42f4dbfa9f0"
      ],
      "author": {
        "name": "Edward Goggin",
        "email": "egoggin@emc.com",
        "time": "Wed May 09 02:32:56 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm mpath: log device name\n\nMake the mapped device structure accessible to hardware handlers so error\nmessages can include the device name.\n\nSigned-off-by: Edward Goggin \u003cegoggin@emc.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46b477306afcd0516924b26792c7a42f4dbfa9f0",
      "tree": "76534c0ca2fed486e453292fdd0bbfdd83d104ca",
      "parents": [
        "f97380bcadd6bd2e368727de4061aaba4989c426"
      ],
      "author": {
        "name": "Ludwig Nussel",
        "email": "ludwig.nussel@suse.de",
        "time": "Wed May 09 02:32:55 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: add null iv\n\nAdd a new IV generation method \u0027null\u0027 to read old filesystem images created\nwith SuSE\u0027s loop_fish2 module.\n\nSigned-off-by: Ludwig Nussel \u003cludwig.nussel@suse.de\u003e\nAcked-By: Christophe Saout \u003cchristophe@saout.de\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f97380bcadd6bd2e368727de4061aaba4989c426",
      "tree": "179db9e733545aa1e796a22f670fc86963059492",
      "parents": [
        "2f9941b6c55d70103c1bc3f2c7676acd9f20bf8a"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Wed May 09 02:32:54 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: use smaller bvecs in clones\n\nAllocate smaller clones\n\nWith the previous dm-crypt fixes, there is no need for the clone bios to have\nthe same bvec size as the original - we just need to make them big enough for\nthe remaining number of pages.  The only requirement is that we clear the\n\"out\" index in convert_context, so that crypt_convert starts storing data at\nthe right position within the clone bio.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2f9941b6c55d70103c1bc3f2c7676acd9f20bf8a",
      "tree": "523af38a7f1d7f1f875ca43a8c2998a29026dd70",
      "parents": [
        "98221eb757de03d9aa6262b1eded2be708640ccc"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Wed May 09 02:32:53 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: fix remove first_clone\n\nGet rid of first_clone in dm-crypt\n\nThis gets rid of first_clone, which is not really needed.  Apparently, cloned\nbios used to share their bvec some time way in the past - this is no longer\nthe case.  Contrarily, this even hurts us if we try to create a clone off\nfirst_clone after it has completed, and crypt_endio has destroyed its bvec.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "98221eb757de03d9aa6262b1eded2be708640ccc",
      "tree": "cef3fd80f62d6227551adc75c34023d60cbaa9c1",
      "parents": [
        "027581f3515b5ec2218847dab578afa439a9d6b9"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Wed May 09 02:32:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: fix avoid cloned bio ref after free\n\nDo not access the bio after generic_make_request\n\nWe should never access a bio after generic_make_request - there\u0027s no guarantee\nit still exists.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "027581f3515b5ec2218847dab578afa439a9d6b9",
      "tree": "a15a2e0f3711c42a70170b9d4232b61d694899ca",
      "parents": [
        "9c89f8be1a7d14aad9d2c3f7d90d7d88f82c61e2"
      ],
      "author": {
        "name": "Olaf Kirch",
        "email": "olaf.kirch@oracle.com",
        "time": "Wed May 09 02:32:52 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: fix call to clone_init\n\nCall clone_init early\n\nWe need to call clone_init as early as possible - at least before call\nbio_put(clone) in any error path.  Otherwise, the destructor will try to\ndereference bi_private, which may still be NULL.\n\nSigned-off-by: Olaf Kirch \u003colaf.kirch@oracle.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9c89f8be1a7d14aad9d2c3f7d90d7d88f82c61e2",
      "tree": "0e94f77a0d9fda323b12dd4e26f0e08aa2fff7ef",
      "parents": [
        "6ad36fe2b451cc85cc7b14f4128286759e217124"
      ],
      "author": {
        "name": "Milan Broz",
        "email": "mbroz@redhat.com",
        "time": "Wed May 09 02:32:51 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm crypt: disable barriers\n\nDisable barriers in dm-crypt because of current workqueue processing can\nreorder requests.\n\nThis must be addresed later but for now disabling barriers is needed to\nprevent data corruption.\n\nSigned-off-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Jens Axboe \u003cjens.axboe@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6ad36fe2b451cc85cc7b14f4128286759e217124",
      "tree": "05e6111d39c969ee729309d6bded6bcfe08aa44e",
      "parents": [
        "8defab33774a5c33920196a2ee9c0a946d22ba67"
      ],
      "author": {
        "name": "Holger Smolinski",
        "email": "smolinski@de.ibm.com",
        "time": "Wed May 09 02:32:50 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "dm raid1: one kmirrord per mirror\n\nThis patch replaces the single instance of kmirrord by one instance per mirror\nset.  This change is required to avoid a deadlock in kmirrord when the\npersistent dirty log of a mirror itself resides on a mirror.  The single\ninstance of kmirrord then issues a sync write to the dirty log in write_bits\nwhich gets deferred to kmirrord itself later in the call chain.  But kmirrord\nnever does the deferred work because it is still waiting for the sync\nwrite_bits.\n\n_mirror_sets is removed as it no longer needed, and we always flush the\nworkqueue before destroying it to ensure all work is complete before\ndestroying it.\n\nSigned-off-by: Holger Smolinski \u003csmolinski@de.ibm.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8defab33774a5c33920196a2ee9c0a946d22ba67",
      "tree": "6924e361156f6420c8c42aa614998e565096c6aa",
      "parents": [
        "34013886ef47ea72e412beb04558431b57a68d51"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 09 02:32:48 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "FRV: Replace pgd management via slabs through quicklists\n\nThis is done in order to be able to run SLUB which expects no modifications\nto its page structs.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "34013886ef47ea72e412beb04558431b57a68d51",
      "tree": "2ad144b7da7b689950baca5b9725989b379829c4",
      "parents": [
        "7ae439ce0c01d7db0c70d1542985969e95ef750d"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 09 02:32:47 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "Fix spellings of slab allocator section in init/Kconfig\n\nFix some of the spelling issues. Fix sentences. Discourage SLOB use\nsince SLUB can pack objects denser.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7ae439ce0c01d7db0c70d1542985969e95ef750d",
      "tree": "7da3778be3e1c80cd834bf72dc33c3c82ff43017",
      "parents": [
        "5e6d444ea1f72b8148354a9baf0ea8fa3dd0425b"
      ],
      "author": {
        "name": "Pekka J Enberg",
        "email": "penberg@cs.helsinki.fi",
        "time": "Wed May 09 02:32:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "krealloc: fix kerneldoc comments\n\nNo \"blank\" (or \"*\") line is allowed between the function name and lines for\nit parameter(s).\n\nCc: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\nSigned-off-by: Pekka Enberg \u003cpenberg@cs.helsinki.fi\u003e\nCc: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e6d444ea1f72b8148354a9baf0ea8fa3dd0425b",
      "tree": "c9c07fd97acd925bfb9c4964240799414243d399",
      "parents": [
        "45edfa580b8e638c44ec26872bfe75b307ba12d1"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 09 02:32:46 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "SLUB: rework slab order determination\n\nIn some cases SLUB is creating uselessly slabs that are larger than\nslub_max_order. Also the layout of some of the slabs was not satisfactory.\n\nGo to an iterarive approach.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45edfa580b8e638c44ec26872bfe75b307ba12d1",
      "tree": "1143a378c5a8b6dcf6bfb1cb7c0cfd42df725417",
      "parents": [
        "41ecc55b8a8ca618e6d490982c7ce45d230d4399"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 09 02:32:45 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:46 2007 -0700"
      },
      "message": "SLUB: include lifetime stats and sets of cpus / nodes in tracking output\n\nWe have information about how long an object existed and about the nodes and\ncpus where the allocations and frees took place.  Add that information to the\ntracking output in /sys/slab/xx/alloc_calls and /sys/slab/free_calls\n\nThis will then enable slabinfo to output nice reports like this:\n\n  christoph@qirst:~/slub$ ./slabinfo kmalloc-128\n\n  Slabcache: kmalloc-128           Aliases:  0 Order :  0\n\n  Sizes (bytes)     Slabs              Debug                Memory\n  ------------------------------------------------------------------------\n  Object :     128  Total  :      12   Sanity Checks : On   Total:   49152\n  SlabObj:     200  Full   :       7   Redzoning     : On   Used :   24832\n  SlabSiz:    4096  Partial:       4   Poisoning     : On   Loss :   24320\n  Loss   :      72  CpuSlab:       1   Tracking      : On   Lalig:   13968\n  Align  :       8  Objects:      20   Tracing       : Off  Lpadd:    1152\n\n  kmalloc-128 has no kmem_cache operations\n\n  kmalloc-128: Kernel object allocation\n  -----------------------------------------------------------------------\n        6 param_sysfs_setup+0x71/0x130 age\u003d284512/284512/284512 pid\u003d1 nodes\u003d0-1,3\n       11 percpu_populate+0x39/0x80 age\u003d283914/284428/284512 pid\u003d1 nodes\u003d0\n       21 __register_chrdev_region+0x31/0x170 age\u003d282896/284347/284473 pid\u003d1-1705 nodes\u003d0-2\n        1 sys_inotify_init+0x76/0x1c0 age\u003d283423 pid\u003d1004 nodes\u003d0\n       19 as_get_io_context+0x32/0xd0 age\u003d6/247567/283988 pid\u003d1-11782 nodes\u003d0,2\n       10 ida_pre_get+0x4a/0x80 age\u003d277666/283773/284526 pid\u003d0-2177 nodes\u003d0,2\n       24 kobject_kset_add_dir+0x37/0xb0 age\u003d282727/283860/284472 pid\u003d1-1723 nodes\u003d0-2\n        1 acpi_ds_build_internal_buffer_obj+0xd3/0x11d age\u003d284508 pid\u003d1 nodes\u003d0\n       24 con_insert_unipair+0xd7/0x110 age\u003d284438/284438/284438 pid\u003d1 nodes\u003d0,2\n        1 uart_open+0x2d2/0x4b0 age\u003d283896 pid\u003d1 nodes\u003d0\n       26 dma_pool_create+0x73/0x1a0 age\u003d282762/282833/282916 pid\u003d1705-1723 nodes\u003d0\n        1 neigh_table_init_no_netlink+0xd2/0x210 age\u003d284461 pid\u003d1 nodes\u003d0\n        2 neigh_parms_alloc+0x2b/0xe0 age\u003d284410/284411/284412 pid\u003d1 nodes\u003d2\n        2 neigh_resolve_output+0x1e1/0x280 age\u003d276289/276291/276293 pid\u003d0-2443 nodes\u003d0\n        1 netlink_kernel_create+0x90/0x170 age\u003d284472 pid\u003d1 nodes\u003d0\n        4 xt_alloc_table_info+0x39/0xf0 age\u003d283958/283958/283959 pid\u003d1 nodes\u003d1\n        3 fn_hash_insert+0x473/0x720 age\u003d277653/277661/277666 pid\u003d2177-2185 nodes\u003d0\n        1 get_mtrr_state+0x285/0x2a0 age\u003d284526 pid\u003d0 nodes\u003d0\n        1 cacheinfo_cpu_callback+0x26d/0x3e0 age\u003d284458 pid\u003d1 nodes\u003d0\n       29 kernel_param_sysfs_setup+0x25/0x90 age\u003d284511/284511/284512 pid\u003d1 nodes\u003d0-1,3\n        5 process_zones+0x5e/0x170 age\u003d284546/284546/284546 pid\u003d0 nodes\u003d0\n        1 drm_core_init+0x48/0x160 age\u003d284421 pid\u003d1 nodes\u003d2\n\n  kmalloc-128: Kernel object freeing\n  ------------------------------------------------------------------------\n      163 \u003cnot-available\u003e age\u003d4295176847 pid\u003d0 nodes\u003d0-3\n        1 __vunmap+0x6e/0xf0 age\u003d282907 pid\u003d1723 nodes\u003d0\n       28 free_as_io_context+0x12/0x90 age\u003d9243/262197/283474 pid\u003d42-11754 nodes\u003d0\n        1 acpi_get_object_info+0x1b7/0x1d4 age\u003d284475 pid\u003d1 nodes\u003d0\n        1 do_acpi_find_child+0x45/0x4e age\u003d284475 pid\u003d1 nodes\u003d0\n\n  NUMA nodes           :    0    1    2    3\n  ------------------------------------------\n  All slabs                 7    2    2    1\n  Partial slabs             2    2    0    0\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "41ecc55b8a8ca618e6d490982c7ce45d230d4399",
      "tree": "ba2f416a2ea92eb335cae028c586b3cd3797d66c",
      "parents": [
        "02cbc874463924de2c3403379b698bce3cd277a5"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 09 02:32:44 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:45 2007 -0700"
      },
      "message": "SLUB: add CONFIG_SLUB_DEBUG\n\nCONFIG_SLUB_DEBUG can be used to switch off the debugging and sysfs components\nof SLUB.  Thus SLUB will be able to replace SLOB.  SLUB can arrange objects in\na denser way than SLOB and the code size should be minimal without debugging\nand sysfs support.\n\nNote that CONFIG_SLUB_DEBUG is materially different from CONFIG_SLAB_DEBUG.\nCONFIG_SLAB_DEBUG is used to enable slab debugging in SLAB.  SLUB enables\ndebugging via a boot parameter.  SLUB debug code should always be present.\n\nCONFIG_SLUB_DEBUG can be modified in the embedded config section.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02cbc874463924de2c3403379b698bce3cd277a5",
      "tree": "e7049877addb956ec53d98ead01d993e06558044",
      "parents": [
        "636f0d7de8dc0282cce9905e035c04dd60db19dd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 09 02:32:43 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:45 2007 -0700"
      },
      "message": "SLUB: move tracking definitions and check_valid_pointer() away from debug code\n\nMove the tracking definitions and the check_valid_pointer() function away from\nthe debugging related functions.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "636f0d7de8dc0282cce9905e035c04dd60db19dd",
      "tree": "a4fcb99b6fdc47ca865746bbbdcf9f693e4655b1",
      "parents": [
        "35e5d7ee27680aef6dc3fab45a5ecd9952d9791a"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 09 02:32:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:45 2007 -0700"
      },
      "message": "SLUB: consolidate trace code\n\nTrace in both slab_alloc and slab_free has a lot of common code.  Use a single\nfunction for both.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "35e5d7ee27680aef6dc3fab45a5ecd9952d9791a",
      "tree": "47660b2ac98ca94c42164952520700644411a6cc",
      "parents": [
        "b345970905e34c1b632fe4d80e2af14c7de99b45"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "clameter@sgi.com",
        "time": "Wed May 09 02:32:42 2007 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@woody.linux-foundation.org",
        "time": "Wed May 09 12:30:45 2007 -0700"
      },
      "message": "SLUB: introduce DebugSlab(page)\n\nThis replaces the PageError() checking.  DebugSlab is clearer and allows for\nfuture changes to the page bit used.  We also need it to support\nCONFIG_SLUB_DEBUG.\n\nSigned-off-by: Christoph Lameter \u003cclameter@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "b345970905e34c1b632fe4d80e2af14c7de99b45"
}
