)]}'
{
  "log": [
    {
      "commit": "456229a91d2bdf884f0c01b33f1ecee762abba7d",
      "tree": "5efb884b98f785a684eebf481d1c99fbbc41e482",
      "parents": [
        "8f7607803717e9d045965b210cd16a25d80cd04b"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Jun 27 02:55:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:48 2006 -0700"
      },
      "message": "[PATCH] drivers/char/ipmi/ipmi_msghandler.c: make proc_ipmi_root static\n\nMake struct proc_ipmi_root static.\n\nBesides this, tremove removes an unused #ifdef CONFIG_PROC_FS from\ninclude/linux/ipmi.h.\n\nAcked-by: Corey Minyard \u003cminyard@acm.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8f7607803717e9d045965b210cd16a25d80cd04b",
      "tree": "1e8af970aa305be5e229a86b3ccc2525f3936d3b",
      "parents": [
        "9a66a53f558efc2619a438278d2919b3c9a7f673"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Jun 27 02:55:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:48 2006 -0700"
      },
      "message": "[PATCH] Remove redundant NULL checks before [kv]free - in drivers/\n\nRemove redundant NULL chck before kfree + tiny CodingStyle cleanup for\ndrivers/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9a66a53f558efc2619a438278d2919b3c9a7f673",
      "tree": "c3d20628f1d688f6099556995b597ef629970f7f",
      "parents": [
        "4ad98457aa545bc4d03d417da86325507aa586ec"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Jun 27 02:55:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:48 2006 -0700"
      },
      "message": "[PATCH] Remove redundant NULL checks before [kv]free - in kernel/\n\nRemove redundant kfree NULL checks from kernel/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4ad98457aa545bc4d03d417da86325507aa586ec",
      "tree": "212fe02cff7b38c27e8bbaf3136f05e452531c0b",
      "parents": [
        "59e0e0ace7d33e8c0c125042f153f80fcc56b39e"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jesper.juhl@gmail.com",
        "time": "Tue Jun 27 02:55:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:48 2006 -0700"
      },
      "message": "[PATCH] Remove redundant NULL checks before [kv]free - in fs/\n\nRemove redundant NULL checks before kfree for fs/\n\nSigned-off-by: Jesper Juhl \u003cjesper.juhl@gmail.com\u003e\nAcked-by: Mark Fasheh \u003cmark.fasheh@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "59e0e0ace7d33e8c0c125042f153f80fcc56b39e",
      "tree": "e73a795bd99b39a886fe3f9b46f85dbf53db5316",
      "parents": [
        "95e02ca9bb5324360e7dea1ea1c563036d84a5e6"
      ],
      "author": {
        "name": "Sebastien Dugue",
        "email": "sebastien.dugue@bull.net",
        "time": "Tue Jun 27 02:55:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:48 2006 -0700"
      },
      "message": "[PATCH] futex_requeue() optimization\n\nIn futex_requeue(), when the 2 futexes keys hash to the same bucket, there\nis no need to move the futex_q to the end of the bucket list.\n\nSigned-off-by: Sebastien Dugue \u003csebastien.dugue@bull.net\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "95e02ca9bb5324360e7dea1ea1c563036d84a5e6",
      "tree": "0336dd808abe113b42f53a8f700d50ea6ba674ff",
      "parents": [
        "0bafd214e4ba55dc1fb81a3031d0249292f1bc05"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 27 02:55:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:48 2006 -0700"
      },
      "message": "[PATCH] rtmutex: Propagate priority settings into PI lock chains\n\nWhen the priority of a task, which is blocked on a lock, changes we must\npropagate this change into the PI lock chain.  Therefor the chain walk code\nis changed to get rid of the references to current to avoid false positives\nin the deadlock detector, as setscheduler might be called by a task which\nholds the lock on which the task whose priority is changed is blocked.\n\nAlso add some comments about the get/put_task_struct usage to avoid\nconfusion.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0bafd214e4ba55dc1fb81a3031d0249292f1bc05",
      "tree": "754b3ad381078c57061515549642889b19aaf86d",
      "parents": [
        "e74c69f46d93d29eea0ad8647863d1c6488f0f55"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 27 02:55:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] rtmutex: Modify rtmutex-tester to test the setscheduler propagation\n\nMake test suite setscheduler calls asynchronously.  Remove the waits in the\ntest cases and add a new testcase to verify the correctness of the\nsetscheduler priority propagation.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e74c69f46d93d29eea0ad8647863d1c6488f0f55",
      "tree": "5537d5a60eec3985de11cad4476ed95025051721",
      "parents": [
        "a1583d3e83cae1c58870602efc6328c34b644c01"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 27 02:55:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] Drop tasklist lock in do_sched_setscheduler\n\nThere is no need to hold tasklist_lock across the setscheduler call, when\nwe pin the task structure with get_task_struct().  Interrupts are disabled\nin setscheduler anyway and the permission checks do not need interrupts\ndisabled.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a1583d3e83cae1c58870602efc6328c34b644c01",
      "tree": "4f26fb4e482d295ef7670143ddf7a86e58e1973a",
      "parents": [
        "c87e2837be82df479a6bae9f155c43516d2feebc"
      ],
      "author": {
        "name": "Roman Zippel",
        "email": "zippel@linux-m68k.org",
        "time": "Tue Jun 27 02:55:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] fix rt-mutex defaults and dependencies\n\nFix defaults and dependencies.\n\nSigned-off-by: Roman Zippel \u003czippel@linux-m68k.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c87e2837be82df479a6bae9f155c43516d2feebc",
      "tree": "ad6ab35f0b78f71abaa7b05185e9e3f97809c6de",
      "parents": [
        "0cdbee9920fb37eb2dc49b860c2b28862d647adc"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: futex_lock_pi/futex_unlock_pi support\n\nThis adds the actual pi-futex implementation, based on rt-mutexes.\n\n[dino@in.ibm.com: fix an oops-causing race]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Dinakar Guniguntala \u003cdino@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0cdbee9920fb37eb2dc49b860c2b28862d647adc",
      "tree": "df33dadb52979d7fadd1b464b14ae797d3838181",
      "parents": [
        "61a87122869b6340a63b6f9f84097d3688604b90"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: rt mutex futex api\n\nAdd proxy-locking rt-mutex functionality needed by pi-futexes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "61a87122869b6340a63b6f9f84097d3688604b90",
      "tree": "11d60d29763a42abd66453a920cc06bebc852427",
      "parents": [
        "e7eebaf6a81b956c989f184ee4b27277c88f8afe"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jun 27 02:54:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: rt mutex tester\n\nRT-mutex tester: scriptable tester for rt mutexes, which allows userspace\nscripting of mutex unit-tests (and dynamic tests as well), using the actual\nrt-mutex implementation of the kernel.\n\n[akpm@osdl.org: fixlet]\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e7eebaf6a81b956c989f184ee4b27277c88f8afe",
      "tree": "25adcfb17ec5f857791557a874cc1cced390ca9f",
      "parents": [
        "a6537be9324c67b41f6d98f5a60a1bd5a8e02861"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: rt mutex debug\n\nRuntime debugging functionality for rt-mutexes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a6537be9324c67b41f6d98f5a60a1bd5a8e02861",
      "tree": "73d430a911b56f0f4e4def80d0af47409f9db6c8",
      "parents": [
        "23f78d4a03c53cbd75d87a795378ea540aa08c86"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 27 02:54:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: rt mutex docs\n\nAdd rt-mutex documentation.\n\n[rostedt@goodmis.org: Update rt-mutex-design.txt as per Randy Dunlap suggestions]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: \"Randy.Dunlap\" \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "23f78d4a03c53cbd75d87a795378ea540aa08c86",
      "tree": "27dfe06337990911380fe8c5949ae9acd8e9568a",
      "parents": [
        "b29739f902ee76a05493fb7d2303490fc75364f4"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:47 2006 -0700"
      },
      "message": "[PATCH] pi-futex: rt mutex core\n\nCore functions for the rt-mutex subsystem.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b29739f902ee76a05493fb7d2303490fc75364f4",
      "tree": "1bf48dfb74752a7ef24a2a4a74c45da0aaec754b",
      "parents": [
        "77ba89c5cf28d5d98a3cae17f67a3e42b102cc25"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] pi-futex: scheduler support for pi\n\nAdd framework to boost/unboost the priority of RT tasks.\n\nThis consists of:\n\n - caching the \u0027normal\u0027 priority in -\u003enormal_prio\n - providing a functions to set/get the priority of the task\n - make sched_setscheduler() aware of boosting\n\nThe effective_prio() cleanups also fix a priority-calculation bug pointed out\nby Andrey Gelman, in set_user_nice().\n\nhas_rt_policy() fix: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Andrey Gelman \u003cagelman@012.net.il\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "77ba89c5cf28d5d98a3cae17f67a3e42b102cc25",
      "tree": "d487b536522574ab183cc600b62008c60db85b59",
      "parents": [
        "8eb94f80dd2da5977c35cd094f0802c1501a12cd"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:51 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] pi-futex: add plist implementation\n\nAdd the priority-sorted list (plist) implementation.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8eb94f80dd2da5977c35cd094f0802c1501a12cd",
      "tree": "ff2ff8f89fb04359aaf3dbe6ea3ca60cec4879f0",
      "parents": [
        "f9b8404cf8f8456dfa83459510762b700dc00385"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] pi-futex: introduce WARN_ON_SMP\n\nIntroduce a new WARN_ON variant: WARN_ON_SMP(cond).\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f9b8404cf8f8456dfa83459510762b700dc00385",
      "tree": "f74b54c79ee3913d587644195d8af7ba13b6cc2a",
      "parents": [
        "6abdce7680e3e8436b3292b345d77b67d5ec9ea8"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] pi-futex: introduce debug_check_no_locks_freed()\n\nAdd debug_check_no_locks_freed(), as a central inline to add\nbad-lock-free-debugging functionality to.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6abdce7680e3e8436b3292b345d77b67d5ec9ea8",
      "tree": "a242d780c2d1ea9214d33dcba54064d8fb2b500c",
      "parents": [
        "e2970f2fb6950183a34e8545faa093eb49d186e1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] pi-futex: robust futex docs fix\n\nFix typo in Documentation/robust-futexes.txt.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e2970f2fb6950183a34e8545faa093eb49d186e1",
      "tree": "a4035274368d846488a3b0152925502c06b064b0",
      "parents": [
        "66e5393a78b3fcca63e7748e38221dcca61c4aab"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:54:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] pi-futex: futex code cleanups\n\nWe are pleased to announce \"lightweight userspace priority inheritance\" (PI)\nsupport for futexes.  The following patchset and glibc patch implements it,\nontop of the robust-futexes patchset which is included in 2.6.16-mm1.\n\nWe are calling it lightweight for 3 reasons:\n\n - in the user-space fastpath a PI-enabled futex involves no kernel work\n   (or any other PI complexity) at all.  No registration, no extra kernel\n   calls - just pure fast atomic ops in userspace.\n\n - in the slowpath (in the lock-contention case), the system call and\n   scheduling pattern is in fact better than that of normal futexes, due to\n   the \u0027integrated\u0027 nature of FUTEX_LOCK_PI.  [more about that further down]\n\n - the in-kernel PI implementation is streamlined around the mutex\n   abstraction, with strict rules that keep the implementation relatively\n   simple: only a single owner may own a lock (i.e.  no read-write lock\n   support), only the owner may unlock a lock, no recursive locking, etc.\n\n  Priority Inheritance - why, oh why???\n  -------------------------------------\n\nMany of you heard the horror stories about the evil PI code circling Linux for\nyears, which makes no real sense at all and is only used by buggy applications\nand which has horrible overhead.  Some of you have dreaded this very moment,\nwhen someone actually submits working PI code ;-)\n\nSo why would we like to see PI support for futexes?\n\nWe\u0027d like to see it done purely for technological reasons.  We dont think it\u0027s\na buggy concept, we think it\u0027s useful functionality to offer to applications,\nwhich functionality cannot be achieved in other ways.  We also think it\u0027s the\nright thing to do, and we think we\u0027ve got the right arguments and the right\nnumbers to prove that.  We also believe that we can address all the\ncounter-arguments as well.  For these reasons (and the reasons outlined below)\nwe are submitting this patch-set for upstream kernel inclusion.\n\nWhat are the benefits of PI?\n\n  The short reply:\n  ----------------\n\nUser-space PI helps achieving/improving determinism for user-space\napplications.  In the best-case, it can help achieve determinism and\nwell-bound latencies.  Even in the worst-case, PI will improve the statistical\ndistribution of locking related application delays.\n\n  The longer reply:\n  -----------------\n\nFirstly, sharing locks between multiple tasks is a common programming\ntechnique that often cannot be replaced with lockless algorithms.  As we can\nsee it in the kernel [which is a quite complex program in itself], lockless\nstructures are rather the exception than the norm - the current ratio of\nlockless vs.  locky code for shared data structures is somewhere between 1:10\nand 1:100.  Lockless is hard, and the complexity of lockless algorithms often\nendangers to ability to do robust reviews of said code.  I.e.  critical RT\napps often choose lock structures to protect critical data structures, instead\nof lockless algorithms.  Furthermore, there are cases (like shared hardware,\nor other resource limits) where lockless access is mathematically impossible.\n\nMedia players (such as Jack) are an example of reasonable application design\nwith multiple tasks (with multiple priority levels) sharing short-held locks:\nfor example, a highprio audio playback thread is combined with medium-prio\nconstruct-audio-data threads and low-prio display-colory-stuff threads.  Add\nvideo and decoding to the mix and we\u0027ve got even more priority levels.\n\nSo once we accept that synchronization objects (locks) are an unavoidable fact\nof life, and once we accept that multi-task userspace apps have a very fair\nexpectation of being able to use locks, we\u0027ve got to think about how to offer\nthe option of a deterministic locking implementation to user-space.\n\nMost of the technical counter-arguments against doing priority inheritance\nonly apply to kernel-space locks.  But user-space locks are different, there\nwe cannot disable interrupts or make the task non-preemptible in a critical\nsection, so the \u0027use spinlocks\u0027 argument does not apply (user-space spinlocks\nhave the same priority inversion problems as other user-space locking\nconstructs).  Fact is, pretty much the only technique that currently enables\ngood determinism for userspace locks (such as futex-based pthread mutexes) is\npriority inheritance:\n\nCurrently (without PI), if a high-prio and a low-prio task shares a lock [this\nis a quite common scenario for most non-trivial RT applications], even if all\ncritical sections are coded carefully to be deterministic (i.e.  all critical\nsections are short in duration and only execute a limited number of\ninstructions), the kernel cannot guarantee any deterministic execution of the\nhigh-prio task: any medium-priority task could preempt the low-prio task while\nit holds the shared lock and executes the critical section, and could delay it\nindefinitely.\n\n  Implementation:\n  ---------------\n\nAs mentioned before, the userspace fastpath of PI-enabled pthread mutexes\ninvolves no kernel work at all - they behave quite similarly to normal\nfutex-based locks: a 0 value means unlocked, and a value\u003d\u003dTID means locked.\n(This is the same method as used by list-based robust futexes.) Userspace uses\natomic ops to lock/unlock these mutexes without entering the kernel.\n\nTo handle the slowpath, we have added two new futex ops:\n\n  FUTEX_LOCK_PI\n  FUTEX_UNLOCK_PI\n\nIf the lock-acquire fastpath fails, [i.e.  an atomic transition from 0 to TID\nfails], then FUTEX_LOCK_PI is called.  The kernel does all the remaining work:\nif there is no futex-queue attached to the futex address yet then the code\nlooks up the task that owns the futex [it has put its own TID into the futex\nvalue], and attaches a \u0027PI state\u0027 structure to the futex-queue.  The pi_state\nincludes an rt-mutex, which is a PI-aware, kernel-based synchronization\nobject.  The \u0027other\u0027 task is made the owner of the rt-mutex, and the\nFUTEX_WAITERS bit is atomically set in the futex value.  Then this task tries\nto lock the rt-mutex, on which it blocks.  Once it returns, it has the mutex\nacquired, and it sets the futex value to its own TID and returns.  Userspace\nhas no other work to perform - it now owns the lock, and futex value contains\nFUTEX_WAITERS|TID.\n\nIf the unlock side fastpath succeeds, [i.e.  userspace manages to do a TID -\u003e\n0 atomic transition of the futex value], then no kernel work is triggered.\n\nIf the unlock fastpath fails (because the FUTEX_WAITERS bit is set), then\nFUTEX_UNLOCK_PI is called, and the kernel unlocks the futex on the behalf of\nuserspace - and it also unlocks the attached pi_state-\u003ert_mutex and thus wakes\nup any potential waiters.\n\nNote that under this approach, contrary to other PI-futex approaches, there is\nno prior \u0027registration\u0027 of a PI-futex.  [which is not quite possible anyway,\ndue to existing ABI properties of pthread mutexes.]\n\nAlso, under this scheme, \u0027robustness\u0027 and \u0027PI\u0027 are two orthogonal properties\nof futexes, and all four combinations are possible: futex, robust-futex,\nPI-futex, robust+PI-futex.\n\n  glibc support:\n  --------------\n\nUlrich Drepper and Jakub Jelinek have written glibc support for PI-futexes\n(and robust futexes), enabling robust and PI (PTHREAD_PRIO_INHERIT) POSIX\nmutexes.  (PTHREAD_PRIO_PROTECT support will be added later on too, no\nadditional kernel changes are needed for that).  [NOTE: The glibc patch is\nobviously inofficial and unsupported without matching upstream kernel\nfunctionality.]\n\nthe patch-queue and the glibc patch can also be downloaded from:\n\n  http://redhat.com/~mingo/PI-futex-patches/\n\nMany thanks go to the people who helped us create this kernel feature: Steven\nRostedt, Esben Nielsen, Benedikt Spranger, Daniel Walker, John Cooper, Arjan\nvan de Ven, Oleg Nesterov and others.  Credits for related prior projects goes\nto Dirk Grambow, Inaky Perez-Gonzalez, Bill Huey and many others.\n\nClean up the futex code, before adding more features to it:\n\n - use u32 as the futex field type - that\u0027s the ABI\n - use __user and pointers to u32 instead of unsigned long\n - code style / comment style cleanups\n - rename hash-bucket name from \u0027bh\u0027 to \u0027hb\u0027.\n\nI checked the pre and post futex.o object files to make sure this\npatch has no code effects.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Ulrich Drepper \u003cdrepper@redhat.com\u003e\nCc: Jakub Jelinek \u003cjakub@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "66e5393a78b3fcca63e7748e38221dcca61c4aab",
      "tree": "57c5408e8e5596863f4abbe1c822bb0c1c7ff059",
      "parents": [
        "9fea80e4d984d411aa188baa31225c273ebe0fe6"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 27 02:54:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:46 2006 -0700"
      },
      "message": "[PATCH] BUG() if setscheduler is called from interrupt context\n\nThomas Gleixner is adding the call to a rtmutex function in setscheduler.\nThis call grabs a spin_lock that is not always protected by interrupts\ndisabled.  So this means that setscheduler cant be called from interrupt\ncontext.\n\nTo prevent this from happening in the future, this patch adds a\nBUG_ON(in_interrupt()) in that function.  (Thanks to akpm \u003caka.  Andrew\nMorton\u003e for this suggestion).\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9fea80e4d984d411aa188baa31225c273ebe0fe6",
      "tree": "da48ffcb1b5a502d72645e55ade9c6588e784cd4",
      "parents": [
        "5c45bf279d378d436ce45825c0f136696c7b6109"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@tv-sign.ru",
        "time": "Tue Jun 27 02:54:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched: uninline task_rq_lock()\n\nSaves 543 bytes from sched.o (gcc 3.3.3).\n\nSigned-off-by: Oleg Nesterov \u003coleg@tv-sign.ru\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Con Kolivas \u003ckernel@kolivas.org\u003e\nCc: Peter Williams \u003cpwil3058@bigpond.net.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5c45bf279d378d436ce45825c0f136696c7b6109",
      "tree": "80e2fcf4866b84fccb787562e1a83b16f4bc8850",
      "parents": [
        "369381694ddcf03f1de403501c8b97099b5109ec"
      ],
      "author": {
        "name": "Siddha, Suresh B",
        "email": "suresh.b.siddha@intel.com",
        "time": "Tue Jun 27 02:54:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched: mc/smt power savings sched policy\n\nsysfs entries \u0027sched_mc_power_savings\u0027 and \u0027sched_smt_power_savings\u0027 in\n/sys/devices/system/cpu/ control the MC/SMT power savings policy for the\nscheduler.\n\nBased on the values (1-enable, 0-disable) for these controls, sched groups\ncpu power will be determined for different domains.  When power savings\npolicy is enabled and under light load conditions, scheduler will minimize\nthe physical packages/cpu cores carrying the load and thus conserving\npower(with a perf impact based on the workload characteristics...  see OLS\n2005 CMP kernel scheduler paper for more details..)\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Con Kolivas \u003ckernel@kolivas.org\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "369381694ddcf03f1de403501c8b97099b5109ec",
      "tree": "3945620740cc1687c8487356bf4be90394695702",
      "parents": [
        "15f0b676a482fb4067cfe25de417c417dda3440a"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Tue Jun 27 02:54:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched_domai: Allocate sched_group structures dynamically\n\nAs explained here:\n\thttp://marc.theaimsgroup.com/?l\u003dlinux-kernel\u0026m\u003d114327539012323\u0026w\u003d2\n\nthere is a problem with sharing sched_group structures between two\nseparate sched_group structures for different sched_domains.\n\nThe patch has been tested and found to avoid the kernel lockup problem\ndescribed in above URL.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "15f0b676a482fb4067cfe25de417c417dda3440a",
      "tree": "29426196953a41d9cca0d81d501e76514ce820b2",
      "parents": [
        "d3a5aa9858cc9cecc3aadac7311d376c7c9e101a"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Tue Jun 27 02:54:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched_domai: Use kmalloc_node\n\nThe sched group structures used to represent various nodes need to be\nallocated from respective nodes (as suggested here also:\n\n\thttp://uwsg.ucs.indiana.edu/hypermail/linux/kernel/0603.3/0051.html)\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d3a5aa9858cc9cecc3aadac7311d376c7c9e101a",
      "tree": "2d753b1cfacdfe399aaa39c30d5f94623bc728e4",
      "parents": [
        "51888ca25a03125e742ef84d4ddfd74e139707a0"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Tue Jun 27 02:54:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched_domai: Don\u0027t use GFP_ATOMIC\n\nReplace GFP_ATOMIC allocation for sched_group_nodes with GFP_KERNEL based\nallocation.\n\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@in.ibm.com\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "51888ca25a03125e742ef84d4ddfd74e139707a0",
      "tree": "b15e50f3b67f6e2b94b783fce603d4a1f54a8189",
      "parents": [
        "615052dc3bf96278a843a64d3d1eea03532028c3"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@in.ibm.com",
        "time": "Tue Jun 27 02:54:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:45 2006 -0700"
      },
      "message": "[PATCH] sched_domain: handle kmalloc failure\n\nTry to handle mem allocation failures in build_sched_domains by bailing out\nand cleaning up thus-far allocated memory.  The patch has a direct consequence\nthat we disable load balancing completely (even at sibling level) upon *any*\nmemory allocation failure.\n\n[Lee.Schermerhorn@hp.com: bugfix]\nSigned-off-by: Srivatsa Vaddagir \u003cvatsa@in.ibm.com\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "615052dc3bf96278a843a64d3d1eea03532028c3",
      "tree": "e7d5c61bd244e5fbde4ada9ae2ef1ebe7923fb53",
      "parents": [
        "50ddd96917e4548b3813bfb5dd6f97f052b652bd"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Tue Jun 27 02:54:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: Avoid unnecessarily moving highest priority task move_tasks()\n\nProblem:\n\nTo help distribute high priority tasks evenly across the available CPUs\nmove_tasks() does not, under some circumstances, skip tasks whose load\nweight is bigger than the designated amount.  Because the highest priority\ntask on the busiest queue may be on the expired array it may be moved as a\nresult of this mechanism.  Apart from not being the most desirable way to\nredistribute the high priority tasks (we\u0027d rather move the second highest\npriority task), there is a risk that this could set up a loop with this\ntask bouncing backwards and forwards between the two queues.  (This latter\npossibility can be demonstrated by running a nice\u003d\u003d-20 CPU bound task on an\notherwise quiet 2 CPU system.)\n\nSolution:\n\nModify the mechanism so that it does not override skip for the highest\npriority task on the CPU.  Of course, if there are more than one tasks at\nthe highest priority then it will allow the override for one of them as\nthis is a desirable redistribution of high priority tasks.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "50ddd96917e4548b3813bfb5dd6f97f052b652bd",
      "tree": "f8e62672b35ebdefee048e042a54e8ceaeab0cf0",
      "parents": [
        "2dd73a4f09beacadde827a032cf15fd8b1fa3d48"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Tue Jun 27 02:54:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: modify move_tasks() to improve load balancing outcomes\n\nProblem:\n\nThe move_tasks() function is designed to move UP TO the amount of load it\nis asked to move and in doing this it skips over tasks looking for ones\nwhose load weights are less than or equal to the remaining load to be\nmoved.  This is (in general) a good thing but it has the unfortunate result\nof breaking one of the original load balancer\u0027s good points: namely, that\n(within the limits imposed by the active/expired array model and the fact\nthe expired is processed first) it moves high priority tasks before low\npriority ones and this means there\u0027s a good chance (see active/expired\nproblem for why it\u0027s only a chance) that the highest priority task on the\nqueue but not actually on the CPU will be moved to the other CPU where (as\na high priority task) it may preempt the current task.\n\nSolution:\n\nModify move_tasks() so that high priority tasks are not skipped when moving\nthem will make them the highest priority task on their new run queue.\n\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.com.au\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2dd73a4f09beacadde827a032cf15fd8b1fa3d48",
      "tree": "f81752d44e68240231518d6a3f05ac9ff6410a2d",
      "parents": [
        "efc30814a88bdbe2bfe4ac94de2eb089ad80bee3"
      ],
      "author": {
        "name": "Peter Williams",
        "email": "pwil3058@bigpond.net.au",
        "time": "Tue Jun 27 02:54:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: implement smpnice\n\nProblem:\n\nThe introduction of separate run queues per CPU has brought with it \"nice\"\nenforcement problems that are best described by a simple example.\n\nFor the sake of argument suppose that on a single CPU machine with a\nnice\u003d\u003d19 hard spinner and a nice\u003d\u003d0 hard spinner running that the nice\u003d\u003d0\ntask gets 95% of the CPU and the nice\u003d\u003d19 task gets 5% of the CPU.  Now\nsuppose that there is a system with 2 CPUs and 2 nice\u003d\u003d19 hard spinners and\n2 nice\u003d\u003d0 hard spinners running.  The user of this system would be entitled\nto expect that the nice\u003d\u003d0 tasks each get 95% of a CPU and the nice\u003d\u003d19\ntasks only get 5% each.  However, whether this expectation is met is pretty\nmuch down to luck as there are four equally likely distributions of the\ntasks to the CPUs that the load balancing code will consider to be balanced\nwith loads of 2.0 for each CPU.  Two of these distributions involve one\nnice\u003d\u003d0 and one nice\u003d\u003d19 task per CPU and in these circumstances the users\nexpectations will be met.  The other two distributions both involve both\nnice\u003d\u003d0 tasks being on one CPU and both nice\u003d\u003d19 being on the other CPU and\neach task will get 50% of a CPU and the user\u0027s expectations will not be\nmet.\n\nSolution:\n\nThe solution to this problem that is implemented in the attached patch is\nto use weighted loads when determining if the system is balanced and, when\nan imbalance is detected, to move an amount of weighted load between run\nqueues (as opposed to a number of tasks) to restore the balance.  Once\nagain, the easiest way to explain why both of these measures are necessary\nis to use a simple example.  Suppose that (in a slight variation of the\nabove example) that we have a two CPU system with 4 nice\u003d\u003d0 and 4 nice\u003d19\nhard spinning tasks running and that the 4 nice\u003d\u003d0 tasks are on one CPU and\nthe 4 nice\u003d\u003d19 tasks are on the other CPU.  The weighted loads for the two\nCPUs would be 4.0 and 0.2 respectively and the load balancing code would\nmove 2 tasks resulting in one CPU with a load of 2.0 and the other with\nload of 2.2.  If this was considered to be a big enough imbalance to\njustify moving a task and that task was moved using the current\nmove_tasks() then it would move the highest priority task that it found and\nthis would result in one CPU with a load of 3.0 and the other with a load\nof 1.2 which would result in the movement of a task in the opposite\ndirection and so on -- infinite loop.  If, on the other hand, an amount of\nload to be moved is calculated from the imbalance (in this case 0.1) and\nmove_tasks() skips tasks until it find ones whose contributions to the\nweighted load are less than this amount it would move two of the nice\u003d\u003d19\ntasks resulting in a system with 2 nice\u003d\u003d0 and 2 nice\u003d19 on each CPU with\nloads of 2.1 for each CPU.\n\nOne of the advantages of this mechanism is that on a system where all tasks\nhave nice\u003d\u003d0 the load balancing calculations would be mathematically\nidentical to the current load balancing code.\n\nNotes:\n\nstruct task_struct:\n\nhas a new field load_weight which (in a trade off of space for speed)\nstores the contribution that this task makes to a CPU\u0027s weighted load when\nit is runnable.\n\nstruct runqueue:\n\nhas a new field raw_weighted_load which is the sum of the load_weight\nvalues for the currently runnable tasks on this run queue.  This field\nalways needs to be updated when nr_running is updated so two new inline\nfunctions inc_nr_running() and dec_nr_running() have been created to make\nsure that this happens.  This also offers a convenient way to optimize away\nthis part of the smpnice mechanism when CONFIG_SMP is not defined.\n\nint try_to_wake_up():\n\nin this function the value SCHED_LOAD_BALANCE is used to represent the load\ncontribution of a single task in various calculations in the code that\ndecides which CPU to put the waking task on.  While this would be a valid\non a system where the nice values for the runnable tasks were distributed\nevenly around zero it will lead to anomalous load balancing if the\ndistribution is skewed in either direction.  To overcome this problem\nSCHED_LOAD_SCALE has been replaced by the load_weight for the relevant task\nor by the average load_weight per task for the queue in question (as\nappropriate).\n\nint move_tasks():\n\nThe modifications to this function were complicated by the fact that\nactive_load_balance() uses it to move exactly one task without checking\nwhether an imbalance actually exists.  This precluded the simple\noverloading of max_nr_move with max_load_move and necessitated the addition\nof the latter as an extra argument to the function.  The internal\nimplementation is then modified to move up to max_nr_move tasks and\nmax_load_move of weighted load.  This slightly complicates the code where\nmove_tasks() is called and if ever active_load_balance() is changed to not\nuse move_tasks() the implementation of move_tasks() should be simplified\naccordingly.\n\nstruct sched_group *find_busiest_group():\n\nSimilar to try_to_wake_up(), there are places in this function where\nSCHED_LOAD_SCALE is used to represent the load contribution of a single\ntask and the same issues are created.  A similar solution is adopted except\nthat it is now the average per task contribution to a group\u0027s load (as\nopposed to a run queue) that is required.  As this value is not directly\navailable from the group it is calculated on the fly as the queues in the\ngroups are visited when determining the busiest group.\n\nA key change to this function is that it is no longer to scale down\n*imbalance on exit as move_tasks() uses the load in its scaled form.\n\nvoid set_user_nice():\n\nhas been modified to update the task\u0027s load_weight field when it\u0027s nice\nvalue and also to ensure that its run queue\u0027s raw_weighted_load field is\nupdated if it was runnable.\n\nFrom: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\n\nWith smpnice, sched groups with highest priority tasks can mask the imbalance\nbetween the other sched groups with in the same domain.  This patch fixes some\nof the listed down scenarios by not considering the sched groups which are\nlightly loaded.\n\na) on a simple 4-way MP system, if we have one high priority and 4 normal\n   priority tasks, with smpnice we would like to see the high priority task\n   scheduled on one cpu, two other cpus getting one normal task each and the\n   fourth cpu getting the remaining two normal tasks.  but with current\n   smpnice extra normal priority task keeps jumping from one cpu to another\n   cpu having the normal priority task.  This is because of the\n   busiest_has_loaded_cpus, nr_loaded_cpus logic..  We are not including the\n   cpu with high priority task in max_load calculations but including that in\n   total and avg_load calcuations..  leading to max_load \u003c avg_load and load\n   balance between cpus running normal priority tasks(2 Vs 1) will always show\n   imbalanace as one normal priority and the extra normal priority task will\n   keep moving from one cpu to another cpu having normal priority task..\n\nb) 4-way system with HT (8 logical processors).  Package-P0 T0 has a\n   highest priority task, T1 is idle.  Package-P1 Both T0 and T1 have 1 normal\n   priority task each..  P2 and P3 are idle.  With this patch, one of the\n   normal priority tasks on P1 will be moved to P2 or P3..\n\nc) With the current weighted smp nice calculations, it doesn\u0027t always make\n   sense to look at the highest weighted runqueue in the busy group..\n   Consider a load balance scenario on a DP with HT system, with Package-0\n   containing one high priority and one low priority, Package-1 containing one\n   low priority(with other thread being idle)..  Package-1 thinks that it need\n   to take the low priority thread from Package-0.  And find_busiest_queue()\n   returns the cpu thread with highest priority task..  And ultimately(with\n   help of active load balance) we move high priority task to Package-1.  And\n   same continues with Package-0 now, moving high priority task from package-1\n   to package-0..  Even without the presence of active load balance, load\n   balance will fail to balance the above scenario..  Fix find_busiest_queue\n   to use \"imbalance\" when it is lightly loaded.\n\n[kernel@kolivas.org: sched: store weighted load on up]\n[kernel@kolivas.org: sched: add discrete weighted cpu load function]\n[suresh.b.siddha@intel.com: sched: remove dead code]\nSigned-off-by: Peter Williams \u003cpwil3058@bigpond.com.au\u003e\nCc: \"Siddha, Suresh B\" \u003csuresh.b.siddha@intel.com\u003e\nCc: \"Chen, Kenneth W\" \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nCc: John Hawkes \u003chawkes@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "efc30814a88bdbe2bfe4ac94de2eb089ad80bee3",
      "tree": "1134d7ccda13c09cf426af0524c13633292eac5b",
      "parents": [
        "cc94abfcbc9fed0048365ce1fb8dc81353408bf8"
      ],
      "author": {
        "name": "Kirill Korotaev",
        "email": "dev@sw.ru",
        "time": "Tue Jun 27 02:54:32 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: CPU hotplug race vs. set_cpus_allowed()\n\nThere is a race between set_cpus_allowed() and move_task_off_dead_cpu().\n__migrate_task() doesn\u0027t report any err code, so task can be left on its\nrunqueue if its cpus_allowed mask changed so that dest_cpu is not longer a\npossible target.  Also, chaning cpus_allowed mask requires rq-\u003elock being\nheld.\n\nSigned-off-by: Kirill Korotaev \u003cdev@openvz.org\u003e\nAcked-By: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "cc94abfcbc9fed0048365ce1fb8dc81353408bf8",
      "tree": "d7e40f7a9e710f220f1bf5f7514ac7eba2fc70c2",
      "parents": [
        "72d2854d4ebf5faf086ebccb2ed575c6b68a05dc"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 27 02:54:31 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] unnecessary long index i in sched\n\nUnless we expect to have more than 2G CPUs, there\u0027s no reason to have \u0027i\u0027\nas a long long here.\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72d2854d4ebf5faf086ebccb2ed575c6b68a05dc",
      "tree": "2a0b00a32a810b76ff29bde7d269998561408f8b",
      "parents": [
        "d444886e149a8413159da8b43ada2bc287e69b0c"
      ],
      "author": {
        "name": "Con Kolivas",
        "email": "kernel@kolivas.org",
        "time": "Tue Jun 27 02:54:30 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: fix interactive ceiling code\n\nThe relationship between INTERACTIVE_SLEEP and the ceiling is not perfect\nand not explicit enough.  The sleep boost is not supposed to be any larger\nthan without this code and the comment is not clear enough about what\nexactly it does, just the reason it does it.  Fix it.\n\nThere is a ceiling to the priority beyond which tasks that only ever sleep\nfor very long periods cannot surpass.  Fix it.\n\nPrevent the on-runqueue bonus logic from defeating the idle sleep logic.\n\nOpportunity to micro-optimise.\n\nSigned-off-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Mike Galbraith \u003cefault@gmx.de\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d444886e149a8413159da8b43ada2bc287e69b0c",
      "tree": "aa977a3b4e2a045df964b5ca2a9cddf50f978b85",
      "parents": [
        "c96d145e71c5c84601322d85748512e09d7b325f"
      ],
      "author": {
        "name": "Steven Rostedt",
        "email": "rostedt@goodmis.org",
        "time": "Tue Jun 27 02:54:29 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: simplify bitmap definition\n\nSigned-off-by: Steven Rostedt \u003crostedt@goodmis.org\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c96d145e71c5c84601322d85748512e09d7b325f",
      "tree": "4762f8aa4c970295a33afbc4ee506c72d7216073",
      "parents": [
        "7a8e2a5ea4cf43c0edd6db56a156549edb0eee98"
      ],
      "author": {
        "name": "Chen, Kenneth W",
        "email": "kenneth.w.chen@intel.com",
        "time": "Tue Jun 27 02:54:28 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:44 2006 -0700"
      },
      "message": "[PATCH] sched: fix smt nice lock contention and optimization\n\nInitial report and lock contention fix from Chris Mason:\n\nRecent benchmarks showed some performance regressions between 2.6.16 and\n2.6.5.  We tracked down one of the regressions to lock contention in\nschedule heavy workloads (~70,000 context switches per second)\n\nkernel/sched.c:dependent_sleeper() was responsible for most of the lock\ncontention, hammering on the run queue locks.  The patch below is more of a\ndiscussion point than a suggested fix (although it does reduce lock\ncontention significantly).  The dependent_sleeper code looks very expensive\nto me, especially for using a spinlock to bounce control between two\ndifferent siblings in the same cpu.\n\nIt is further optimized:\n\n* perform dependent_sleeper check after next task is determined\n* convert wake_sleeping_dependent to use trylock\n* skip smt runqueue check if trylock fails\n* optimize double_rq_lock now that smt nice is converted to trylock\n* early exit in searching first SD_SHARE_CPUPOWER domain\n* speedup fast path of dependent_sleeper\n\n[akpm@osdl.org: cleanup]\nSigned-off-by: Ken Chen \u003ckenneth.w.chen@intel.com\u003e\nAcked-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nAcked-by: Con Kolivas \u003ckernel@kolivas.org\u003e\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Chris Mason \u003cmason@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7a8e2a5ea4cf43c0edd6db56a156549edb0eee98",
      "tree": "42a88e7f8de0c22011b8e75fb96255e5360380d8",
      "parents": [
        "23916a8e3d8f41aa91474e834ac99808b197c39e"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:27 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:43 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: add proper Kconfig, Makefile entries\n\nReplace the temp makefile hacks with proper CONFIG entries, which are also\nadded to Kconfig.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "23916a8e3d8f41aa91474e834ac99808b197c39e",
      "tree": "d5d08172500e1b7bca0317bf29f6dd917b034200",
      "parents": [
        "ec312310e43acd5bb8b49314c6d472bb60d2d30c"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:26 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:43 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: display pin values in/out in gpio_dump\n\nAdd current pin settings to gpio_dump() output.  This adds the last \u0027word\u0027 to\nthe syslog lines, which displays the input and output values that the pin is\nset to.\n\n  pc8736x_gpio.0: io00: 0x0044 TS OD PUE  EDGE LO DEBOUNCE        io:1/1\n\nThe 2 values may differ for a number of reasons:\n1- the pin output circuitry is diaabled, (as the above \u0027TS\u0027 indicates)\n2- it needs a pullup resistor to drive the attached circuit,\n3- the external circuit needs a pullup so the open-drain has something\n   to pull-down\n4- the pin is wired to Vcc or Ground\n\nIt might be appropriate to add a WARN for 2,3,4, since they could\ndamage the chip and/or circuit, esp if misconfig goes unnoticed.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ec312310e43acd5bb8b49314c6d472bb60d2d30c",
      "tree": "6cb7101d9150b32b9d06446554a6e870eeb75c04",
      "parents": [
        "8bcf6135c3e8cdfab375f4041a48721483519eee"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:25 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:43 2006 -0700"
      },
      "message": "[PATCH] gpio-patchset-fixups: include linux/io.h\n\nHmm.  Im somewhat ambivalent about this patch, since with it, driver wont\nbuild for vanilla 17 or older.\n\nIts also only 1/2 of your suggestion - when I tried it, I was building against\nvanilla 17, and asm/uaccess.h cause compilation failure.  Looking back, Im\nperplexed as to why linux/io.h didnt cause same failure ?!?\n\nuse linux/io.h rather than asm/io.h\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "8bcf6135c3e8cdfab375f4041a48721483519eee",
      "tree": "06658c8beb4a8e0e3808ca962fced3166a0eb22b",
      "parents": [
        "6cad56fd884b7eb85ae193c94b688fe76680fcbf"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:25 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:43 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: replace spinlocks w mutexes\n\nReplace spinlocks guarding gpio config ops with mutexes.  This is a me-too\npatch, and is justifiable insofar as mutexes have stricter semantics and\nbetter debugging support, so are preferred where they are applicable.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6cad56fd884b7eb85ae193c94b688fe76680fcbf",
      "tree": "41f8abbc17063604501a529290c66059638fe2f7",
      "parents": [
        "f31000e573da052b6b8bcc21faff520b4e2eda7a"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:24 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:43 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: fix gpio_current, use shadow regs\n\nAdd a working gpio_current() to pc8736x_gpio.c (the previous implementation\njust threw a dev_warn), and fix gpio_change() to use gpio_current() rather\nthan the incorrect (and temporary) gpio_get().  Initialize shadow-regs so this\nall works.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "f31000e573da052b6b8bcc21faff520b4e2eda7a",
      "tree": "670d5e6e00da615f70d99a950cfe7b8603edad26",
      "parents": [
        "58b087cda1e9e46c7061c2282f92bd8e1970bfe7"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:23 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:43 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: use dev_dbg in common module\n\nUse of dev_dbg() and friends is considered good practice.  dev_dbg() needs a\nstruct device *devp, but nsc_gpio is only a helper module, so it doesnt\nhave/need its own.  To provide devp to the user-modules (scx200 \u0026 pc8736x\n_gpio), we add it to the vtable, and set it during init.\n\nAlso squeeze nsc_gpio_dump()\u0027s format a little.\n\n[  199.259879]  pc8736x_gpio.0: io09: 0x0044 TS OD PUE  EDGE LO DEBOUNCE\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "58b087cda1e9e46c7061c2282f92bd8e1970bfe7",
      "tree": "cfc7e0df87fd0f27d3d0da04a3136d7104ab10a4",
      "parents": [
        "681a3e7dab868a8c390724494e8b79dc596b9e0f"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:22 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:43 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: add platform_device for use w dev_dbg\n\nAdds platform-device to (just introduced) driver, and uses it to replace many\nprintks with dev_dbg() etc.  This could trivially be merged into previous\npatch, but this way matches better with the corresponding patch that does the\nsame change to scx200_gpio.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "681a3e7dab868a8c390724494e8b79dc596b9e0f",
      "tree": "d59157ed468a5e5ad7baa9b749c1b6b61274eab9",
      "parents": [
        "0e41ef3c51ea7dbb764616f60a90700647fc8518"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:21 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:43 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: add new pc8736x_gpio module\n\nAdd the brand new pc8736x_gpio driver.  This is mostly based upon\nscx200_gpio.c, but the platform_dev is treated separately, since its fairly\nbig too.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0e41ef3c51ea7dbb764616f60a90700647fc8518",
      "tree": "fc55403cca82ed01da9d6a7fadbaf4329cf9beb2",
      "parents": [
        "1a66fdf083bf2b60c4d12feb970bc7373b59e33a"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:43 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: migrate gpio_dump to common module\n\nSince the meaning of config-bits is the same for scx200 and pc8736x _gpios, we\ncan share a function to deliver this to user.  Since it is called via the\nvtable, its also completely replaceable.  For now, we keep using printk...\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1a66fdf083bf2b60c4d12feb970bc7373b59e33a",
      "tree": "f1e9d67e5c2fb3f9e7e575a6a9c44db3af6f6c22",
      "parents": [
        "1ca5df0a4cbd17a9536e63c5f69d4717c6538eb0"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:20 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:43 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: migrate file-ops to common module\n\nNow that the read(), write() file-ops are dispatching gpio-ops via the vtable,\nthey are generic, and can be moved \u0027verbatim\u0027 to the nsc_gpio common-support\nmodule.  After the move, various symbols are renamed to update \u0027scx200_\u0027 to\n\u0027nsc_\u0027, and headers are adjusted accordingly.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1ca5df0a4cbd17a9536e63c5f69d4717c6538eb0",
      "tree": "8986bbadc721599a0751b8ec6488f22bac2ce4a6",
      "parents": [
        "c3dc8071eedaac8c8a05c30fe20b78452a818dd9"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:19 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:42 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: add empty common-module\n\nAdd the nsc_gpio common-support module as an empty shell.  Next patch starts\nthe migration of the common gpio support routines.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c3dc8071eedaac8c8a05c30fe20b78452a818dd9",
      "tree": "8cd247bf39b47273b7a1a7aa06cc0fc4c16dd7cd",
      "parents": [
        "fe3a168a2ce1c93837cdf8fe27a3e67795155f90"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:42 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: dispatch via vtable\n\nNow actually call the gpio operations thru the vtable.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "fe3a168a2ce1c93837cdf8fe27a3e67795155f90",
      "tree": "798eaa66b5e95756e800132602ace5f5c00aa3b0",
      "parents": [
        "9b170b8fdbd14a197ad26b4354f3810c65a96602"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:18 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:42 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: add gpio-ops vtable\n\nAbstract the gpio operations into a new nsc_gpio_ops vtable.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9b170b8fdbd14a197ad26b4354f3810c65a96602",
      "tree": "087cea45b78d6091410729ecd94083833231ea72",
      "parents": [
        "9550a339e1ab1709dd53d92a1b76eecae2df9f3c"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:17 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:42 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: refactor scx200_probe to better segregate _gpio initialization\n\nPull shadow-reg initialization into separate function now, rather than doing\nit 2x later (scx200, pc8736x).  When we revisit 2nd drvr below, it will be to\nreimplement an init function, rather than another refactor.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9550a339e1ab1709dd53d92a1b76eecae2df9f3c",
      "tree": "a5bea006ebb482c6f4468816486254c401803282",
      "parents": [
        "d424aa8744b7b7db1d32476ae6c8015d10eebe1c"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:42 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: add \u0027v\u0027 command to device-file\n\nAdd a new driver command: \u0027v\u0027 which calls gpio_dump() on the pin.  The output\ngoes to the log, like all other INFO messages in the original driver.  Giving\nthe user control over the feedback they \u0027need\u0027 is construed to be a\nuser-friendly feature, and allows us (later) to dial down many INFO messages\nto DEBUG log-level.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d424aa8744b7b7db1d32476ae6c8015d10eebe1c",
      "tree": "b0bd0cf7dbb571a3639abffac6307cd8ff693c34",
      "parents": [
        "55b8c0455b8aeb80f94183fa3aa42e3fa62b1705"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:16 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:42 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: put gpio_dump on a diet\n\nShrink scx200_gpio_dump() to a single printk with ternary ops.  The function\nis still ifdef\u0027d out, this is corrected in next patch, when it is actually\nused.\n\nThe patch \u0027inadvertently\u0027 changed loglevel from DEBUG to INFO.  This is Good,\nbecause in next patch, its wired to a \u0027command\u0027 which the user can invoke when\nthey want.  When they do so, its because they want INFO to support their\ndevelopement effort, and we want to give it to them without compiling a DEBUG\nversion of the driver.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "55b8c0455b8aeb80f94183fa3aa42e3fa62b1705",
      "tree": "ec8f219a8518f32c1d7aef9546410f074cfb352e",
      "parents": [
        "979b5ec3a7055d35b212f657e80257ec1346aa0e"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:15 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:42 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: device minor numbers are unsigned ints\n\nPer kernel headers, device minor numbers are unsigned ints.  Do the same in\nthis driver.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "979b5ec3a7055d35b212f657e80257ec1346aa0e",
      "tree": "41c47b988d6302218fa71a7d8ca7f21b9fa95826",
      "parents": [
        "7d7f212661d68d231fdfaead03dda0dd44d5bbbb"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:42 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: add platforn_device for use w dev_dbg\n\nAdd a platform-device to scx200_gpio, and use its struct device dev member\n(ie: devp) in dev_dbg() once.\n\nThere are 2 alternatives here (Im soliciting guidance/commentary):\n\n- use isa_device, if/when its added to the kernel.\n\n- alter scx200.c to EXPORT_GPL its private devp so that both scx200_gpio,\n  and the (to be added) nsc_gpio module can use it.  Since the available devp\n  is in \u0027grandparent\u0027, this seems like too much \u0027action at a distance\u0027.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7d7f212661d68d231fdfaead03dda0dd44d5bbbb",
      "tree": "8f89786dc3a34c8511a63e9916027ed5b7b0f91b",
      "parents": [
        "62c83cde9282a9580994a12b3063e677181b5ebe"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:14 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:42 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: modernize driver init to 2.6 api\n\nAdopt many modern 2.6 coding practices, ala LDD3, chapter 3.  Changes are\nlimited to initialization calls from module init, ie: cdev_init, cdev_add,\n*_chrdev_region, mkdev.\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "62c83cde9282a9580994a12b3063e677181b5ebe",
      "tree": "f8f2843475d0c13cdc9dc64b09b5249f31449183",
      "parents": [
        "5a67e4c5b6faaccf31740a07d93704166405d880"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Tue Jun 27 02:54:13 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:42 2006 -0700"
      },
      "message": "[PATCH] chardev: GPIO for SCx200 \u0026 PC-8736x: whitespace pre-clean\n\nGPIO SUPPORT FOR SCx200 \u0026 PC8736x\n\nThe patch-set reworks the 2.4 vintage scx200_gpio driver for modern 2.6, and\nrefactors GPIO support to reuse it in a new driver for the GPIO on PC-8736x\nchips.  Its handy for the Soekris.com net-4801, which has both chips.\n\nThese patches have been seen recently on Kernel-Mentors, and then\nKernel-Newbies ML, where Jesper Juhl kindly reviewed it.  His feedback has\nbeen incorporated.  Thanks Jesper !\n\nIts also gone to soekris-tech@soekris.com for possible testing by linux folks,\nI\u0027ve gotten 1 promise so far.  Theyre mostly BSD folk over there, but we\u0027ll\nsee..\n\nDevice-file \u0026 Sysfs\n\nThe driver preserves the existing device-file interface, including the\nwrite/cmd set, but adds v to \u0027view\u0027 the pin-settings \u0026 configs by inducing,\nvia gpio_dump(), a dev_info() call.  Its a fairly crappy way to get status,\nbut it sticks to the syslog approach, conservatively.\n\nAllowing users to voluntarily trigger logging is good, it gives them a\nfamiliar way to confirm their app\u0027s control \u0026 use of the pins, and I\u0027ve thus\nreduced the pin-mode-updates from dev_info to dev_dbg.\n\nI\u0027ve recently bolted on a proto sysfs interface for both new drivers.  Im not\nincluding those patches here; they (the patch + doc-pre-patch) are still quite\nraw (and unreviewed on KNML), and since they \u0027invent\u0027 a convention for GPIO, a\nproper vetting is needed.  Since this patchset is much bigger than my previous\nones, Id like to keep things simpler, and address it 1st, before bolting on\nmore stuff.\n\nThe driver-split\n\nThe Geode CPU and the PC-87366 Super-IO chip have GPIO units which share a\ncommon pin-architecture (same pin features, with same bits controlling), but\nwith different addressing mechanics and port organizations.\n\nThe vintage driver expresses the pin capabilities with pin-mode commands\n[OoPpTt],etc that change the pin configurations, and since the 2 chips share\npin-arch, we can reuse the read(), write() commands, once the implementation\nis suitably adjusted.\n\nThe patchset adds a vtable: struct nsc_gpio_ops, to abstract the existing gpio\noperations, then adjusts fileops.write() code to invoke operations via that\nvtable.  Driver specific open()s set private_data to the vtable so its\navailable for use by write().\n\nThe vtable gets the gpio_dump() too, since its user-friendly, and (could be\nconstrued as) part of the current device-file interface.  To support use of\ndev_dbg() in write() \u0026 _dump(), the vtable gets a dev ptr too, set by both\nscx200 \u0026 pc8736x _gpio drivers.\n\nheres how the pins are presented in syslog:\n\n[ 1890.176223]  scx200_gpio.0: io00: 0x0044 TS OD PUE  EDGE LO DEBOUNCE\n[ 1890.287223]  scx200_gpio.0: io01: 0x0003 OE PP PUD  EDGE LO\n\nnsc_gpio.c: new file is new home of several file-ops methods, which are\nmodified to get their vtable from filp-\u003eprivate_data, and use it where needed.\n\nscx200_gpio.c: keeps some of its existing gpio routines, but now wires them up\nvia the vtable (they\u0027re invoked by nsc_gpio.c:nsc_gpio_write() thru this\nvtable).  A driver-spcific open() initializes filp-\u003eprivate_data with the\nvtable.\n\nOnce the split is clean, and the scx200_gpio driver is working, we copy and\nmodify the function and variable names, and rework the access-method bodies\nfor the different addressing scheme.\n\nHeres a working overview of the patchset:\n\n# series file for GPIO\n\n# Spring Cleaning\ngpio-scx/patch.preclean        # scripts/Lindent fixes, editor-ctrl comments\n\n# API Modernization\n\ngpio-scx/patch.api26        # what I learned from LDD3\ngpio-scx/patch.platform-dev-2    # get pdev, support for dev_dbg()\ngpio-scx/patch.unsigned-minor    # fix to match std practice\n\n# Debuggability\n\ngpio-scx/patch.dump-diet    # shrink gpio_dump()\ngpio-scx/patch.viewpins        # add new \u0027command\u0027 to call dump()\ngpio-scx/patch.init-refactor    # pull shadow-register init to sub\n\n# Access-Abstraction (add vtable)\n\ngpio-scx/patch.access-vtable    # introduce nsg_gpio_ops vtable, w dump\ngpio-scx/patch.vtable-calls    # add \u0026 use the vtable in scx200_gpio\ngpio-scx/patch.nscgpio-shell    # add empty driver for common-fops\n\n# move code under abstraction\ngpio-scx/patch.migrate-fops    # move file-ops methods from scx200_gpio\ngpio-scx/patch.common-dump    # mv scx200.c:scx200_gpio_dump() to nsc_gpio.c\ngpio-scx/patch.add-pc8736x-gpio    # add new driver, like old, w chip adapt\n# gpio-scx/patch.add-DEBUG    # enable all dev_dbg()s\n\n# Cleanups\n\n# finish printk -\u003e dev_dbg() etc\ngpio-scx/patch.pdev-pc8736x    # new drvr needs pdev too,\ngpio-scx/patch.devdbg-nscgpio    # add device to \u0027vtable\u0027, use in dev_dbg()\n\n# gpio-scx/patch.pin-config-view    # another \u0027c\u0027 \u0027command\u0027\n# gpio-scx/quiet-getset        # take out excess dbg stuff (pretty quiet\nnow)\ngpio-scx/patch.shadow-current    # imitate scx200_gpio\u0027s shadow regs in\npc87*\n\n# post KMentors-post patches ..\n\ngpio-scx/patch.mutexes        # use mutexes for config-locks\ngpio-scx/patch.viewpins-values    # extend dump to obsolete separate \u0027c\u0027 cmd\n\ngpio-scx/patch.kconfig        # add stuff for kbuild\n\n# TBC\n# combine api26 with pdev, which is just one step.\n# merge c\u0026v commands to single do-all-fn\n# delay viewpins, dump-diet should also un-ifdef it too.\n\ndiff.sys-gpio-rollup-1\n\nThis patch:\n\nRemoved editor format-control comments, and used scripts/Lindent to clean up\nwhitespace, then deleted the bogus chunks :-(\n\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "5a67e4c5b6faaccf31740a07d93704166405d880",
      "tree": "a302ac0dae12f3e430ff485242bc0a85ddfbc00d",
      "parents": [
        "39f4885c56073ecafd482d7e10dd7b17900fa312"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:11 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: use hotplug version of cpu notifier in appropriate places\n\nMake use the of newly defined hotplug version of cpu_notifier functionality\nwherever appropriate.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "39f4885c56073ecafd482d7e10dd7b17900fa312",
      "tree": "81a90a4b7bc4dae71613cce3e27da361b08ecb0a",
      "parents": [
        "26c2143b63b8078d08d562733716de142927e17a"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: add hotplug versions of cpu_notifier\n\nDefine new macros register_hotcpu_notifier() and unregister_hotcpu_notifier()\nthat redefines register_cpu_notifier() and unregister_cpu_notifier() for use\nonly when HOTPLUG_CPU is defined.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "26c2143b63b8078d08d562733716de142927e17a",
      "tree": "6a2add2bca5bffbd33a0465fd934fffa34a695e9",
      "parents": [
        "74b85f3790aa2550c617fe14439482e13e615fa0"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:10 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: make cpu_notifier related notifier calls __cpuinit only\n\nMake notifier_calls associated with cpu_notifier as __cpuinit.\n\n__cpuinit makes sure that the function is init time only unless\nCONFIG_HOTPLUG_CPU is defined.\n\n[akpm@osdl.org: section fix]\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "74b85f3790aa2550c617fe14439482e13e615fa0",
      "tree": "125e9c503d483c304e111ca825358bd81e0610cd",
      "parents": [
        "65edc68c345cbe21d0b0375c3452a3ed5e322868"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:09 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: make cpu_notifier related notifier blocks __cpuinit only\n\nMake notifier_blocks associated with cpu_notifier as __cpuinitdata.\n\n__cpuinitdata makes sure that the data is init time only unless\nCONFIG_HOTPLUG_CPU is defined.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "65edc68c345cbe21d0b0375c3452a3ed5e322868",
      "tree": "07961d63cdacf95355a8db471c6ff4e321ca94fd",
      "parents": [
        "054cc8a2d808822dadf488a61729e3e550f114c4"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:08 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: make [un]register_cpu_notifier init time only\n\nCPUs come online only at init time (unless CONFIG_HOTPLUG_CPU is defined).\nSo, cpu_notifier functionality need to be available only at init time.\n\nThis patch makes register_cpu_notifier() available only at init time, unless\nCONFIG_HOTPLUG_CPU is defined.\n\nThis patch exports register_cpu_notifier() and unregister_cpu_notifier() only\nif CONFIG_HOTPLUG_CPU is defined.\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "054cc8a2d808822dadf488a61729e3e550f114c4",
      "tree": "da7e5ecce06d1898263da9b47714b0b0fa972397",
      "parents": [
        "9c7b216d23e820e0e148d5be01bbb5bd2d8378fe"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:41 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: revert initdata patch submitted for 2.6.17\n\nThis patch reverts notifier_block changes made in 2.6.17\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9c7b216d23e820e0e148d5be01bbb5bd2d8378fe",
      "tree": "53e6c1e4870db49b4999b4053862d3f63375773f",
      "parents": [
        "6ac12dfe9c2027cd3c5ed603f11d1bb4f04906fe"
      ],
      "author": {
        "name": "Chandra Seetharaman",
        "email": "sekharan@us.ibm.com",
        "time": "Tue Jun 27 02:54:07 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] cpu hotplug: revert init patch submitted for 2.6.17\n\nIn 2.6.17, there was a problem with cpu_notifiers and XFS.  I provided a\nband-aid solution to solve that problem.  In the process, i undid all the\nchanges you both were making to ensure that these notifiers were available\nonly at init time (unless CONFIG_HOTPLUG_CPU is defined).\n\nWe deferred the real fix to 2.6.18.  Here is a set of patches that fixes the\nXFS problem cleanly and makes the cpu notifiers available only at init time\n(unless CONFIG_HOTPLUG_CPU is defined).\n\nIf CONFIG_HOTPLUG_CPU is defined then cpu notifiers are available at run\ntime.\n\nThis patch reverts the notifier_call changes made in 2.6.17\n\nSigned-off-by: Chandra Seetharaman \u003csekharan@us.ibm.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6ac12dfe9c2027cd3c5ed603f11d1bb4f04906fe",
      "tree": "7c1cb6d405dcaf959d9b1f67f62991775722fcde",
      "parents": [
        "b65b5b59f98aa317df399318b0b2770f50732d3c"
      ],
      "author": {
        "name": "Sonny Rao",
        "email": "sonny@burdell.org",
        "time": "Tue Jun 27 02:54:06 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] rtc: fix idr locking\n\nWe need to serialize access to the global rtc_idr even in this error path.\n\nSigned-off-by: Sonny Rao \u003csonny@burdell.org\u003e\nAcked-by: Alessandro Zummo \u003ca.zummo@towertech.it\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b65b5b59f98aa317df399318b0b2770f50732d3c",
      "tree": "dff57f7773b54b3336e56ab84aa8b4d820797572",
      "parents": [
        "33979734cd35ae0624337cdbc529921e4350d96f"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@lxorguk.ukuu.org.uk",
        "time": "Tue Jun 27 02:54:05 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] stallion clean up\n\nThere are two locking sets involved.  One locks the board mappings and the\nother is the tty open/close locking.  The low level code was clearly\ndesigned to be ported to OS\u0027s with spin locks already so pretty much comes\nout in the wash\n\nSigned-off-by: Alan Cox \u003calan@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "33979734cd35ae0624337cdbc529921e4350d96f",
      "tree": "7ad765559cf485247591160bad7e704a000a439b",
      "parents": [
        "c32e066057fe0914da262c94e52cefb142f965b4"
      ],
      "author": {
        "name": "akpm@osdl.org",
        "email": "akpm@osdl.org",
        "time": "Tue Jun 27 02:54:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] IPMI: use schedule in kthread\n\nCorey Minyard \u003cminyard@acm.org\u003e\n\nThe kthread used to speed up polling for IPMI was using udelay in its\nbusy-wait polling loop when the lower-level state machine told it to do a\nshort delay.  This just used CPU and didn\u0027t help scheduling, thus causing\nbad problems with other tasks.  Call schedule() instead.\n\nSigned-off-by: Corey Minyard \u003cminyard@acm.org\u003e\nAcked-by: Matt Domsch \u003cMatt_Domsch@dell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c32e066057fe0914da262c94e52cefb142f965b4",
      "tree": "c429649e39af7925a443c72f180349a451c7acbe",
      "parents": [
        "72e9bb549280b354311af30640c9433474f3a32c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Tue Jun 27 02:54:04 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] rcutorture: add call_rcu_bh() operations\n\nAdd operations for the call_rcu_bh() variant of RCU.  Also add an\nrcu_batches_completed_bh() function, which is needed by rcutorture.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "72e9bb549280b354311af30640c9433474f3a32c",
      "tree": "5f35cb787f758f29f7853b9e1d96a9e5ab02eaed",
      "parents": [
        "29766f1eb3d8d6cfaf1d6623fb4c3f7e5a822fe4"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Tue Jun 27 02:54:03 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] rcutorture: add ops vector and Classic RCU ops\n\nAdd an ops vector to rcutorture, and add the ops for Classic RCU.  Update\nthe rcutorture documentation to reflect slight change to the dmesg formats.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "29766f1eb3d8d6cfaf1d6623fb4c3f7e5a822fe4",
      "tree": "e356c483e332f2a688d5d9e8edfb7e7a6729af44",
      "parents": [
        "1dbe83c3445a1604546620a60888cf26b63f8782"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@us.ibm.com",
        "time": "Tue Jun 27 02:54:02 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:40 2006 -0700"
      },
      "message": "[PATCH] rcutorture: catchup doc fixes for idle-hz tests\n\nThis just catches the RCU torture documentation up with the recent fixes\nthat test RCU for architectures that turn of the scheduling-clock interrupt\nfor idle CPUs and the addition of a SUCCESS/FAILURE indication, fixing up\nan obsolete comment as well.\n\nSigned-off-by: Paul E. McKenney \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1dbe83c3445a1604546620a60888cf26b63f8782",
      "tree": "c4113aeb6a2beaff433ffddd19121f37e119b444",
      "parents": [
        "283fef59d6e934e8da11631446ea8e2e93fce14c"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Tue Jun 27 02:54:01 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:39 2006 -0700"
      },
      "message": "[PATCH] fix kernel-doc in kernel/ dir\n\nFix kernel-doc parameters in kernel/\n\nWarning(/var/linsrc/linux-2617-g9//kernel/auditsc.c:1376): No description found for parameter \u0027u_abs_timeout\u0027\nWarning(/var/linsrc/linux-2617-g9//kernel/auditsc.c:1420): No description found for parameter \u0027u_msg_prio\u0027\nWarning(/var/linsrc/linux-2617-g9//kernel/auditsc.c:1420): No description found for parameter \u0027u_abs_timeout\u0027\nWarning(/var/linsrc/linux-2617-g9//kernel/acct.c:526): No description found for parameter \u0027pacct\u0027\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "283fef59d6e934e8da11631446ea8e2e93fce14c",
      "tree": "6617b7b3a492e9a1b9d0e34c24ae725c9c5fa0b6",
      "parents": [
        "05f225dc8729d3e5703b8c34e750fdca67bcefe6"
      ],
      "author": {
        "name": "Paul Fulghum",
        "email": "paulkf@microgate.com",
        "time": "Tue Jun 27 02:54:00 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:39 2006 -0700"
      },
      "message": "[PATCH] tty: fix TCSBRK comment\n\nFix TCSBRK comment to prevent confusion or accidental removal.\n\nSigned-off-by: Paul Fulghum \u003cpaulkf@microgate.com\u003e\nCc: Alan Cox \u003calan@lxorguk.ukuu.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "05f225dc8729d3e5703b8c34e750fdca67bcefe6",
      "tree": "d0ac17e47cafb73e38962ded785301aa01dab020",
      "parents": [
        "0ca06664902d82ff0cb962cc4a72f63ab4bf4991"
      ],
      "author": {
        "name": "Evgeniy Dushistov",
        "email": "dushistov@mail.ru",
        "time": "Tue Jun 27 02:53:59 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:39 2006 -0700"
      },
      "message": "[PATCH] ufs: ufs_read_inode cleanup\n\nAdd missed ufsi-\u003ei_dir_start_lookup initialization in ufs_read_inode in\nUFS2 case.  Also it cleans ufs_read_inode function to prevent such kind of\nsituation in the future: it move depend on UFS type parts of code into\nseparate functions and leaves in ufs_read_inode only generic code.  It\ncleans code and avoids duplication.\n\nSigned-off-by: Evgeniy Dushistov \u003cdushistov@mail.ru\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0ca06664902d82ff0cb962cc4a72f63ab4bf4991",
      "tree": "d2ee0c36e1984a34f13636548ff1432b54addf88",
      "parents": [
        "6527c2bdf1f833cc18e8f42bd97973d583e4aa83"
      ],
      "author": {
        "name": "Atsushi Nemoto",
        "email": "anemo@mba.ocn.ne.jp",
        "time": "Tue Jun 27 02:53:58 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:39 2006 -0700"
      },
      "message": "[PATCH] RTC: Add a comment for ENOIOCTLCMD in ds1553_rtc_ioctl\n\nSigned-off-by: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "6527c2bdf1f833cc18e8f42bd97973d583e4aa83",
      "tree": "737055ae276cdfa75e7b3e55a3ebdd1f88105606",
      "parents": [
        "1c0f16e5cdff59f3b132a1b0c0d44a941f8813d2"
      ],
      "author": {
        "name": "Vladimir V. Saveliev",
        "email": "vs@namesys.com",
        "time": "Tue Jun 27 02:53:57 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:39 2006 -0700"
      },
      "message": "[PATCH] generic_file_buffered_write(): deadlock on vectored write\n\ngeneric_file_buffered_write() prefaults in user pages in order to avoid\ndeadlock on copying from the same page as write goes to.\n\nHowever, it looks like there is a problem when write is vectored:\nfault_in_pages_readable brings in current segment or its part (maxlen).\nOTOH, filemap_copy_from_user_iovec is called to copy number of bytes\n(bytes) which may exceed current segment, so filemap_copy_from_user_iovec\nswitches to the next segment which is not brought in yet.  Pagefault is\ngenerated.  That causes the deadlock if pagefault is for the same page\nwrite goes to: page being written is locked and not uptodate, pagefault\nwill deadlock trying to lock locked page.\n\n[akpm@osdl.org: somewhat rewritten]\nCc: Neil Brown \u003cneilb@suse.de\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1c0f16e5cdff59f3b132a1b0c0d44a941f8813d2",
      "tree": "b2693f9e481381ae3e703afa3b68ad3531ea6645",
      "parents": [
        "34af946a22724c4e2b204957f2b24b22a0fb121c"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "dwmw2@infradead.org",
        "time": "Tue Jun 27 02:53:56 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:39 2006 -0700"
      },
      "message": "[PATCH] Remove gratuitous inclusion of \u003clinux/config.h\u003e from \u003clinux/dmaengine.h\u003e\n\nWe include config.h on the compiler command line. There\u0027s no need for it\nto be included again.\n\nSigned-off-by: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "34af946a22724c4e2b204957f2b24b22a0fb121c",
      "tree": "7881dcbd0a698257c126198cdb6d97d4e45ee51e",
      "parents": [
        "b6cd0b772dcc5dc9b4c03d53946474dee399fa72"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:53:55 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:39 2006 -0700"
      },
      "message": "[PATCH] spin/rwlock init cleanups\n\nlocking init cleanups:\n\n - convert \" \u003d SPIN_LOCK_UNLOCKED\" to spin_lock_init() or DEFINE_SPINLOCK()\n - convert rwlocks in a similar manner\n\nthis patch was generated automatically.\n\nMotivation:\n\n - cleanliness\n - lockdep needs control of lock initialization, which the open-coded\n   variants do not give\n - it\u0027s also useful for -rt and for lock debugging in general\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b6cd0b772dcc5dc9b4c03d53946474dee399fa72",
      "tree": "09ef125f7595f73ba256177f894d6c341074ff5b",
      "parents": [
        "a7807a32bbb027ab9955b96734fdc7f1e6497a9f"
      ],
      "author": {
        "name": "Adrian Bunk",
        "email": "bunk@stusta.de",
        "time": "Tue Jun 27 02:53:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:38 2006 -0700"
      },
      "message": "[PATCH] fs/buffer.c: cleanups\n\n- add a proper prototype for the following global function:\n  - buffer_init()\n\n- make the following needlessly global function static:\n  - end_buffer_async_write()\n\nSigned-off-by: Adrian Bunk \u003cbunk@stusta.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "a7807a32bbb027ab9955b96734fdc7f1e6497a9f",
      "tree": "8ed62e305638e1b853f1c80b5bb7ed818418765c",
      "parents": [
        "b3c681e09193559ba15f6c9562bd37045f120a96"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Tue Jun 27 02:53:54 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:38 2006 -0700"
      },
      "message": "[PATCH] poison: add \u0026 use more constants\n\nAdd more poison values to include/linux/poison.h.  It\u0027s not clear to me\nwhether some others should be added or not, so I haven\u0027t added any of\nthese:\n\n./include/linux/libata.h:#define ATA_TAG_POISON\t\t0xfafbfcfdU\n./arch/ppc/8260_io/fcc_enet.c:1918:\tmemset((char *)(\u0026(immap-\u003eim_dprambase[(mem_addr+64)])), 0x88, 32);\n./drivers/usb/mon/mon_text.c:429:\tmemset(mem, 0xe5, sizeof(struct mon_event_text));\n./drivers/char/ftape/lowlevel/ftape-ctl.c:738:\t\tmemset(ft_buffer[i]-\u003eaddress, 0xAA, FT_BUFF_SIZE);\n./drivers/block/sx8.c:/* 0xf is just arbitrary, non-zero noise; this is sorta like poisoning */\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "b3c681e09193559ba15f6c9562bd37045f120a96",
      "tree": "8c70d20988e6b04171cb1f60b0da34978bca5f36",
      "parents": [
        "c9cf55285e87ac423c45d9efca750d3f50234d10"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Tue Jun 27 02:53:53 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:38 2006 -0700"
      },
      "message": "[PATCH] update two drivers for poison.h\n\nUpdate two drivers to use poison.h.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c9cf55285e87ac423c45d9efca750d3f50234d10",
      "tree": "d46f3e90fbb38115c25b3315f6280ad65f83a14f",
      "parents": [
        "e6e5494cb23d1933735ee47cc674ffe1c4afed6f"
      ],
      "author": {
        "name": "Randy Dunlap",
        "email": "rdunlap@xenotime.net",
        "time": "Tue Jun 27 02:53:52 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:38 2006 -0700"
      },
      "message": "[PATCH] add poison.h and patch primary users\n\nLocalize poison values into one header file for better documentation and\neasier/quicker debugging and so that the same values won\u0027t be used for\nmultiple purposes.\n\nUse these constants in core arch., mm, driver, and fs code.\n\nSigned-off-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nAcked-by: Matt Mackall \u003cmpm@selenic.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "e6e5494cb23d1933735ee47cc674ffe1c4afed6f",
      "tree": "c8945bb3ae5bec38693d801fb589d22d48d6f8eb",
      "parents": [
        "d5fb34261dcd32c9cb3b28121fdc46308db513a1"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Jun 27 02:53:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:38 2006 -0700"
      },
      "message": "[PATCH] vdso: randomize the i386 vDSO by moving it into a vma\n\nMove the i386 VDSO down into a vma and thus randomize it.\n\nBesides the security implications, this feature also helps debuggers, which\ncan COW a vma-backed VDSO just like a normal DSO and can thus do\nsingle-stepping and other debugging features.\n\nIt\u0027s good for hypervisors (Xen, VMWare) too, which typically live in the same\nhigh-mapped address space as the VDSO, hence whenever the VDSO is used, they\nget lots of guest pagefaults and have to fix such guest accesses up - which\nslows things down instead of speeding things up (the primary purpose of the\nVDSO).\n\nThere\u0027s a new CONFIG_COMPAT_VDSO (default\u003dy) option, which provides support\nfor older glibcs that still rely on a prelinked high-mapped VDSO.  Newer\ndistributions (using glibc 2.3.3 or later) can turn this option off.  Turning\nit off is also recommended for security reasons: attackers cannot use the\npredictable high-mapped VDSO page as syscall trampoline anymore.\n\nThere is a new vdso\u003d[0|1] boot option as well, and a runtime\n/proc/sys/vm/vdso_enabled sysctl switch, that allows the VDSO to be turned\non/off.\n\n(This version of the VDSO-randomization patch also has working ELF\ncoredumping, the previous patch crashed in the coredumping code.)\n\nThis code is a combined work of the exec-shield VDSO randomization\ncode and Gerd Hoffmann\u0027s hypervisor-centric VDSO patch. Rusty Russell\nstarted this patch and i completed it.\n\n[akpm@osdl.org: cleanups]\n[akpm@osdl.org: compile fix]\n[akpm@osdl.org: compile fix 2]\n[akpm@osdl.org: compile fix 3]\n[akpm@osdl.org: revernt MAXMEM change]\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Arjan van de Ven \u003carjan@infradead.org\u003e\nCc: Gerd Hoffmann \u003ckraxel@suse.de\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nCc: Jan Beulich \u003cjbeulich@novell.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "d5fb34261dcd32c9cb3b28121fdc46308db513a1",
      "tree": "640ff0e6b5c7422ba4295a4140849553dcaa57c5",
      "parents": [
        "96c52749036eca2b131f435d3895a3c6aba92e76"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Tue Jun 27 02:53:50 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:38 2006 -0700"
      },
      "message": "[PATCH] voyager: fix compile after setup rework\n\nThe following\n\n[PATCH] Clean up and refactor i386 sub-architecture setup\n\nDoesn\u0027t quite work, since it leaves out an include of asm/io.h, without\nwhich the use of inb/outb in the setup file won.t work.  This corrects that\nand also removes a spurious acpi reference that apparently crept in ages\nago but should never have been there.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "96c52749036eca2b131f435d3895a3c6aba92e76",
      "tree": "77b92dfa86d4d81b3ee11f2517e118c6025026c6",
      "parents": [
        "4031ff388138b58e5cd472dccce38828bcb8c706"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@SteelEye.com",
        "time": "Tue Jun 27 02:53:49 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:38 2006 -0700"
      },
      "message": "[PATCH] fix subarchitecture breakage with CONFIG_SCHED_SMT\n\nCommit 1e9f28fa1eb9773bf65bae08288c6a0a38eef4a7 (\"[PATCH] sched: new\nsched domain for representing multi-core\") incorrectly made SCHED_SMT\nand some of the structures it uses dependent on SMP.\n\nHowever, this is wrong, the structures are only defined if X86_HT, so\nSCHED_SMT has to depend on that as well.\n\nThe patch broke voyager, since it doesn\u0027t provide any of the multi-core\nor hyperthreading structures.\n\nSigned-off-by: James Bottomley \u003cJames.Bottomley@SteelEye.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4031ff388138b58e5cd472dccce38828bcb8c706",
      "tree": "f2c88fdcdef3ec9880d23ce271f14e95f7aa1cf5",
      "parents": [
        "c723e084606ca1c81e91b80b2c0c44bde7bbc4df"
      ],
      "author": {
        "name": "Aleksey Gorelov",
        "email": "Aleksey_Gorelov@Phoenix.com",
        "time": "Tue Jun 27 02:53:48 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:38 2006 -0700"
      },
      "message": "[PATCH] fix broken vm86 interrupt/signal handling\n\nCommit c3ff8ec31c1249d268cd11390649768a12bec1b9 (\"[PATCH] i386: Don\u0027t\nmiss pending signals returning to user mode after signal processing\")\nmeant that vm86 interrupt/signal handling got broken for the case when\nvm86 is called from kernel space.\n\nIn this scenario, if signal is pending because of vm86 interrupt,\ndo_notify_resume/do_signal exits immediately due to user_mode() check,\nwithout processing any signals.  Thus, resume_userspace handler is spinning\nin a tight loop with signal pending and TIF_SIGPENDING is set.  Previously\neverything worked Ok.\n\nNo in-tree usage of vm86() from kernel space exists, but I\u0027ve heard\nabout a number of projects out there which use vm86 calls from kernel,\none of them being this, for instance:\n\n\thttp://dev.gentoo.org/~spock/projects/vesafb-tng/\n\nThe following patch fixes the issue.\n\nSigned-off-by: Aleksey Gorelov \u003caleksey_gorelov@phoenix.com\u003e\nCc: Atsushi Nemoto \u003canemo@mba.ocn.ne.jp\u003e\nCc: Roland McGrath \u003croland@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "c723e084606ca1c81e91b80b2c0c44bde7bbc4df",
      "tree": "c338f62586978093d7c6b85c3f783cb65879c1f1",
      "parents": [
        "4b89aff930d632be10d557d08d1b60dee7163dbe"
      ],
      "author": {
        "name": "Chuck Ebbert",
        "email": "76306.1226@compuserve.com",
        "time": "Tue Jun 27 02:53:47 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] i386: use C code for current_thread_info()\n\nUsing C code for current_thread_info() lets the compiler optimize it.\nWith gcc 4.0.2, kernel is smaller:\n\n    text           data     bss     dec     hex filename\n 3645212         555556  312024 4512792  44dc18 2.6.17-rc6-nb-post/vmlinux\n 3647276         555556  312024 4514856  44e428 2.6.17-rc6-nb/vmlinux\n -------\n   -2064\n\nSigned-off-by: Chuck Ebbert \u003c76306.1226@compuserve.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "4b89aff930d632be10d557d08d1b60dee7163dbe",
      "tree": "f7d854a81b9c5b1b4e6df01cb78ce9ff34684309",
      "parents": [
        "7f35bf929ffe2b3967c8f398880fcb78fcd2ab5c"
      ],
      "author": {
        "name": "Rohit Seth",
        "email": "rohitseth@google.com",
        "time": "Tue Jun 27 02:53:46 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] i386: move phys_proc_id and cpu_core_id to cpuinfo_x86\n\nMove the phys_core_id and cpu_core_id to cpuinfo_x86 structure.  Similar\npatch for x86_64 is already accepted by Andi earlier this week.\n\n[akpm@osdl.org: fix warning]\nSigned-off-by: Rohit Seth \u003crohitseth@google.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7f35bf929ffe2b3967c8f398880fcb78fcd2ab5c",
      "tree": "4000118f8b7c188676ac824214ad5226a616c6bc",
      "parents": [
        "19eadf98c8167eac843580683317b99572e2abf0"
      ],
      "author": {
        "name": "Andreas Mohr",
        "email": "andi@rhlx01.fht-esslingen.de",
        "time": "Tue Jun 27 02:53:45 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] x86: constify some parts of arch/i386/kernel/cpu/\n\nSigned-off-by: Andreas Mohr \u003candi@lisas.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "19eadf98c8167eac843580683317b99572e2abf0",
      "tree": "a5625f7834f0f06fc28a605c3cdb8debe2218498",
      "parents": [
        "bd9e0b74f52dbac6241643fadca2393808b14c7a"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue Jun 27 02:53:44 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] x86: increase interrupt vector range\n\nRemove the limit of 256 interrupt vectors by changing the value stored in\norig_{e,r}ax to be the complemented interrupt vector.  The orig_{e,r}ax\nneeds to be \u003c 0 to allow the signal code to distinguish between return from\ninterrupt and return from syscall.  With this change applied, NR_IRQS can\nbe \u003e 256.\n\nXen extends the IRQ numbering space to include room for dynamically\nallocated virtual interrupts (in the range 256-511), which requires a more\npermissive interface to do_IRQ.\n\nSigned-off-by: Ian Pratt \u003cian.pratt@xensource.com\u003e\nSigned-off-by: Christian Limpach \u003cChristian.Limpach@cl.cam.ac.uk\u003e\nSigned-off-by: Chris Wright \u003cchrisw@sous-sol.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Protasevich, Natalie\" \u003cNatalie.Protasevich@UNISYS.com\u003e\nCc: Andi Kleen \u003cak@muc.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "bd9e0b74f52dbac6241643fadca2393808b14c7a",
      "tree": "af2c479782edbeca009cf195401d82abb61b1ac7",
      "parents": [
        "28eba5bf9d4bf3ba4d58d985abf3a2903b7f2125"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Tue Jun 27 02:53:43 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] x86: cpu_init(): avoid GFP_KERNEL allocation while atomic\n\nThe patch fixes two issues:\n\n1.  cpu_init is called with interrupt disabled.  Allocating gdt table\n   there isn\u0027t good at runtime.\n\n2. gdt table page cause memory leak in CPU hotplug case.\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Zachary Amsden \u003czach@vmware.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "28eba5bf9d4bf3ba4d58d985abf3a2903b7f2125",
      "tree": "e825fc3fb6bdd81ae0aa146572406eb69bc5404b",
      "parents": [
        "76b67ed9dce69a6a329cdd66f94af1787f417b62"
      ],
      "author": {
        "name": "Michael LeMay",
        "email": "mdlemay@epoch.ncsc.mil",
        "time": "Tue Jun 27 02:53:42 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] selinux: inherit /proc/self/attr/keycreate across fork\n\nUpdate SELinux to cause the keycreate process attribute held in\n/proc/self/attr/keycreate to be inherited across a fork and reset upon\nexecve.  This is consistent with the handling of the other process\nattributes provided by SELinux and also makes it simpler to adapt logon\nprograms to properly handle the keycreate attribute.\n\nSigned-off-by: Michael LeMay \u003cmdlemay@epoch.ncsc.mil\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by:  Stephen Smalley \u003csds@tycho.nsa.gov\u003e\nAcked-by: James Morris \u003cjmorris@namei.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "76b67ed9dce69a6a329cdd66f94af1787f417b62",
      "tree": "4d80993e607ae4a870f98ad3441795737570b012",
      "parents": [
        "dd0932d9d4301bd58a4d5a634a3a8298c4fc5e24"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:41 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] node hotplug: register cpu: remove node struct\n\nWith Goto-san\u0027s patch, we can add new pgdat/node at runtime.  I\u0027m now\nconsidering node-hot-add with cpu + memory on ACPI.\n\nI found acpi container, which describes node, could evaluate cpu before\nmemory. This means cpu-hot-add occurs before memory hot add.\n\nIn most part, cpu-hot-add doesn\u0027t depend on node hot add.  But register_cpu(),\nwhich creates symbolic link from node to cpu, requires that node should be\nonlined before register_cpu().  When a node is onlined, its pgdat should be\nthere.\n\nThis patch-set holds off creating symbolic link from node to cpu\nuntil node is onlined.\n\nThis removes node arguments from register_cpu().\n\nNow, register_cpu() requires \u0027struct node\u0027 as its argument.  But the array of\nstruct node is now unified in driver/base/node.c now (By Goto\u0027s node hotplug\npatch).  We can get struct node in generic way.  So, this argument is not\nnecessary now.\n\nThis patch also guarantees add cpu under node only when node is onlined.  It\nis necessary for node-hot-add vs.  cpu-hot-add patch following this.\n\nMoreover, register_cpu calculates cpu-\u003enode_id by cpu_to_node() without regard\nto its \u0027struct node *root\u0027 argument.  This patch removes it.\n\nAlso modify callers of register_cpu()/unregister_cpu, whose args are changed\nby register-cpu-remove-node-struct patch.\n\n[Brice.Goglin@ens-lyon.org: fix it]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: Ashok Raj \u003cashok.raj@intel.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nSigned-off-by: Brice Goglin \u003cBrice.Goglin@ens-lyon.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "dd0932d9d4301bd58a4d5a634a3a8298c4fc5e24",
      "tree": "864da70354875dadfcaebd51571122462959530a",
      "parents": [
        "7049027c6f0098eb6b23b8f6ca65a905541faf81"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:40 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] pgdat allocation and update for ia64 of memory hotplug: allocate pgdat and per node data\n\nThis is a patch to allocate pgdat and per node data area for ia64.  The size\nfor them can be calculated by compute_pernodesize().\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "7049027c6f0098eb6b23b8f6ca65a905541faf81",
      "tree": "ab5528625be6e79c02767c6d9444599c1980cf0e",
      "parents": [
        "ae5a2c1c9b2bc3633032f97d02e60ae547a6047c"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:39 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:37 2006 -0700"
      },
      "message": "[PATCH] pgdat allocation and update for ia64 of memory hotplug: update pgdat address array\n\nThis is to refresh node_data[] array for ia64.  As I mentioned previous\npatches, ia64 has copies of information of pgdat address array on each node as\nper node data.\n\nAt v2 of node_add, this function used stop_machine_run() to update them.  (I\nwished that they were copied safety as much as possible.) But, in this patch,\nthis arrays are just copied simply, and set node_online_map bit after\ncompletion of pgdat initialization.\n\nSo, kernel must touch NODE_DATA() macro after checking node_online_map().\n(Current code has already done it.) This is more simple way for just\nhot-add.....\n\nNote : It will be problem when hot-remove will occur,\n       because, even if online_map bit is set, kernel may\n       touch NODE_DATA() due to race condition. :-(\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "ae5a2c1c9b2bc3633032f97d02e60ae547a6047c",
      "tree": "51244762aca6ff087d4934f184c3877888b198c3",
      "parents": [
        "0fc44159bfcb5b0afa178f9c3f50db23aebc76ff"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:36 2006 -0700"
      },
      "message": "[PATCH] pgdat allocation and update for ia64 of memory hotplug: hold pgdat address at system running\n\nThis is a preparatory patch to make common code for updating of NODE_DATA() of\nia64 between boottime and hotplug.\n\nCurrent code remembers pgdat address in mem_data which is used at just boot\ntime.  But its information can be used at hotplug time by moving to global\nvalue.  The next patch uses this array.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0fc44159bfcb5b0afa178f9c3f50db23aebc76ff",
      "tree": "d87e47c0f5e6b2eff1d9113d3495d185924734d9",
      "parents": [
        "1f04bbd2d396a701c5af2e5b92bad896c2550c16"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:38 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:36 2006 -0700"
      },
      "message": "[PATCH] Register sysfs file for hotplugged new node\n\nWhen new node becomes enable by hot-add, new sysfs file must be created for\nnew node.  So, if new node is enabled by add_memory(), register_one_node() is\ncalled to create it.  In addition, I386\u0027s arch_register_node() and a part of\nregister_nodes() of powerpc are consolidated to register_one_node() as a\ngeneric_code().\n\nThis is tested by Tiger4(IPF) with node hot-plug emulation.\n\nSigned-off-by: Keiichiro Tokunaga \u003ctokuanga.keiich@jp.fujitsu.com\u003e\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "1f04bbd2d396a701c5af2e5b92bad896c2550c16",
      "tree": "ec84c99b1259361bc0878ebe78f1acadb30dad25",
      "parents": [
        "2842f11419704f8707fffc82e10d2263427fc130"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:37 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:36 2006 -0700"
      },
      "message": "[PATCH] sparc64: support sparsemem and !memory hotplug\n\nFix \"undefined reference to `arch_add_memory\u0027\" on sparc64 allmodconfig.\n\nsparc64 doesn\u0027t support memory hotplug.  But we want it to support\nsparsemem.\n\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "2842f11419704f8707fffc82e10d2263427fc130",
      "tree": "9bc86163ba7b2fa842b3aff2f087be6419f246bb",
      "parents": [
        "0a54703904a4a206686b4e8c3f5a6927b60747aa"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:36 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:36 2006 -0700"
      },
      "message": "[PATCH] catch valid mem range at onlining memory\n\nThis patch allows hot-add memory which is not aligned to section.\n\nNow, hot-added memory has to be aligned to section size.  Considering big\nsection sized archs, this is not useful.\n\nWhen hot-added memory is registerd as iomem resoruce by iomem resource\npatch, we can make use of that information to detect valid memory range.\n\nNote: With this, not-aligned memory can be registerd. To allow hot-add\n      memory with holes, we have to do more work around add_memory().\n      (It doesn\u0027t allows add memory to already existing mem section.)\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "0a54703904a4a206686b4e8c3f5a6927b60747aa",
      "tree": "2aa373cdd78094666d9cdf526391235a65afaee8",
      "parents": [
        "9af3c2dea3a3ae4248d81a70b556adfe1dc65d55"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:35 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:36 2006 -0700"
      },
      "message": "[PATCH] register hot-added memory to iomem resource\n\nRegister hot-added memory to iomem_resource.  With this, /proc/iomem can\nshow hot-added memory.\n\nNote: kdump uses /proc/iomem to catch memory range when it is installed.\n      So, kdump should be re-installed after /proc/iomem change.\n\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Vivek Goyal \u003cvgoyal@in.ibm.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "9af3c2dea3a3ae4248d81a70b556adfe1dc65d55",
      "tree": "d39b4f7bd082d8a64ef31f6cf34a3b535f594fd0",
      "parents": [
        "3218ae14b1e3ee2ab81df30ed690c8e864d23316"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:34 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:36 2006 -0700"
      },
      "message": "[PATCH] pgdat allocation for new node add (call pgdat allocation)\n\nAdd node-hot-add support to add_memory().\n\nnode hotadd uses this sequence.\n1. allocate pgdat.\n2. refresh NODE_DATA()\n3. call free_area_init_node() to initialize\n4. create sysfs entry\n5. add memory (old add_memory())\n6. set node online\n7. run kswapd for new node.\n(8). update zonelist after pages are onlined. (This is already merged in -mm\n   due to update phase is difference.)\n\nNote:\n  To make common function as much as possible,\n  there is 2 changes from v2.\n    - The old add_memory(), which is defiend by each archs,\n      is renamed to arch_add_memory(). New add_memory becomes\n      caller of arch dependent function as a common code.\n\n    - This patch changes add_memory()\u0027s interface\n        From: add_memory(start, end)\n        TO  : add_memory(nid, start, end).\n      It was cause of similar code that finding node id from\n      physical address is inside of old add_memory() on each arch.\n\n      In addition, acpi memory hotplug driver can find node id easier.\n      In v2, it must walk DSDT\u0027S _CRS by matching physical address to\n      get the handle of its memory device, then get _PXM and node id.\n      Because input is just physical address.\n      However, in v3, the acpi driver can use handle to get _PXM and node id\n      for the new memory device. It can pass just node id to add_memory().\n\nFix interface of arch_add_memory() is in next patche.\n\nSigned-off-by: Yasunori Goto     \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    },
    {
      "commit": "3218ae14b1e3ee2ab81df30ed690c8e864d23316",
      "tree": "91933138cb7c32dad2246ed39baa8ea4e6f98cd8",
      "parents": [
        "10ad400b49aca15ecf83b0fde7e35e4064b15c85"
      ],
      "author": {
        "name": "Yasunori Goto",
        "email": "y-goto@jp.fujitsu.com",
        "time": "Tue Jun 27 02:53:33 2006 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@g5.osdl.org",
        "time": "Tue Jun 27 17:32:36 2006 -0700"
      },
      "message": "[PATCH] pgdat allocation for new node add (export kswapd start func)\n\nWhen node is hot-added, kswapd for the node should start.  This export kswapd\nstart function as kswapd_run() to use at add_memory().\n\n[akpm@osdl.org: daemonize() isn\u0027t needed when using the kthread API]\nSigned-off-by: Yasunori Goto \u003cy-goto@jp.fujitsu.com\u003e\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@osdl.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@osdl.org\u003e\n"
    }
  ],
  "next": "10ad400b49aca15ecf83b0fde7e35e4064b15c85"
}
