)]}'
{
  "log": [
    {
      "commit": "5e549e989f94de0596b8149a90e0088e7d4d7c97",
      "tree": "2a20fdb475ea0320310a4a770da72cd54ea9347f",
      "parents": [
        "ff36b801624d02a876bb7deded6ab860ea3503f2"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Mon Aug 09 17:19:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "mmap: remove unnecessary lock from __vma_link\n\nThere\u0027s no anon-vma related mangling happening inside __vma_link anymore\nso no need of anon_vma locking there.\n\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff36b801624d02a876bb7deded6ab860ea3503f2",
      "tree": "a3f44d01de629234d70ad6211b9fd73fd705a76c",
      "parents": [
        "7e496299d4d2ad8083effed6c5a18313a919edc6"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shaohua.li@intel.com",
        "time": "Mon Aug 09 17:19:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "shmem: reduce pagefault lock contention\n\nI\u0027m running a shmem pagefault test case (see attached file) under a 64 CPU\nsystem.  Profile shows shmem_inode_info-\u003elock is heavily contented and\n100% CPUs time are trying to get the lock.  In the pagefault (no swap)\ncase, shmem_getpage gets the lock twice, the last one is avoidable if we\nprealloc a page so we could reduce one time of locking.  This is what\nbelow patch does.\n\nThe result of the test case:\n2.6.35-rc3: ~20s\n2.6.35-rc3 + patch: ~12s\nso this is 40% improvement.\n\nOne might argue if we could have better locking for shmem.  But even shmem\nis lockless, the pagefault will soon have pagecache lock heavily contented\nbecause shmem must add new page to pagecache.  So before we have better\nlocking for pagecache, improving shmem locking doesn\u0027t have too much\nimprovement.  I did a similar pagefault test against a ramfs file, the\ntest result is ~10.5s.\n\n[akpm@linux-foundation.org: fix comment, clean up code layout, elimintate code duplication]\nSigned-off-by: Shaohua Li \u003cshaohua.li@intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: \"Zhang, Yanmin\" \u003cyanmin.zhang@intel.com\u003e\nCc: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7e496299d4d2ad8083effed6c5a18313a919edc6",
      "tree": "8324a3fa378d28f6a63c8b5f5a86311e4eea3562",
      "parents": [
        "27f5e0f694fd0600274a76854636c0749e3bb1f6"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Mon Aug 09 17:19:05 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "tmpfs: make tmpfs scalable with percpu_counter for used blocks\n\nThe current implementation of tmpfs is not scalable.  We found that\nstat_lock is contended by multiple threads when we need to get a new page,\nleading to useless spinning inside this spin lock.\n\nThis patch makes use of the percpu_counter library to maintain local count\nof used blocks to speed up getting and returning of pages.  So the\nacquisition of stat_lock is unnecessary for getting and returning blocks,\nimproving the performance of tmpfs on system with large number of cpus.\nOn a 4 socket 32 core NHM-EX system, we saw improvement of 270%.\n\nThe implementation below has a slight chance of race between threads\ncausing a slight overshoot of the maximum configured blocks.  However, any\novershoot is small, and is bounded by the number of cpus.  This happens\nwhen the number of used blocks is slightly below the maximum configured\nblocks when a thread checks the used block count, and another thread\nallocates the last block before the current thread does.  This should not\nbe a problem for tmpfs, as the overshoot is most likely to be a few blocks\nand bounded.  If a strict limit is really desired, then configured the max\nblocks to be the limit less the number of cpus in system.\n\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "27f5e0f694fd0600274a76854636c0749e3bb1f6",
      "tree": "0d3a0387b42eb0a830fa5ba896a205b2a3807b8b",
      "parents": [
        "4e60c86bd9e5a7110ed28874d0b6592186550ae8"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Mon Aug 09 17:19:04 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "tmpfs: add accurate compare function to percpu_counter library\n\nAdd percpu_counter_compare that allows for a quick but accurate comparison\nof percpu_counter with a given value.\n\nA rough count is provided by the count field in percpu_counter structure,\nwithout accounting for the other values stored in individual cpu counters.\n\nThe actual count is a sum of count and the cpu counters.  However, count\nfield is never different from the actual value by a factor of\nbatch*num_online_cpu.  We do not need to get actual count for comparison\nif count is different from the given value by this factor and allows for\nquick comparison without summing up all the per cpu counters.\n\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4e60c86bd9e5a7110ed28874d0b6592186550ae8",
      "tree": "9fb60e9f49b44b293a0c0c7d9f40e1a354a22b5a",
      "parents": [
        "627295e492638936e76f3d8fcb1e0a3367b88341"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Aug 09 17:19:03 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "gcc-4.6: mm: fix unused but set warnings\n\nNo real bugs, just some dead code and some fixups.\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "627295e492638936e76f3d8fcb1e0a3367b88341",
      "tree": "94ef884e0e248fef8de4b5605a67812191cd3762",
      "parents": [
        "67a8a20fe1eec43ebfa7f2b83e988dbdb4c16271"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "andi@firstfloor.org",
        "time": "Mon Aug 09 17:19:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "gcc-4.6: pagemap: avoid unused-but-set variable\n\nAvoid quite a lot of warnings in header files in a gcc 4.6 -Wall builds\n\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "67a8a20fe1eec43ebfa7f2b83e988dbdb4c16271",
      "tree": "b5d5023e7d72d9b1f823b5ab35bf0430e0f9ebae",
      "parents": [
        "596d7cfa2be6284512915609f01b7fe2f4df5d02"
      ],
      "author": {
        "name": "Nick Piggin",
        "email": "npiggin@suse.de",
        "time": "Mon Aug 09 17:19:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "avr32: invoke oom-killer from page fault\n\nAs explained in commit 1c0fe6e3bd (\"mm: invoke oom-killer from page\nfault\") , we want to call the architecture independent oom killer when\ngetting an unexplained OOM from handle_mm_fault, rather than simply\nkilling current.\n\nSigned-off-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Haavard Skinnemoen \u003chskinnemoen@atmel.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "596d7cfa2be6284512915609f01b7fe2f4df5d02",
      "tree": "7acfea30efdce5fb17da4302e567059bcae915eb",
      "parents": [
        "251060006003b79b788f8ce5a827ee5354a42910"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:19:01 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:58 2010 -0700"
      },
      "message": "mempolicy: reduce stack size of migrate_pages()\n\nmigrate_pages() is using \u003e500 bytes stack. Reduce it.\n\n   mm/mempolicy.c: In function \u0027sys_migrate_pages\u0027:\n   mm/mempolicy.c:1344: warning: the frame size of 528 bytes is larger than 512 bytes\n\n[akpm@linux-foundation.org: don\u0027t play with a might-be-NULL pointer]\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "251060006003b79b788f8ce5a827ee5354a42910",
      "tree": "eb69ce45bd31ffc0609300afbe0cca2a2cbf2ab1",
      "parents": [
        "b645bd1286f2fbcd2eb4ab3bed5884f63c42e363"
      ],
      "author": {
        "name": "Lee Schermerhorn",
        "email": "Lee.Schermerhorn@hp.com",
        "time": "Mon Aug 09 17:19:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "topology: alternate fix for ia64 tiger_defconfig build breakage\n\nDefine stubs for the numa_*_id() generic percpu related functions for\nnon-NUMA configurations in \u003casm-generic/topology.h\u003e where the other\nnon-numa stubs live.\n\nFixes ia64 !NUMA build breakage -- e.g., tiger_defconfig\n\nBack out now unneeded \u0027#ifndef CONFIG_NUMA\u0027 guards from ia64 smpboot.c\n\nSigned-off-by: Lee Schermerhorn \u003clee.schermerhorn@hp.com\u003e\nTested-by: Tony Luck \u003ctony.luck@intel.com\u003e\nAcked-by: Tony Luck \u003ctony.luck@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b645bd1286f2fbcd2eb4ab3bed5884f63c42e363",
      "tree": "7649eb3fbe4afeb01e9403e71b0546a37406a33e",
      "parents": [
        "31f961a89bd1cb9baaf32af4bd8b571ace3447b1"
      ],
      "author": {
        "name": "Alexander Nevenchannyy",
        "email": "a.nevenchannyy@gmail.com",
        "time": "Mon Aug 09 17:19:00 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "mmzone.h: remove dead prototype\n\nget_zone_counts() was dropped from kernel tree, see:\nhttp://www.mail-archive.com/mm-commits@vger.kernel.org/msg07313.html but\nits prototype remains.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "31f961a89bd1cb9baaf32af4bd8b571ace3447b1",
      "tree": "add1380e479ff92ad92da090e606857162b88e66",
      "parents": [
        "0aad4b3124850e85fe54e610802f0917ce46a1ae"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Aug 09 17:18:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "mm: use for_each_online_cpu() in vmstat\n\nThe sum_vm_events passes cpumask for for_each_cpu().  But it\u0027s useless\nsince we have for_each_online_cpu.  Althougth it\u0027s tirival overhead, it\u0027s\nnot good about coding consistency.\n\nLet\u0027s use for_each_online_cpu instead of for_each_cpu with cpumask\nargument.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0aad4b3124850e85fe54e610802f0917ce46a1ae",
      "tree": "ebba56659dab4e285b87341d7639fda7a2db81e9",
      "parents": [
        "f44200320b10c76003101dee21c5f961e80faf0b"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: fold __out_of_memory into out_of_memory\n\n__out_of_memory() only has a single caller, so fold it into\nout_of_memory() and add a comment about locking for its call to\noom_kill_process().\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f44200320b10c76003101dee21c5f961e80faf0b",
      "tree": "4c187867337cee9c02e08d926866669f27e4018c",
      "parents": [
        "ff321feac22313cf53ffceb69224b09ac19ff22b"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: remove constraint argument from select_bad_process and __out_of_memory\n\nselect_bad_process() and __out_of_memory() doe not need their enum\noom_constraint arguments: it\u0027s possible to pass a NULL nodemask if\nconstraint \u003d\u003d CONSTRAINT_MEMORY_POLICY in the caller, out_of_memory().\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ff321feac22313cf53ffceb69224b09ac19ff22b",
      "tree": "101400fdee395944c2fa5f1f2b45cac54a5c1088",
      "parents": [
        "b940fd703572f7f9e5f894c682c91c3cbd84c11e"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@gmail.com",
        "time": "Mon Aug 09 17:18:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "mm: rename try_set_zone_oom() to try_set_zonelist_oom()\n\nWe have been used naming try_set_zone_oom and clear_zonelist_oom.\nThe role of functions is to lock of zonelist for preventing parallel\nOOM. So clear_zonelist_oom makes sense but try_set_zone_oome is rather\nawkward and unmatched with clear_zonelist_oom.\n\nLet\u0027s change it with try_set_zonelist_oom.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b940fd703572f7f9e5f894c682c91c3cbd84c11e",
      "tree": "cbb1f23073373ba1c425762f38f6f0bf9decf278",
      "parents": [
        "8e4228e1edb922afa83366803a1e5b3fa8e987c2"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: remove unnecessary code and cleanup\n\nRemove the redundancy in __oom_kill_task() since:\n\n - init can never be passed to this function: it will never be PF_EXITING\n   or selectable from select_bad_process(), and\n\n - it will never be passed a task from oom_kill_task() without an -\u003emm\n   and we\u0027re unconcerned about detachment from exiting tasks, there\u0027s no\n   reason to protect them against SIGKILL or access to memory reserves.\n\nAlso moves the kernel log message to a higher level since the verbosity is\nnot always emitted here; we need not print an error message if an exiting\ntask is given a longer timeslice.\n\n__oom_kill_task() only has a single caller, so it can be merged into that\nfunction at the same time.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e4228e1edb922afa83366803a1e5b3fa8e987c2",
      "tree": "e741de337b409a430e0f34647e059dd35a84f72c",
      "parents": [
        "e365893236ca78fa1fe2482ccbdc30e9abde6027"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:56 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: move sysctl declarations to oom.h\n\nThe three oom killer sysctl variables (sysctl_oom_dump_tasks,\nsysctl_oom_kill_allocating_task, and sysctl_panic_on_oom) are better\ndeclared in include/linux/oom.h rather than kernel/sysctl.c.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e365893236ca78fa1fe2482ccbdc30e9abde6027",
      "tree": "36caf9177f592f0d3a93593b6a569be239aebf91",
      "parents": [
        "309ed882508cc471320ff79265e7340774d6746c"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: remove special handling for pagefault ooms\n\nIt is possible to remove the special pagefault oom handler by simply oom\nlocking all system zones and then calling directly into out_of_memory().\n\nAll populated zones must have ZONE_OOM_LOCKED set, otherwise there is a\nparallel oom killing in progress that will lead to eventual memory freeing\nso it\u0027s not necessary to needlessly kill another task.  The context in\nwhich the pagefault is allocating memory is unknown to the oom killer, so\nthis is done on a system-wide level.\n\nIf a task has already been oom killed and hasn\u0027t fully exited yet, this\nwill be a no-op since select_bad_process() recognizes tasks across the\nsystem with TIF_MEMDIE set.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "309ed882508cc471320ff79265e7340774d6746c",
      "tree": "28321b30bc420c62554ef6a705ec4bc70651b473",
      "parents": [
        "03668b3ceb0c7a95e09f1b6169f5270ffc1a19f6"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:57 2010 -0700"
      },
      "message": "oom: extract panic helper function\n\nThere are various points in the oom killer where the kernel must determine\nwhether to panic or not.  It\u0027s better to extract this to a helper function\nto remove all the confusion as to its semantics.\n\nAlso fix a call to dump_header() where tasklist_lock is not read- locked,\nas required.\n\nThere\u0027s no functional change with this patch.\n\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "03668b3ceb0c7a95e09f1b6169f5270ffc1a19f6",
      "tree": "755ea207b968af12e195f6fb3e3b52b4d68e8630",
      "parents": [
        "ad915c432eccb482427c1bbd77c74e6f7bfe60b3"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: avoid oom killer for lowmem allocations\n\nIf memory has been depleted in lowmem zones even with the protection\nafforded to it by /proc/sys/vm/lowmem_reserve_ratio, it is unlikely that\nkilling current users will help.  The memory is either reclaimable (or\nmigratable) already, in which case we should not invoke the oom killer at\nall, or it is pinned by an application for I/O.  Killing such an\napplication may leave the hardware in an unspecified state and there is no\nguarantee that it will be able to make a timely exit.\n\nLowmem allocations are now failed in oom conditions when __GFP_NOFAIL is\nnot used so that the task can perhaps recover or try again later.\n\nPreviously, the heuristic provided some protection for those tasks with\nCAP_SYS_RAWIO, but this is no longer necessary since we will not be\nkilling tasks for the purposes of ISA allocations.\n\nhigh_zoneidx is gfp_zone(gfp_flags), meaning that ZONE_NORMAL will be the\ndefault for all allocations that are not __GFP_DMA, __GFP_DMA32,\n__GFP_HIGHMEM, and __GFP_MOVABLE on kernels configured to support those\nflags.  Testing for high_zoneidx being less than ZONE_NORMAL will only\nreturn true for allocations that have either __GFP_DMA or __GFP_DMA32.\n\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad915c432eccb482427c1bbd77c74e6f7bfe60b3",
      "tree": "d93b536c48773527c8ae0312d6dcf45d57dd1b89",
      "parents": [
        "6f48d0ebd907ae419387f27b602ee98870cfa7bb"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: enable oom tasklist dump by default\n\nThe oom killer tasklist dump, enabled with the oom_dump_tasks sysctl, is\nvery helpful information in diagnosing why a user\u0027s task has been killed.\nIt emits useful information such as each eligible thread\u0027s memory usage\nthat can determine why the system is oom, so it should be enabled by\ndefault.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6f48d0ebd907ae419387f27b602ee98870cfa7bb",
      "tree": "355bd8b616f5a78d8adabe5b9631d7aad970dbaa",
      "parents": [
        "5e9d834a0e0c0485dfa487281ab9650fc37a3bb5"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:52 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: select task from tasklist for mempolicy ooms\n\nThe oom killer presently kills current whenever there is no more memory\nfree or reclaimable on its mempolicy\u0027s nodes.  There is no guarantee that\ncurrent is a memory-hogging task or that killing it will free any\nsubstantial amount of memory, however.\n\nIn such situations, it is better to scan the tasklist for nodes that are\nallowed to allocate on current\u0027s set of nodes and kill the task with the\nhighest badness() score.  This ensures that the most memory-hogging task,\nor the one configured by the user with /proc/pid/oom_adj, is always\nselected in such scenarios.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReviewed-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e9d834a0e0c0485dfa487281ab9650fc37a3bb5",
      "tree": "b93cf4fd46b50b18f3fc118f1739a71dbdd8f340",
      "parents": [
        "6cf86ac6f36b638459a9a6c2576d5e655d41d451"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: sacrifice child with highest badness score for parent\n\nWhen a task is chosen for oom kill, the oom killer first attempts to\nsacrifice a child not sharing its parent\u0027s memory instead.  Unfortunately,\nthis often kills in a seemingly random fashion based on the ordering of\nthe selected task\u0027s child list.  Additionally, it is not guaranteed at all\nto free a large amount of memory that we need to prevent additional oom\nkilling in the very near future.\n\nInstead, we now only attempt to sacrifice the worst child not sharing its\nparent\u0027s memory, if one exists.  The worst child is indicated with the\nhighest badness() score.  This serves two advantages: we kill a\nmemory-hogging task more often, and we allow the configurable\n/proc/pid/oom_adj value to be considered as a factor in which child to\nkill.\n\nReviewers may observe that the previous implementation would iterate\nthrough the children and attempt to kill each until one was successful and\nthen the parent if none were found while the new code simply kills the\nmost memory-hogging task or the parent.  Note that the only time\noom_kill_task() fails, however, is when a child does not have an mm or has\na /proc/pid/oom_adj of OOM_DISABLE.  badness() returns 0 for both cases,\nso the final oom_kill_task() will always succeed.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6cf86ac6f36b638459a9a6c2576d5e655d41d451",
      "tree": "177ae58393bfbc5a87eb64178d426e2ba4c95871",
      "parents": [
        "4358997ae38a1901498d128d6508119d9f318b36"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:50 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: filter tasks not sharing the same cpuset\n\nTasks that do not share the same set of allowed nodes with the task that\ntriggered the oom should not be considered as candidates for oom kill.\n\nTasks in other cpusets with a disjoint set of mems would be unfairly\npenalized otherwise because of oom conditions elsewhere; an extreme\nexample could unfairly kill all other applications on the system if a\nsingle task in a user\u0027s cpuset sets itself to OOM_DISABLE and then uses\nmore memory than allowed.\n\nKilling tasks outside of current\u0027s cpuset rarely would free memory for\ncurrent anyway.  To use a sane heuristic, we must ensure that killing a\ntask would likely free memory for current and avoid needlessly killing\nothers at all costs just because their potential memory freeing is\nunknown.  It is better to kill current than another task needlessly.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Nick Piggin \u003cnpiggin@suse.de\u003e\nAcked-by: Balbir Singh \u003cbalbir@linux.vnet.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4358997ae38a1901498d128d6508119d9f318b36",
      "tree": "0c5a47808790e80a754b44aebe82c5c683811788",
      "parents": [
        "7b98c2e402eaa1f2beec18b1bde17f74948a19db"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:49 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: avoid sending exiting tasks a SIGKILL\n\nIt\u0027s unnecessary to SIGKILL a task that is already PF_EXITING and can\nactually cause a NULL pointer dereference of the sighand if it has already\nbeen detached.  Instead, simply set TIF_MEMDIE so it has access to memory\nreserves and can quickly exit as the comment implies.\n\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7b98c2e402eaa1f2beec18b1bde17f74948a19db",
      "tree": "a0d3920f84e981cca5be386e2cc5a6320c4d8bdc",
      "parents": [
        "c81fac5cb8c92b8b4795ac250a46c7514d1fce06"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: give current access to memory reserves if it has been killed\n\nIt\u0027s possible to livelock the page allocator if a thread has mm-\u003emmap_sem\nand fails to make forward progress because the oom killer selects another\nthread sharing the same -\u003emm to kill that cannot exit until the semaphore\nis dropped.\n\nThe oom killer will not kill multiple tasks at the same time; each oom\nkilled task must exit before another task may be killed.  Thus, if one\nthread is holding mm-\u003emmap_sem and cannot allocate memory, all threads\nsharing the same -\u003emm are blocked from exiting as well.  In the oom kill\ncase, that means the thread holding mm-\u003emmap_sem will never free\nadditional memory since it cannot get access to memory reserves and the\nthread that depends on it with access to memory reserves cannot exit\nbecause it cannot acquire the semaphore.  Thus, the page allocators\nlivelocks.\n\nWhen the oom killer is called and current happens to have a pending\nSIGKILL, this patch automatically gives it access to memory reserves and\nreturns.  Upon returning to the page allocator, its allocation will\nhopefully succeed so it can quickly exit and free its memory.  If not, the\npage allocator will fail the allocation if it is not __GFP_NOFAIL.\n\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c81fac5cb8c92b8b4795ac250a46c7514d1fce06",
      "tree": "2f2577d6813d0472b23359bcda8223edf0d7b396",
      "parents": [
        "74ab7f1d3f22ccb02f8b14f1f2375416b1ab0adb"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:47 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: dump_tasks use find_lock_task_mm too fix\n\nWhen find_lock_task_mm() returns a thread other than p in dump_tasks(),\nits name should be displayed instead.  This is the thread that will be\ntargeted by the oom killer, not its mm-less parent.\n\nThis also allows us to safely dereference task-\u003ecomm without needing\nget_task_comm().\n\nWhile we\u0027re here, remove the cast on task_cpu(task) as Andrew suggested.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "74ab7f1d3f22ccb02f8b14f1f2375416b1ab0adb",
      "tree": "94f7e6b0e77fe11f200941f97d1fc895dc950fde",
      "parents": [
        "c55db95788a2a55a77f5a3ced1e59578710440b2"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Aug 09 17:18:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: improve commentary in dump_tasks()\n\nThe comments in dump_tasks() should be updated to be more clear about why\ntasks are filtered and how they are filtered by its argument.\n\nAn unnecessary comment concerning a check for is_global_init() is removed\nsince it isn\u0027t of importance.\n\nSuggested-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c55db95788a2a55a77f5a3ced1e59578710440b2",
      "tree": "275a0c97bfe408ea926dfe14864e476d719859e9",
      "parents": [
        "dd8e8f405ca386c7ce7cbb996ccd985d283b0e03"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Aug 09 17:18:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:56 2010 -0700"
      },
      "message": "oom: dump_tasks use find_lock_task_mm too\n\ndump_task() should use find_lock_task_mm() too. It is necessary for\nprotecting task-exiting race.\n\ndump_tasks() currently filters any task that does not have an attached\n-\u003emm since it incorrectly assumes that it must either be in the process of\nexiting and has detached its memory or that it\u0027s a kernel thread;\nmultithreaded tasks may actually have subthreads that have a valid -\u003emm\npointer and thus those threads should actually be displayed.  This change\nfinds those threads, if they exist, and emit their information along with\nthe rest of the candidate tasks for kill.\n\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dd8e8f405ca386c7ce7cbb996ccd985d283b0e03",
      "tree": "7863585871d44c0272eb0b93ee909392ee85eb99",
      "parents": [
        "b52279406e77be711c068f9a8e970ea6471e089c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 09 17:18:45 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "oom: introduce find_lock_task_mm() to fix !mm false positives\n\nAlmost all -\u003emm \u003d\u003d NULL checks in oom_kill.c are wrong.\n\nThe current code assumes that the task without -\u003emm has already released\nits memory and ignores the process.  However this is not necessarily true\nwhen this process is multithreaded, other live sub-threads can use this\n-\u003emm.\n\n- Remove the \"if (!p-\u003emm)\" check in select_bad_process(), it is\n  just wrong.\n\n- Add the new helper, find_lock_task_mm(), which finds the live\n  thread which uses the memory and takes task_lock() to pin -\u003emm\n\n- change oom_badness() to use this helper instead of just checking\n  -\u003emm !\u003d NULL.\n\n- As David pointed out, select_bad_process() must never choose the\n  task without -\u003emm, but no matter what oom_badness() returns the\n  task can be chosen if nothing else has been found yet.\n\n  Change oom_badness() to return int, change it to return -1 if\n  find_lock_task_mm() fails, and change select_bad_process() to\n  check points \u003e\u003d 0.\n\nNote! This patch is not enough, we need more changes.\n\n\t- oom_badness() was fixed, but oom_kill_task() still ignores\n\t  the task without -\u003emm\n\n\t- oom_forkbomb_penalty() should use find_lock_task_mm() too,\n\t  and it also needs other changes to actually find the first\n\t  first-descendant children\n\nThis will be addressed later.\n\n[kosaki.motohiro@jp.fujitsu.com: use in badness(), __oom_kill_task()]\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b52279406e77be711c068f9a8e970ea6471e089c",
      "tree": "5f44a8af51ccc30847b1d969e0bd36205902d3fb",
      "parents": [
        "455c0e5fb03b67fa62bd12e3abe3fa484b9960c5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 09 17:18:44 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "oom: PF_EXITING check should take mm into account\n\nselect_bad_process() checks PF_EXITING to detect the task which is going\nto release its memory, but the logic is very wrong.\n\n\t- a single process P with the dead group leader disables\n\t  select_bad_process() completely, it will always return\n\t  ERR_PTR() while P can live forever\n\n\t- if the PF_EXITING task has already released its -\u003emm\n\t  it doesn\u0027t make sense to expect it is goiing to free\n\t  more memory (except task_struct/etc)\n\nChange the code to ignore the PF_EXITING tasks without -\u003emm.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "455c0e5fb03b67fa62bd12e3abe3fa484b9960c5",
      "tree": "082cbecb8927e1c8e0c2cea5d5639e9c8f62eafe",
      "parents": [
        "a9877cc2937889e5669114f28612b494384152a4"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 09 17:18:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "oom: check PF_KTHREAD instead of !mm to skip kthreads\n\nselect_bad_process() thinks a kernel thread can\u0027t have -\u003emm !\u003d NULL, this\nis not true due to use_mm().\n\nChange the code to check PF_KTHREAD.\n\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Balbir Singh \u003cbalbir@in.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a9877cc2937889e5669114f28612b494384152a4",
      "tree": "5ded18d250cc1b0c8c60aec55b249d4c4781ed6e",
      "parents": [
        "76545066c8521f3e32c849744744842b4df25b79"
      ],
      "author": {
        "name": "Richard Kennedy",
        "email": "richard@rsk.demon.co.uk",
        "time": "Mon Aug 09 17:18:42 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "buffer_head: remove redundant test from wait_on_buffer\n\nThe comment suggests that when b_count equals zero it is calling\n__wait_no_buffer to trigger some debug, but as there is no debug in\n__wait_on_buffer the whole thing is redundant.\n\nAFAICT from the git log this has been the case for at least 5 years, so\nit seems safe just to remove this.\n\nSigned-off-by: Richard Kennedy \u003crichard@rsk.demon.co.uk\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Jeff Mahoney \u003cjeffm@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "76545066c8521f3e32c849744744842b4df25b79",
      "tree": "978b6b003f63e1e22618586b7d9c2dd8ef363614",
      "parents": [
        "012f18004da33ba672e3c60838cc4898126174d3"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "mm: extend KSM refcounts to the anon_vma root\n\nKSM reference counts can cause an anon_vma to exist after the processe it\nbelongs to have already exited.  Because the anon_vma lock now lives in\nthe root anon_vma, we need to ensure that the root anon_vma stays around\nuntil after all the \"child\" anon_vmas have been freed.\n\nThe obvious way to do this is to have a \"child\" anon_vma take a reference\nto the root in anon_vma_fork.  When the anon_vma is freed at munmap or\nprocess exit, we drop the refcount in anon_vma_unlink and possibly free\nthe root anon_vma.\n\nThe KSM anon_vma reference count function also needs to be modified to\ndeal with the possibility of freeing 2 levels of anon_vma.  The easiest\nway to do this is to break out the KSM magic and make it generic.\n\nWhen compiling without CONFIG_KSM, this code is compiled out.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nTested-by: Dave Young \u003chidave.darkstar@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "012f18004da33ba672e3c60838cc4898126174d3",
      "tree": "990382f9f8c0d885463ac9195b8e9a18043f716d",
      "parents": [
        "5c341ee1dfc8fe69d66b1c8b19e463c6d7201ae1"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:40 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "mm: always lock the root (oldest) anon_vma\n\nAlways (and only) lock the root (oldest) anon_vma whenever we do something\nin an anon_vma.  The recently introduced anon_vma scalability is due to\nthe rmap code scanning only the VMAs that need to be scanned.  Many common\noperations still took the anon_vma lock on the root anon_vma, so always\ntaking that lock is not expected to introduce any scalability issues.\n\nHowever, always taking the same lock does mean we only need to take one\nlock, which means rmap_walk on pages from any anon_vma in the vma is\nexcluded from occurring during an munmap, expand_stack or other operation\nthat needs to exclude rmap_walk and similar functions.\n\nAlso add the proper locking to vma_adjust.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5c341ee1dfc8fe69d66b1c8b19e463c6d7201ae1",
      "tree": "41f05611f8b1d7562c2193ade8c089408f262a6b",
      "parents": [
        "cba48b98f2348c814316c4b4f411a07a0e4a2bf9"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:39 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "mm: track the root (oldest) anon_vma\n\nTrack the root (oldest) anon_vma in each anon_vma tree.  Because we only\ntake the lock on the root anon_vma, we cannot use the lock on higher-up\nanon_vmas to lock anything.  This makes it impossible to do an indirect\nlookup of the root anon_vma, since the data structures could go away from\nunder us.\n\nHowever, a direct pointer is safe because the root anon_vma is always the\nlast one that gets freed on munmap or exit, by virtue of the same_vma list\norder and unlink_anon_vmas walking the list forward.\n\n[akpm@linux-foundation.org: fix typo]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cba48b98f2348c814316c4b4f411a07a0e4a2bf9",
      "tree": "49c0426f8d41cb147722305c2c3495dd515c3253",
      "parents": [
        "bb4a340e075b7897ece109686bfa177f8518d2db"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:38 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:55 2010 -0700"
      },
      "message": "mm: change direct call of spin_lock(anon_vma-\u003elock) to inline function\n\nSubsitute a direct call of spin_lock(anon_vma-\u003elock) with an inline\nfunction doing exactly the same.\n\nThis makes it easier to do the substitution to the root anon_vma lock in a\nfollowing patch.\n\nWe will deal with the handful of special locks (nested, dec_and_lock, etc)\nseparately.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bb4a340e075b7897ece109686bfa177f8518d2db",
      "tree": "3cca938530a2367cfd66fcc8ca11809acb14b42b",
      "parents": [
        "597781f3e51f48ef8e67be772196d9e9673752c4"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Aug 09 17:18:37 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "mm: rename anon_vma_lock to vma_lock_anon_vma\n\nRename anon_vma_lock to vma_lock_anon_vma.  This matches the naming style\nused in page_lock_anon_vma and will come in really handy further down in\nthis patch series.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nTested-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "597781f3e51f48ef8e67be772196d9e9673752c4",
      "tree": "6e1974bc899889da40f2fde47b04a5ece0bd3399",
      "parents": [
        "3edd4fc9537d95e460d502987c63a90d6b9a7a82"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Mon Aug 09 17:18:32 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "kmap_atomic: make kunmap_atomic() harder to misuse\n\nkunmap_atomic() is currently at level -4 on Rusty\u0027s \"Hard To Misuse\"\nlist[1] (\"Follow common convention and you\u0027ll get it wrong\"), except in\nsome architectures when CONFIG_DEBUG_HIGHMEM is set[2][3].\n\nkunmap() takes a pointer to a struct page; kunmap_atomic(), however, takes\ntakes a pointer to within the page itself.  This seems to once in a while\ntrip people up (the convention they are following is the one from\nkunmap()).\n\nMake it much harder to misuse, by moving it to level 9 on Rusty\u0027s list[4]\n(\"The compiler/linker won\u0027t let you get it wrong\").  This is done by\nrefusing to build if the type of its first argument is a pointer to a\nstruct page.\n\nThe real kunmap_atomic() is renamed to kunmap_atomic_notypecheck()\n(which is what you would call in case for some strange reason calling it\nwith a pointer to a struct page is not incorrect in your code).\n\nThe previous version of this patch was compile tested on x86-64.\n\n[1] http://ozlabs.org/~rusty/index.cgi/tech/2008-04-01.html\n[2] In these cases, it is at level 5, \"Do it right or it will always\n    break at runtime.\"\n[3] At least mips and powerpc look very similar, and sparc also seems to\n    share a common ancestor with both; there seems to be quite some\n    degree of copy-and-paste coding here. The include/asm/highmem.h file\n    for these three archs mention x86 CPUs at its top.\n[4] http://ozlabs.org/~rusty/index.cgi/tech/2008-03-30.html\n[5] As an aside, could someone tell me why mn10300 uses unsigned long as\n    the first parameter of kunmap_atomic() instead of void *?\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e (arch/arm)\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e (arch/mips)\nCc: David Howells \u003cdhowells@redhat.com\u003e (arch/frv, arch/mn10300)\nCc: Koichi Yasutake \u003cyasutake.koichi@jp.panasonic.com\u003e (arch/mn10300)\nCc: Kyle McMartin \u003ckyle@mcmartin.ca\u003e (arch/parisc)\nCc: Helge Deller \u003cdeller@gmx.de\u003e (arch/parisc)\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e (arch/parisc)\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e (arch/powerpc)\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e (arch/powerpc)\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e (arch/sparc)\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e (arch/x86)\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e (arch/x86)\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e (arch/x86)\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e (include/asm-generic)\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e (\"Hard To Misuse\" list)\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3edd4fc9537d95e460d502987c63a90d6b9a7a82",
      "tree": "fe0563459b9d6104dcc7f7ab6f8945e815f09665",
      "parents": [
        "a1b200e27c0426ea98c1231a2b78c6094eb073e4"
      ],
      "author": {
        "name": "Doug Doan",
        "email": "dougd@cray.com",
        "time": "Mon Aug 09 17:18:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "hugetlb: call mmu notifiers on hugepage cow\n\nWhen a copy-on-write occurs, we take one of two paths in handle_mm_fault:\nthrough handle_pte_fault for normal pages, or through hugetlb_fault for\nhuge pages.\n\nIn the normal page case, we eventually get to do_wp_page and call mmu\nnotifiers via ptep_clear_flush_notify.  There is no callout to the mmmu\nnotifiers in the huge page case.  This patch fixes that.\n\nSigned-off-by: Doug Doan \u003cdougd@cray.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a1b200e27c0426ea98c1231a2b78c6094eb073e4",
      "tree": "8091ed3f3451cbc230e9bf72cafc773ee253bbe8",
      "parents": [
        "e7d86340793e7162126926ec9d226c68f4e37f94"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Mon Aug 09 17:18:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "mm: provide init_mm mm_context initializer\n\nProvide an INIT_MM_CONTEXT intializer macro which can be used to\nstatically initialize mm_struct:mm_context of init_mm.  This way we can\nget rid of code which will do the initialization at run time (on s390).\n\nIn addition the current code can be found at a place where it is not\nexpected.  So let\u0027s have a common initializer which architectures\ncan use if needed.\n\nThis is based on a patch from Suzuki Poulose.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Suzuki Poulose \u003csuzuki@in.ibm.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e7d86340793e7162126926ec9d226c68f4e37f94",
      "tree": "4cc90e5466a69b361f1a6eecc2d9fac77e2e1612",
      "parents": [
        "90d7404558fbe6f369d5e27b5ea3ef1e57562d3d"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Aug 09 17:18:28 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "mm: use ERR_CAST\n\nUse ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)).  The former makes more\nclear what is the purpose of the operation, which otherwise looks like a\nno-op.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\ntype T;\nT x;\nidentifier f;\n@@\n\nT f (...) { \u003c+...\n- ERR_PTR(PTR_ERR(x))\n+ x\n ...+\u003e }\n\n@@\nexpression x;\n@@\n\n- ERR_PTR(PTR_ERR(x))\n+ ERR_CAST(x)\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: Nick Piggin \u003cnickpiggin@yahoo.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "90d7404558fbe6f369d5e27b5ea3ef1e57562d3d",
      "tree": "0dbd7ef38a1e9e95b6c9aeb03d8d549ea5cf6141",
      "parents": [
        "9e58143dc08123c22c5b9f782b2913bd3a07a03d"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "julia@diku.dk",
        "time": "Mon Aug 09 17:18:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "mm: use memdup_user\n\nUse memdup_user when user data is immediately copied into the\nallocated region.\n\nThe semantic patch that makes this change is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@@\nexpression from,to,size,flag;\nposition p;\nidentifier l1,l2;\n@@\n\n-  to \u003d \\(kmalloc@p\\|kzalloc@p\\)(size,flag);\n+  to \u003d memdup_user(from,size);\n   if (\n-      to\u003d\u003dNULL\n+      IS_ERR(to)\n                 || ...) {\n   \u003c+... when !\u003d goto l1;\n-  -ENOMEM\n+  PTR_ERR(to)\n   ...+\u003e\n   }\n-  if (copy_from_user(to, from, size) !\u003d 0) {\n-    \u003c+... when !\u003d goto l2;\n-    -EFAULT\n-    ...+\u003e\n-  }\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9e58143dc08123c22c5b9f782b2913bd3a07a03d",
      "tree": "fe315688cb22a9c0e9758018ee21e5397264a015",
      "parents": [
        "fa260c00c1aa5c657793a7221e40d2400df5afd8"
      ],
      "author": {
        "name": "Michal Simek",
        "email": "monstr@monstr.eu",
        "time": "Mon Aug 09 17:18:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:54 2010 -0700"
      },
      "message": "asm-generic: use raw_local_irq_save/restore instead local_irq_save/restore\n\nThe start/stop_critical_timing functions for preemptirqsoff, preemptoff\nand irqsoff tracers contain atomic_inc() and atomic_dec() operations.\n\nAtomic operations use local_irq_save/restore macros to ensure atomic\naccess but they are traced by the same function which is causing recursion\nproblem.\n\nThe reason is when these tracers are turn ON then the\nlocal_irq_save/restore macros are changed in include/linux/irqflags.h to\ncall trace_hardirqs_on/off which call start/stop_critical_timing.\n\nMicroblaze was affected because it uses generic atomic implementation.\n\nSigned-off-by: Michal Simek \u003cmonstr@monstr.eu\u003e\nAcked-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@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa260c00c1aa5c657793a7221e40d2400df5afd8",
      "tree": "e34863069c3ce3dcc2e423f1369bd933657fa4e3",
      "parents": [
        "d9e1b6c45059ccfff647a120769ae86da78dfdc4"
      ],
      "author": {
        "name": "Peter Huewe",
        "email": "peterhuewe@gmx.de",
        "time": "Mon Aug 09 17:18:23 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:53 2010 -0700"
      },
      "message": "drivers/video/w100fb.c: ignore void return value / fix build failure\n\nFix a build failure \"error: void value not ignored as it ought to be\"\nby removing an assignment of a void return value.  The functionality of\nthe code is not changed.\n\nSigned-off-by: Peter Huewe \u003cpeterhuewe@gmx.de\u003e\nAcked-by: Henrik Kretzschmar \u003chenne@nachtwindheim.de\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d9e1b6c45059ccfff647a120769ae86da78dfdc4",
      "tree": "fb88b38cd37a47419edfcc0cf55b0f25c05cbe1f",
      "parents": [
        "e5149cc44cf9c5e23fbe34515fc6b4b91c0e48c4"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Aug 09 17:18:22 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 20:44:53 2010 -0700"
      },
      "message": "ipmi: fix ACPI detection with regspacing\n\nAfter the commit that changed ipmi_si detecting sequence from SMBIOS/ACPI\nto ACPI/SMBIOS,\n\n| commit 754d453185275951d39792865927ec494fa1ebd8\n| Author: Matthew Garrett \u003cmjg@redhat.com\u003e\n| Date:   Wed May 26 14:43:47 2010 -0700\n|\n|    ipmi: change device discovery order\n|\n|    The ipmi spec provides an ordering for si discovery.  Change the driver to\n|    match, with the exception of preferring smbios to SPMI as HPs (at least)\n|    contain accurate information in the former but not the latter.\n\nipmi_si can not be initialized.\n\n[  138.799739] calling  init_ipmi_devintf+0x0/0x109 @ 1\n[  138.805050] ipmi device interface\n[  138.818131] initcall init_ipmi_devintf+0x0/0x109 returned 0 after 12797 usecs\n[  138.822998] calling  init_ipmi_si+0x0/0xa90 @ 1\n[  138.840276] IPMI System Interface driver.\n[  138.846137] ipmi_si: probing via ACPI\n[  138.849225] ipmi_si 00:09: [io  0x0ca2] regsize 1 spacing 1 irq 0\n[  138.864438] ipmi_si: Adding ACPI-specified kcs state machine\n[  138.870893] ipmi_si: probing via SMBIOS\n[  138.880945] ipmi_si: Adding SMBIOS-specified kcs state machineipmi_si: duplicate interface\n[  138.896511] ipmi_si: probing via SPMI\n[  138.899861] ipmi_si: Adding SPMI-specified kcs state machineipmi_si: duplicate interface\n[  138.917095] ipmi_si: Trying ACPI-specified kcs state machine at i/o address 0xca2, slave address 0x0, irq 0\n[  138.928658] ipmi_si: Interface detection failed\n[  138.953411] initcall init_ipmi_si+0x0/0xa90 returned 0 after 110847 usecs\n\nin smbios has\nDMI/SMBIOS\nHandle 0x00C5, DMI type 38, 18 bytes\nIPMI Device Information\n        Interface Type: KCS (Keyboard Control Style)\n        Specification Version: 2.0\n        I2C Slave Address: 0x00\n        NV Storage Device: Not Present\n        Base Address: 0x0000000000000CA2 (I/O)\n        Register Spacing: 32-bit Boundaries\nin DSDT has\n                    Device (BMC)\n                    {\n\n                        Name (_HID, EisaId (\"IPI0001\"))\n                        Method (_STA, 0, NotSerialized)\n                        {\n                            If (LEqual (OSN, Zero))\n                            {\n                                Return (Zero)\n                            }\n\n                            Return (0x0F)\n                        }\n\n                        Name (_STR, Unicode (\"IPMI_KCS\"))\n                        Name (_UID, Zero)\n                        Name (_CRS, ResourceTemplate ()\n                        {\n                            IO (Decode16,\n                                0x0CA2,             // Range Minimum\n                                0x0CA2,             // Range Maximum\n                                0x00,               // Alignment\n                                0x01,               // Length\n                                )\n                            IO (Decode16,\n                                0x0CA6,             // Range Minimum\n                                0x0CA6,             // Range Maximum\n                                0x00,               // Alignment\n                                0x01,               // Length\n                                )\n                        })\n                        Method (_IFT, 0, NotSerialized)\n                        {\n                            Return (One)\n                        }\n\n                        Method (_SRV, 0, NotSerialized)\n                        {\n                            Return (0x0200)\n                        }\n                    }\n\nso the reg spacing should be 4 instead of 1.\n\nTry to calculate regspacing for this kind of system.\n\nObserved on a Sun Fire X4800.  Other OSes work and pass certification.\n\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Bjorn Helgaas \u003cbjorn.helgaas@hp.com\u003e\nAcked-by: Matthew Garrett \u003cmjg@redhat.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Myron Stowe \u003cmyron.stowe@hp.com\u003e\nCc: Corey Minyard \u003cminyard@acm.org\u003e\nCc: \u003cstable@kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e5149cc44cf9c5e23fbe34515fc6b4b91c0e48c4",
      "tree": "f6c3c7401f827d91d77702cb2177d3c4fa0e625d",
      "parents": [
        "45d7f32c7a43cbb9592886d38190e379e2eb2226",
        "9a919c46dfa48a9c1f465174609b90253eb8ffc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 19:30:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Aug 09 19:30:17 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  drm: fix fallouts from slow-work -\u003e wq conversion\n  workqueue: workqueue_cpu_callback() should be cpu_notifier instead of hotcpu_notifier\n  workqueue: add missing __percpu markup in kernel/workqueue.c\n"
    },
    {
      "commit": "9a919c46dfa48a9c1f465174609b90253eb8ffc1",
      "tree": "99fce0fb5b98d59ee1843a8d949cf8261e5efbff",
      "parents": [
        "f6500947a9cbb81cfa07ff344f16955d9c6ebe61"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 09 12:01:27 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 09 12:18:44 2010 +0200"
      },
      "message": "drm: fix fallouts from slow-work -\u003e wq conversion\n\nCommit 991ea75c (drm: use workqueue instead of slow-work), which made\ndrm to use wq instead of slow-work, didn\u0027t account for the return\nvalue difference between delayed_slow_work_enqueue() and\nqueue_delayed_work().  The former returns 0 on success and -errno on\nfailures while the latter never fails and only uses the return value\nto indicate whether the work was already pending or not.\n\nThis misconversion triggered spurious error messages.  Remove the now\nunnecessary return value check and error message.\n\nMarkus: caught another incorrect conversion in drm_kms_helper_poll_enable()\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nTested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nCc: David Airlie \u003cairlied@linux.ie\u003e\nCc: dri-devel@lists.freedesktop.org\n"
    },
    {
      "commit": "f6500947a9cbb81cfa07ff344f16955d9c6ebe61",
      "tree": "6544ae45f39370fd35cb44076dc4628bd852bc19",
      "parents": [
        "38f51568005873a241a8ae6bf28c9ddd3f6a11ed"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 09 11:50:34 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Mon Aug 09 11:50:34 2010 +0200"
      },
      "message": "workqueue: workqueue_cpu_callback() should be cpu_notifier instead of hotcpu_notifier\n\nCommit 6ee0578b (workqueue: mark init_workqueues as early_initcall)\nmade workqueue SMP initialization depend on workqueue_cpu_callback(),\nwhich however was registered as hotcpu_notifier() and didn\u0027t get\ncalled if CONFIG_HOTPLUG_CPU is not set.  This made gcwqs on non-boot\nCPUs not create their initial workers leading to boot failures.  Fix\nit by making it a cpu_notifier.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-and-bisected-by: walt \u003cw41ter@gmail.com\u003e\nTested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\n"
    },
    {
      "commit": "45d7f32c7a43cbb9592886d38190e379e2eb2226",
      "tree": "ea68b67b1d2127527d856248c0485f2ed7e50088",
      "parents": [
        "53bcef60633086ad73683d01a4ef9ca678484d2d",
        "ab11b487402f97975f3ac1eeea09c82f4431481e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:10:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:10:11 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/cmetcalf/linux-tile:\n  arch/tile: check kmalloc() result\n  arch/tile: catch up on various minor cleanups.\n  arch/tile: avoid erroneous error return for PTRACE_POKEUSR.\n  tile: set ARCH_KMALLOC_MINALIGN\n  tile: remove homegrown L1_CACHE_ALIGN macro\n  arch/tile: Miscellaneous cleanup changes.\n  arch/tile: Split the icache flush code off to a generic \u003carch\u003e header.\n  arch/tile: Fix bug in support for atomic64_xx() ops.\n  arch/tile: Shrink the tile-opcode files considerably.\n  arch/tile: Add driver to enable access to the user dynamic network.\n  arch/tile: Enable more sophisticated IRQ model for 32-bit chips.\n  Move list types from \u003clinux/list.h\u003e to \u003clinux/types.h\u003e.\n  Add wait4() back to the set of \u003casm-generic/unistd.h\u003e syscalls.\n  Revert adding some arch-specific signal syscalls to \u003clinux/syscalls.h\u003e.\n  arch/tile: Do not use GFP_KERNEL for dma_alloc_coherent(). Feedback from fujita.tomonori@lab.ntt.co.jp.\n  arch/tile: core support for Tilera 32-bit chips.\n  Fix up the \"generic\" unistd.h ABI to be more useful.\n"
    },
    {
      "commit": "53bcef60633086ad73683d01a4ef9ca678484d2d",
      "tree": "8b14cc031124d0aa0da6cd3b60115bc7eaa80061",
      "parents": [
        "4fd6c6bf83cb16321e9902b00e2af79054f4e0d6",
        "85d9865721c62a551547984e6cc8bd3ba732e294"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:08:26 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:08:26 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://www.jni.nu/cris\n\n* \u0027for-linus\u0027 of git://www.jni.nu/cris: (51 commits)\n  CRIS: Fix alignment problem for older ld\n  CRIS: Always dump registers for segfaulting process.\n  CRIS: Add config for pausing a seg-faulting process\n  CRIS: Don\u0027t take faults while in_atomic\n  CRIS: Fixup lookup for delay slot faults\n  CRIS: Discard exit.text and .data at runtime\n  CRIS: Add cache aligned and read mostly data sections\n  CRIS: Return something from profile write\n  CRIS: Add ARTPEC-3 and timestamps for sync-serial\n  CRIS: Better ARTPEC-3 support for gpio\n  CRIS: Add include guard\n  CRIS: Better handling of pinmux settings\n  CRIS: New DMA defines for ARTPEC-3\n  CRIS: __do_strncpy_from_user: Don\u0027t read the byte beyond the nil\n  CRIS: Pagetable for ARTPEC-3\n  CRIS: Machine dependent memmap.h\n  CRIS: Check if pointer is set before using it\n  CRIS: Machine dependent dma.h\n  CRIS: Define __read_mostly for CRISv32\n  CRIS: Discard .note.gnu.build-id section\n  ...\n"
    },
    {
      "commit": "4fd6c6bf83cb16321e9902b00e2af79054f4e0d6",
      "tree": "7153f611af0125336ac0ec22c5cb430fe520edcc",
      "parents": [
        "c5f347579a661c9506e794315f0798b75ef71d35",
        "84b9414babdc303dde1d3f44cd2a54dffb67ab97"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:05:57 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:05:57 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://android.kernel.org/kernel/tegra\n\n* \u0027for-linus\u0027 of git://android.kernel.org/kernel/tegra:\n  [ARM] tegra: add MAINTAINERS entry\n  [ARM] tegra: harmony: Add harmony board file\n  [ARM] tegra: add pinmux support\n  [ARM] tegra: add GPIO support\n  [ARM] tegra: Add timer support\n  [ARM] tegra: SMP support\n  [ARM] tegra: Add clock support\n  [ARM] tegra: Add IRQ support\n  [ARM] tegra: initial tegra support\n"
    },
    {
      "commit": "c5f347579a661c9506e794315f0798b75ef71d35",
      "tree": "eb900af7a9f758fe775ded478645fcc1ce75328f",
      "parents": [
        "537d84787659b355b3331813dc134c7497ddafa5",
        "f27098379b1dbfedae99e5b86e10529f799d4071"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:04:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:04:17 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://github.com/schandinat/linux-2.6\n\n* \u0027for-linus\u0027 of git://github.com/schandinat/linux-2.6:\n  drivers/video/via/via-gpio.c: fix warning\n  viafb: Depends on X86\n  fbdev: section cleanup in viafb driver\n  viafb: fix accel_flags check_var bug\n  viafb: probe cleanups\n  viafb: remove ioctls which break the framebuffer interface\n  viafb: update fix before calculating depth\n  viafb: PLL value cleanup\n  viafb: simplify lcd size \"detection\"\n  viafb: fix PCI table\n  viafb: add lcd scaling support for some IGPs\n  viafb: improve lcd code readability\n  viafb: remove duplicated scaling code\n  MAINTAINERS: update viafb entry\n"
    },
    {
      "commit": "537d84787659b355b3331813dc134c7497ddafa5",
      "tree": "e43d376ed8522b09163ed1f7902e1fed25d2fe3b",
      "parents": [
        "d71048e22f47725a5808ea2e4e1e72fa36c1a788",
        "ece350d3949e9a60b39e4f9853be118e98d48fbc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:02:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:02:59 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://gitorious.org/linux-omap-dss2/linux\n\n* \u0027for-linus\u0027 of git://gitorious.org/linux-omap-dss2/linux: (64 commits)\n  OMAP: DSS2: OMAPFB: add support for FBIO_WAITFORVSYNC\n  OMAP: DSS2: Replace strncmp() with sysfs_streq() in overlay_manager_store()\n  OMAP: DSS2: Fix error path in omap_dsi_update()\n  OMAP: DSS2: TDO35S: fix video signaling\n  OMAP: DSS2: OMAPFB: Fix invalid bpp for PAL and NTSC modes\n  OMAP: DSS2: OMAPFB: Fix probe error path\n  OMAP3EVM: Replace vdvi regulator supply with vdds_dsi\n  OMAP: DSS2: Remove extra return statement\n  OMAP: DSS2: adjust YUV overlay width to be even\n  OMAP: DSS2: OMAPFB: Fix sysfs mirror input check\n  OMAP: DSS2: OMAPFB: Remove redundant color register range check\n  OMAP: DSS2: OMAPFB: Remove redundant rotate range check\n  OMAP: DSS2: OMAPFB: Check fb2display() return value\n  OMAP: DSS2: Taal: Optimize enable_te, rotate, mirror when value unchanged\n  OMAP: DSS2: DSI: detect unsupported update requests\n  OMAP: DSS2: DSI: increase FIFO low threshold\n  OMAP: DSS2: DSI: Add error IRQ mask for DSI complexIO\n  OMAP: DSS2: DSI: Remove BTA after set_max_rx_packet_size\n  OMAP: DSS2: change manual update scaling setup\n  OMAP: DSS2: DSI: use BTA to end the frame transfer\n  ...\n"
    },
    {
      "commit": "d71048e22f47725a5808ea2e4e1e72fa36c1a788",
      "tree": "65debebb2964cb4cbde4d29e15730527d686a540",
      "parents": [
        "44d51a029f95d49c5c7ccd7808f81904c20c3abd",
        "d21872b3683ff37f73c68993749a6e6aeeaed265"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:01:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:01:46 2010 -0700"
      },
      "message": "Merge branch \u0027omap-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6\n\n* \u0027omap-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6: (143 commits)\n  omap: mailbox: reorganize headers\n  omap: mailbox: standarize on \u0027omap-mailbox\u0027\n  omap: mailbox: only compile for configured archs\n  omap: mailbox: simplify omap_mbox_register()\n  omap: mailbox: reorganize registering\n  omap: mailbox: add IRQ names\n  omap: mailbox: remove unecessary fields\n  omap: mailbox: don\u0027t export unecessary symbols\n  omap: mailbox: update omap1 probing\n  omap: mailbox: use correct config for omap1\n  omap: mailbox: 2420 should be detected at run-time\n  omap: mailbox: reorganize structures\n  omap: mailbox: trivial cleanups\n  omap mailbox: Set a device in logical mbox instance for traceability\n  omap: mailbox: convert block api to kfifo\n  omap: mailbox: remove (un)likely macros from cold paths\n  omap: mailbox cleanup: split MODULE_AUTHOR line\n  omap: mailbox: convert rwlocks to spinlock\n  Mailbox: disable mailbox interrupt when request queue\n  Mailbox: new mutext lock for h/w mailbox configuration\n  ...\n"
    },
    {
      "commit": "44d51a029f95d49c5c7ccd7808f81904c20c3abd",
      "tree": "41b82695b3bfb73b4146809546c2d79d6eaa4c47",
      "parents": [
        "2d53056973079e6c2ffc0d7ae3afbdd3d4f18ae3",
        "cce3dddb87e4b72b1787527eec6826a43a562e71"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:00:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Aug 08 10:00:55 2010 -0700"
      },
      "message": "Merge branch \u0027davinci-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci\n\n* \u0027davinci-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/khilman/linux-davinci:\n  davinci: dm646x EVM: Specify reserved EDMA channel/slots\n  davinci: da8xx/omapl EVM: Specify reserved channels/slots\n  davinci: support for EDMA resource sharing\n  davinci: edma: provide ability to detect insufficient CC info data\n  davinci: da8xx: sparse cleanup: remove duplicate entries in irq priorities\n  davinci: DM365: fixed second serial port\n  Davinci: tnetv107x evm board initial support\n  Davinci: tnetv107x initial gpio support\n  Davinci: tnetv107x soc support\n  Davinci: tnetv107x decompresser uart definitions\n  Davinci: generalized debug macros\n"
    },
    {
      "commit": "38f51568005873a241a8ae6bf28c9ddd3f6a11ed",
      "tree": "88adaff7c44514bf3bc2610473d4b7fc266178c6",
      "parents": [
        "2d53056973079e6c2ffc0d7ae3afbdd3d4f18ae3"
      ],
      "author": {
        "name": "Namhyung Kim",
        "email": "namhyung@gmail.com",
        "time": "Sun Aug 08 14:24:09 2010 +0200"
      },
      "committer": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Sun Aug 08 14:24:09 2010 +0200"
      },
      "message": "workqueue: add missing __percpu markup in kernel/workqueue.c\n\nworks in schecule_on_each_cpu() is a percpu pointer but was missing\n__percpu markup.  Add it.\n\nSigned-off-by: Namhyung Kim \u003cnamhyung@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n"
    },
    {
      "commit": "2d53056973079e6c2ffc0d7ae3afbdd3d4f18ae3",
      "tree": "e921596d80cd0a6434629dbd8d22c0ca3ec14b88",
      "parents": [
        "9e50ab91d025afc17ca14a1764be2e1d0c24245d",
        "e78483c5aeb0d7fbb0e365802145f1045e62957e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:09:24 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:09:24 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394-2.6: (82 commits)\n  firewire: core: add forgotten dummy driver methods, remove unused ones\n  firewire: add isochronous multichannel reception\n  firewire: core: small clarifications in core-cdev\n  firewire: core: remove unused code\n  firewire: ohci: release channel in error path\n  firewire: ohci: use memory barriers to order descriptor updates\n  tools/firewire: nosy-dump: increment program version\n  tools/firewire: nosy-dump: remove unused code\n  tools/firewire: nosy-dump: use linux/firewire-constants.h\n  tools/firewire: nosy-dump: break up a deeply nested function\n  tools/firewire: nosy-dump: make some symbols static or const\n  tools/firewire: nosy-dump: change to kernel coding style\n  tools/firewire: nosy-dump: work around segfault in decode_fcp\n  tools/firewire: nosy-dump: fix it on x86-64\n  tools/firewire: add userspace front-end of nosy\n  firewire: nosy: note ioctls in ioctl-number.txt\n  firewire: nosy: use generic printk macros\n  firewire: nosy: endianess fixes and annotations\n  firewire: nosy: annotate __user pointers and __iomem pointers\n  firewire: nosy: fix device shutdown with active client\n  ...\n"
    },
    {
      "commit": "9e50ab91d025afc17ca14a1764be2e1d0c24245d",
      "tree": "2647ef3fed12810ef88eb77e05bb7c3b2ea49d56",
      "parents": [
        "3cc08fc35db75b059118626c30b60b0f56583802",
        "a0d468718b9049f7396d101075a129a2d683ad66"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:08:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:08:30 2010 -0700"
      },
      "message": "Merge branch \u0027acpica\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6\n\n* \u0027acpica\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (27 commits)\n  ACPI / ACPICA: Simplify acpi_ev_initialize_gpe_block()\n  ACPI / ACPICA: Fail acpi_gpe_wakeup() if ACPI_GPE_CAN_WAKE is unset\n  ACPI / ACPICA: Do not execute _PRW methods during initialization\n  ACPI: Fix bogus GPE test in acpi_bus_set_run_wake_flags()\n  ACPICA: Update version to 20100702\n  ACPICA: Fix for Alias references within Package objects\n  ACPICA: Fix lint warning for 64-bit constant\n  ACPICA: Remove obsolete GPE function\n  ACPICA: Update debug output components\n  ACPICA: Add support for WDDT - Watchdog Descriptor Table\n  ACPICA: Drop acpi_set_gpe\n  ACPICA: Use low-level GPE enable during GPE block initialization\n  ACPI / EC: Do not use acpi_set_gpe\n  ACPI / EC: Drop suspend and resume routines\n  ACPICA: Remove wakeup GPE reference counting which is not used\n  ACPICA: Introduce acpi_gpe_wakeup()\n  ACPICA: Rename acpi_hw_gpe_register_bit\n  ACPICA: Update version to 20100528\n  ACPICA: Add signatures for undefined tables: ATKG, GSCI, IEIT\n  ACPICA: Optimization: Reduce the number of namespace walks\n  ...\n"
    },
    {
      "commit": "3cc08fc35db75b059118626c30b60b0f56583802",
      "tree": "704d71199c8be8d5b822ca424675291e8cec7bde",
      "parents": [
        "faa38b5e0e092914764cdba9f83d31a3f794d182",
        "03b37ecdb3975f09832747600853d3818a50eda3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:08:02 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:08:02 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (42 commits)\n  IB/qib: Add missing \u003clinux/slab.h\u003e include\n  IB/ehca: Drop unnecessary NULL test\n  RDMA/nes: Fix confusing if statement indentation\n  IB/ehca: Init irq tasklet before irq can happen\n  RDMA/nes: Fix misindented code\n  RDMA/nes: Fix showing wqm_quanta\n  RDMA/nes: Get rid of \"set but not used\" variables\n  RDMA/nes: Read firmware version from correct place\n  IB/srp: Export req_lim via sysfs\n  IB/srp: Make receive buffer handling more robust\n  IB/srp: Use print_hex_dump()\n  IB: Rename RAW_ETY to RAW_ETHERTYPE\n  RDMA/nes: Fix two sparse warnings\n  RDMA/cxgb3: Make needlessly global iwch_l2t_send() static\n  IB/iser: Make needlessly global iser_alloc_rx_descriptors() static\n  RDMA/cxgb4: Add timeouts when waiting for FW responses\n  IB/qib: Fix race between qib_error_qp() and receive packet processing\n  IB/qib: Limit the number of packets processed per interrupt\n  IB/qib: Allow writes to the diag_counters to be able to clear them\n  IB/qib: Set cfgctxts to number of CPUs by default\n  ...\n"
    },
    {
      "commit": "faa38b5e0e092914764cdba9f83d31a3f794d182",
      "tree": "b3e5921bdc36378033b4910eb4f29cb0dfc486e0",
      "parents": [
        "78417334b5cb6e1f915b8fdcc4fce3f1a1b4420c",
        "74bf40f0793fed9e01eb6164c2ce63e8c27ca205"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:07:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:07:31 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (214 commits)\n  ALSA: hda - Add pin-fix for HP dc5750\n  ALSA: als4000: Fix potentially invalid DMA mode setup\n  ALSA: als4000: enable burst mode\n  ALSA: hda - Fix initial capsrc selection in patch_alc269()\n  ASoC: TWL4030: Capture route runtime DAPM ordering fix\n  ALSA: hda - Add PC-beep whitelist for an Intel board\n  ALSA: hda - More relax for pending period handling\n  ALSA: hda - Define AC_FMT_* constants\n  ALSA: hda - Fix beep frequency on IDT 92HD73xx and 92HD71Bxx codecs\n  ALSA: hda - Add support for HDMI HBR passthrough\n  ALSA: hda - Set Stream Type in Stream Format according to AES0\n  ALSA: hda - Fix Thinkpad X300 so SPDIF is not exposed\n  ALSA: hda - FIX to not expose SPDIF on Thinkpad X301, since it does not have the ability to use SPDIF\n  ASoC: wm9081: fix resource reclaim in wm9081_register error path\n  ASoC: wm8978: fix a memory leak if a wm8978_register fail\n  ASoC: wm8974: fix a memory leak if another WM8974 is registered\n  ASoC: wm8961: fix resource reclaim in wm8961_register error path\n  ASoC: wm8955: fix resource reclaim in wm8955_register error path\n  ASoC: wm8940: fix a memory leak if wm8940_register return error\n  ASoC: wm8904: fix resource reclaim in wm8904_register error path\n  ...\n"
    },
    {
      "commit": "78417334b5cb6e1f915b8fdcc4fce3f1a1b4420c",
      "tree": "8e3fce9f27fd058904c0a3247a5c5ebb8df9fbe8",
      "parents": [
        "cd816a0d84377c4e87f55cbe934a23417f9f5743",
        "5f202bd5ca64132cdd7f186656bc0221f257733d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:06:54 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 17:06:54 2010 -0700"
      },
      "message": "Merge branch \u0027bkl/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing\n\n* \u0027bkl/core\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/random-tracing:\n  do_coredump: Do not take BKL\n  init: Remove the BKL from startup code\n"
    },
    {
      "commit": "cd816a0d84377c4e87f55cbe934a23417f9f5743",
      "tree": "8834341f81dc570f9f255af57ac28041c317226a",
      "parents": [
        "0d9f9e122c74583de15a86d1c660c08dc298f2c8",
        "a7a387cc596278af1516c534b50cc0bee171129d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 14:28:20 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 14:28:20 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6:\n  SELINUX: Fix build error.\n"
    },
    {
      "commit": "0d9f9e122c74583de15a86d1c660c08dc298f2c8",
      "tree": "a04ad387e231db43db112753fa2eae23754189a9",
      "parents": [
        "df44f9f4f9b5d362b5a2d1c8444fe7e6d4c42653",
        "998db52c03cd293d16a457f1b396cea932244147"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 14:24:41 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 14:24:41 2010 -0700"
      },
      "message": "Merge branch \u0027for-2.6.36\u0027 of git://linux-nfs.org/~bfields/linux\n\n* \u0027for-2.6.36\u0027 of git://linux-nfs.org/~bfields/linux: (34 commits)\n  nfsd4: fix file open accounting for RDWR opens\n  nfsd: don\u0027t allow setting maxblksize after svc created\n  nfsd: initialize nfsd versions before creating svc\n  net: sunrpc: removed duplicated #include\n  nfsd41: Fix a crash when a callback is retried\n  nfsd: fix startup/shutdown order bug\n  nfsd: minor nfsd read api cleanup\n  gcc-4.6: nfsd: fix initialized but not read warnings\n  nfsd4: share file descriptors between stateid\u0027s\n  nfsd4: fix openmode checking on IO using lock stateid\n  nfsd4: miscellaneous process_open2 cleanup\n  nfsd4: don\u0027t pretend to support write delegations\n  nfsd: bypass readahead cache when have struct file\n  nfsd: minor nfsd_svc() cleanup\n  nfsd: move more into nfsd_startup()\n  nfsd: just keep single lockd reference for nfsd\n  nfsd: clean up nfsd_create_serv error handling\n  nfsd: fix error handling in __write_ports_addxprt\n  nfsd: fix error handling when starting nfsd with rpcbind down\n  nfsd4: fix v4 state shutdown error paths\n  ...\n"
    },
    {
      "commit": "df44f9f4f9b5d362b5a2d1c8444fe7e6d4c42653",
      "tree": "cb27a80199e4730a98ed6fc93411d52df0001d37",
      "parents": [
        "5df6b8e65ad0f2eaee202ff002ac00d1ac605315"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Aug 06 17:26:48 2010 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 14:23:37 2010 -0700"
      },
      "message": "AFS: Fix the module init error handling\n\nFix the module init error handling.  There are a bunch of goto labels for\naborting the init procedure at different points and just undoing what needs\nundoing - they aren\u0027t all in the right places, however.\n\nThis can lead to an oops like the following:\n\n\tBUG: unable to handle kernel NULL pointer dereference at 0000000000000020\n\tIP: [\u003cffffffff81042a31\u003e] destroy_workqueue+0x17/0xc0\n\t...\n\tModules linked in: kafs(+) dns_resolver rxkad af_rxrpc fscache\n\n\tPid: 2171, comm: insmod Not tainted 2.6.35-cachefs+ #319 DG965RY/\n\t...\n\tProcess insmod (pid: 2171, threadinfo ffff88003ca6a000, task ffff88003dcc3050)\n\t...\n\tCall Trace:\n\t [\u003cffffffffa0055994\u003e] afs_callback_update_kill+0x10/0x12 [kafs]\n\t [\u003cffffffffa007d1c5\u003e] afs_init+0x190/0x1ce [kafs]\n\t [\u003cffffffffa007d035\u003e] ? afs_init+0x0/0x1ce [kafs]\n\t [\u003cffffffff810001ef\u003e] do_one_initcall+0x59/0x14e\n\t [\u003cffffffff8105f7ee\u003e] sys_init_module+0x9c/0x1de\n\t [\u003cffffffff81001eab\u003e] system_call_fastpath+0x16/0x1b\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5df6b8e65ad0f2eaee202ff002ac00d1ac605315",
      "tree": "2eff6606f8e39dc1fd7eb8a05feb2a9927151805",
      "parents": [
        "fe21ea18c742ab0eb8f6f8ebc543374839a02a87",
        "3dce9a5c3a39a664e372886ea86c42ae7ae33dfc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:19:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:19:36 2010 -0700"
      },
      "message": "Merge branch \u0027nfs-for-2.6.36\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6\n\n* \u0027nfs-for-2.6.36\u0027 of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (42 commits)\n  NFS: NFSv4.1 is no longer a \"developer only\" feature\n  NFS: NFS_V4 is no longer an EXPERIMENTAL feature\n  NFS: Fix /proc/mount for legacy binary interface\n  NFS: Fix the locking in nfs4_callback_getattr\n  SUNRPC: Defer deleting the security context until gss_do_free_ctx()\n  SUNRPC: prevent task_cleanup running on freed xprt\n  SUNRPC: Reduce asynchronous RPC task stack usage\n  SUNRPC: Move the bound cred to struct rpc_rqst\n  SUNRPC: Clean up of rpc_bindcred()\n  SUNRPC: Move remaining RPC client related task initialisation into clnt.c\n  SUNRPC: Ensure that rpc_exit() always wakes up a sleeping task\n  SUNRPC: Make the credential cache hashtable size configurable\n  SUNRPC: Store the hashtable size in struct rpc_cred_cache\n  NFS: Ensure the AUTH_UNIX credcache is allocated dynamically\n  NFS: Fix the NFS users of rpc_restart_call()\n  SUNRPC: The function rpc_restart_call() should return success/failure\n  NFSv4: Get rid of the bogus RPC_ASSASSINATED(task) checks\n  NFSv4: Clean up the process of renewing the NFSv4 lease\n  NFSv4.1: Handle NFS4ERR_DELAY on SEQUENCE correctly\n  NFS: nfs_rename() should not have to flush out writebacks\n  ...\n"
    },
    {
      "commit": "fe21ea18c742ab0eb8f6f8ebc543374839a02a87",
      "tree": "ce34b75b8b522331425b9c151cdd1e71226e8d9a",
      "parents": [
        "a57f9a3e811cf1246b394f0cc667c6bc5a52e099",
        "2d45ba381a74a743eeaa2b06c7c5c0d2bf73ba1a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:18:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:18:36 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:\n  fuse: add retrieve request\n  fuse: add store request\n  fuse: don\u0027t use atomic kmap\n"
    },
    {
      "commit": "a57f9a3e811cf1246b394f0cc667c6bc5a52e099",
      "tree": "488b4dd7cd061e7e0e059acb8443967e21051aab",
      "parents": [
        "09dc942c2a767e2d298f1cc9294bc19c7d7208c5",
        "89c0fd014d34d409a7b196667c2b9a4813b6c968"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:10:55 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:10:55 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2: (45 commits)\n  nilfs2: reject filesystem with unsupported block size\n  nilfs2: avoid rec_len overflow with 64KB block size\n  nilfs2: simplify nilfs_get_page function\n  nilfs2: reject incompatible filesystem\n  nilfs2: add feature set fields to super block\n  nilfs2: clarify byte offset in super block format\n  nilfs2: apply read-ahead for nilfs_btree_lookup_contig\n  nilfs2: introduce check flag to btree node buffer\n  nilfs2: add btree get block function with readahead option\n  nilfs2: add read ahead mode to nilfs_btnode_submit_block\n  nilfs2: fix buffer head leak in nilfs_btnode_submit_block\n  nilfs2: eliminate inline keywords in btree implementation\n  nilfs2: get maximum number of child nodes from bmap object\n  nilfs2: reduce repetitive calculation of max number of child nodes\n  nilfs2: optimize calculation of min/max number of btree node children\n  nilfs2: remove redundant pointer checks in bmap lookup functions\n  nilfs2: get rid of nilfs_bmap_union\n  nilfs2: unify bmap set_target_v operations\n  nilfs2: get rid of nilfs_btree uses\n  nilfs2: get rid of nilfs_direct uses\n  ...\n"
    },
    {
      "commit": "09dc942c2a767e2d298f1cc9294bc19c7d7208c5",
      "tree": "d310c118467c90c264e953bdc320ae08394c662a",
      "parents": [
        "90e0c225968f0878e090c7ff3f88323973476cee",
        "6c7a120ac6c62316ab1fc78dfc0a7b13f3bfcbff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:03:53 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 13:03:53 2010 -0700"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4\n\n* \u0027next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (40 commits)\n  ext4: Adding error check after calling ext4_mb_regular_allocator()\n  ext4: Fix dirtying of journalled buffers in data\u003djournal mode\n  ext4: re-inline ext4_rec_len_(to|from)_disk functions\n  jbd2: Remove t_handle_lock from start_this_handle()\n  jbd2: Change j_state_lock to be a rwlock_t\n  jbd2: Use atomic variables to avoid taking t_handle_lock in jbd2_journal_stop\n  ext4: Add mount options in superblock\n  ext4: force block allocation on quota_off\n  ext4: fix freeze deadlock under IO\n  ext4: drop inode from orphan list if ext4_delete_inode() fails\n  ext4: check to make make sure bd_dev is set before dereferencing it\n  jbd2: Make barrier messages less scary\n  ext4: don\u0027t print scary messages for allocation failures post-abort\n  ext4: fix EFBIG edge case when writing to large non-extent file\n  ext4: fix ext4_get_blocks references\n  ext4: Always journal quota file modifications\n  ext4: Fix potential memory leak in ext4_fill_super\n  ext4: Don\u0027t error out the fs if the user tries to make a file too big\n  ext4: allocate stripe-multiple IOs on stripe boundaries\n  ext4: move aio completion after unwritten extent conversion\n  ...\n\nFix up conflicts in fs/ext4/inode.c as per Ted.\n\nFix up xfs conflicts as per earlier xfs merge.\n"
    },
    {
      "commit": "90e0c225968f0878e090c7ff3f88323973476cee",
      "tree": "30fff5a5cb18b08d40e4d496489be6ce714a6cde",
      "parents": [
        "938a73b959cf77aadc41bded3bf416b618aa20b3",
        "5f11e6a44059f728dddd8d0dbe5b4368ea93575b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:57:07 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:57:07 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:\n  ext3: Fix dirtying of journalled buffers in data\u003djournal mode\n  ext3: default to ordered mode\n  quota: Use mark_inode_dirty_sync instead of mark_inode_dirty\n  quota: Change quota error message to print out disk and function name\n  MAINTAINERS: Update entries of ext2 and ext3\n  MAINTAINERS: Update address of Andreas Dilger\n  ext3: Avoid filesystem corruption after a crash under heavy delete load\n  ext3: remove vestiges of nobh support\n  ext3: Fix set but unused variables\n  quota: clean up quota active checks\n  quota: Clean up the namespace in dqblk_xfs.h\n  quota: check quota reservation on remove_dquot_ref\n"
    },
    {
      "commit": "938a73b959cf77aadc41bded3bf416b618aa20b3",
      "tree": "812bdbf0d1dc219d55eaf0e66935a523669ca6c6",
      "parents": [
        "45480aa75b03d6705ab5ceebda9d09be22f4e928",
        "f70cb33b9c270f4f1a7f28327e7d35dbf1a6fc40"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:56:48 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:56:48 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/dlm:\n  fs/dlm: Drop unnecessary null test\n  dlm: use genl_register_family_with_ops()\n"
    },
    {
      "commit": "45480aa75b03d6705ab5ceebda9d09be22f4e928",
      "tree": "e8314360d01e4f2cea3a926f0f7f7d856d57c3cb",
      "parents": [
        "1fc7995d19139d6f99203b43c161968f3f554a15",
        "581b7e9fc00789782cb3bdca58db49f6f0f66608"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:56:27 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:56:27 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:\n  udf: super.c Fix warning: variable \u0027sbi\u0027 set but not used\n  udf: remove duplicated #include\n"
    },
    {
      "commit": "1fc7995d19139d6f99203b43c161968f3f554a15",
      "tree": "8ad219a60e85935df878f2f9927a58b84f63433e",
      "parents": [
        "3b7433b8a8a83c87972065b1852b7dcae691e464",
        "5227bbb008fa6d2efddd86170bdfac2020cf571d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:54:46 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:54:46 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:\n  [DNS RESOLVER] Minor typo correction\n  DNS: Fixes for the DNS query module\n  cifs: Include linux/err.h for IS_ERR and PTR_ERR\n  DNS: Make AFS go to the DNS for AFSDB records for unknown cells\n  DNS: Separate out CIFS DNS Resolver code\n  cifs: account for new creduid\u003d0x%x parameter in spnego upcall string\n  cifs: reduce false positives with inode aliasing serverino autodisable\n  CIFS: Make cifs_convert_address() take a const src pointer and a length\n  cifs: show features compiled in as part of DebugData\n  cifs: update README\n\nFix up trivial conflicts in fs/cifs/cifsfs.c due to workqueue changes\n"
    },
    {
      "commit": "3b7433b8a8a83c87972065b1852b7dcae691e464",
      "tree": "93fa2c003f8baef5ab0733b53bac77961ed5240c",
      "parents": [
        "4a386c3e177ca2fbc70c9283d0b46537844763a0",
        "6ee0578b4daaea01c96b172c6aacca43fd9807a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Aug 07 12:42:58 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (55 commits)\n  workqueue: mark init_workqueues() as early_initcall()\n  workqueue: explain for_each_*cwq_cpu() iterators\n  fscache: fix build on !CONFIG_SYSCTL\n  slow-work: kill it\n  gfs2: use workqueue instead of slow-work\n  drm: use workqueue instead of slow-work\n  cifs: use workqueue instead of slow-work\n  fscache: drop references to slow-work\n  fscache: convert operation to use workqueue instead of slow-work\n  fscache: convert object to use workqueue instead of slow-work\n  workqueue: fix how cpu number is stored in work-\u003edata\n  workqueue: fix mayday_mask handling on UP\n  workqueue: fix build problem on !CONFIG_SMP\n  workqueue: fix locking in retry path of maybe_create_worker()\n  async: use workqueue for worker pool\n  workqueue: remove WQ_SINGLE_CPU and use WQ_UNBOUND instead\n  workqueue: implement unbound workqueue\n  workqueue: prepare for WQ_UNBOUND implementation\n  libata: take advantage of cmwq and remove concurrency limitations\n  workqueue: fix worker management invocation without pending works\n  ...\n\nFixed up conflicts in fs/cifs/* as per Tejun. Other trivial conflicts in\ninclude/linux/workqueue.h, kernel/trace/Kconfig and kernel/workqueue.c\n"
    },
    {
      "commit": "998db52c03cd293d16a457f1b396cea932244147",
      "tree": "6546b0752c402c458723242e3a03723e2083040b",
      "parents": [
        "7fa53cc872332b265bc5ba1266f39586f218ad4a"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@pad.home.fieldses.org",
        "time": "Sat Aug 07 09:21:41 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@pad.home.fieldses.org",
        "time": "Sat Aug 07 09:50:05 2010 -0400"
      },
      "message": "nfsd4: fix file open accounting for RDWR opens\n\nCommit f9d7562fdb9dc0ada3a7aba5dbbe9d965e2a105d \"nfsd4: share file\ndescriptors between stateid\u0027s\" didn\u0027t correctly account for O_RDWR opens.\nSymptoms include leaked files, resulting in failures to unmount and/or\nwarnings about orphaned inodes on reboot.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "4a386c3e177ca2fbc70c9283d0b46537844763a0",
      "tree": "7f3a6a6a984a988e8a6e908d93dcd57d92a82efd",
      "parents": [
        "e8779776afbd5f2d5315cf48c4257ca7e9b250fb",
        "1cff92d8fdb27684308864d9cdb324bee43b40ab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:25:13 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:25:13 2010 -0700"
      },
      "message": "Merge branch \u0027x86-xsave-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-xsave-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, xsave: Make xstate_enable_boot_cpu() __init, protect on CPU 0\n  x86, xsave: Add __init attribute to setup_xstate_features()\n  x86, xsave: Make init_xstate_buf static\n  x86, xsave: Check cpuid level for XSTATE_CPUID (0x0d)\n  x86, xsave: Introduce xstate enable functions\n  x86, xsave: Separate fpu and xsave initialization\n  x86, xsave: Move boot cpu initialization to xsave_init()\n  x86, xsave: 32/64 bit boot cpu check unification in initialization\n  x86, xsave: Do not include asm/i387.h in asm/xsave.h\n  x86, xsave: Use xsaveopt in context-switch path when supported\n  x86, xsave: Sync xsave memory layout with its header for user handling\n  x86, xsave: Track the offset, size of state in the xsave layout\n"
    },
    {
      "commit": "e8779776afbd5f2d5315cf48c4257ca7e9b250fb",
      "tree": "a439733c6c71dd7d24ba65557159c30c2e49861a",
      "parents": [
        "3cf8ad3394b8675e92a35c438f22341197535531",
        "a2d7b0d4852536273b65d16fe179c65184fe5e2d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:24:51 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:24:51 2010 -0700"
      },
      "message": "Merge branch \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-mce-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, mce: Use HW_ERR in MCE handler\n  x86, mce: Add HW_ERR printk prefix for hardware error logging\n  x86, mce: Fix MSR_IA32_MCI_CTL2 CMCI threshold setup\n  x86, mce: Rename MSR_IA32_MCx_CTL2 value\n"
    },
    {
      "commit": "3cf8ad3394b8675e92a35c438f22341197535531",
      "tree": "39c9c5b9465e4f63f6cdf9b767d8046eaf0f3ac7",
      "parents": [
        "66cd55d2b903643cbd019ef97a5305d9428d3865",
        "54e5bc020ce1c959eaa7be18cedb734b6b13745e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:24:34 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:24:34 2010 -0700"
      },
      "message": "Merge branch \u0027x86-olpc-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-olpc-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, olpc: Constify an olpc_ofw() arg\n  x86, olpc: Use pr_debug() for EC commands\n  x86, olpc: Add comment about implicit optimization barrier\n  x86, olpc: Add support for calling into OpenFirmware\n"
    },
    {
      "commit": "66cd55d2b903643cbd019ef97a5305d9428d3865",
      "tree": "454a5af22b1aaf8fe62689974342a784f6f38822",
      "parents": [
        "75cb5fdce29c77ec54db45f0c6be7cc5715f8e15",
        "3b770a2128423a687e6e9c57184a584fb4ba4c77"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:24:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:24:17 2010 -0700"
      },
      "message": "Merge branch \u0027x86-alternatives-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-alternatives-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, alternatives: BUG on encountering an invalid CPU feature number\n  x86, alternatives: Fix one more open-coded 8-bit alternative number\n  x86, alternatives: Use 16-bit numbers for cpufeature index\n"
    },
    {
      "commit": "75cb5fdce29c77ec54db45f0c6be7cc5715f8e15",
      "tree": "ffc1d292d9b26a02d76f517c591f78b2aa8b576d",
      "parents": [
        "ce06ea8339de1dca3455e9c89c56ea161988ab71",
        "b2691085d1f3ccce641dcfdd02722ba5d34db6ba",
        "9f242dc10e0c3c1eb32d8c83c18650a35fd7f80d",
        "68f202e4e87cfab4439568bf397fcc5c7cf8d729",
        "5bbd4a336c81d32df71642abf310cf3d0c98dc9b",
        "8e221b6db4477643fefc885a97ea9889ac733140",
        "be783a47214afc5a0aea9dafcbd9f1535ba05e94"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:22:59 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:22:59 2010 -0700"
      },
      "message": "Merge branches \u0027x86-cleanups-for-linus\u0027, \u0027x86-vmware-for-linus\u0027, \u0027x86-mtrr-for-linus\u0027, \u0027x86-apic-for-linus\u0027, \u0027x86-fpu-for-linus\u0027 and \u0027x86-vdso-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027x86-cleanups-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: Clean up arch/x86/kernel/cpu/mtrr/cleanup.c: use \";\" not \",\" to terminate statements\n\n* \u0027x86-vmware-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, vmware: Preset lpj values when on VMware.\n\n* \u0027x86-mtrr-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, mtrr: Use stop machine context to rendezvous all the cpu\u0027s\n\n* \u0027x86-apic-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86/apic/es7000_32: Remove unused variable\n\n* \u0027x86-fpu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86: Avoid unnecessary __clear_user() and xrstor in signal handling\n\n* \u0027x86-vdso-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  x86, vdso: Unmap vdso pages\n"
    },
    {
      "commit": "ce06ea8339de1dca3455e9c89c56ea161988ab71",
      "tree": "ef6e12f96bbe0c78e6cd0ad1fc6fc679b80808e0",
      "parents": [
        "17879857821adad4e180c5d6457c3b8bbf1d0c0c",
        "9261ec1a8d7b17e2540bef7cad3470870d13b61e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:15:12 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 16:15:12 2010 -0700"
      },
      "message": "Merge branch \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb\n\n* \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel/linux-2.6-kgdb:\n  console: Fix compilation regression\n"
    },
    {
      "commit": "a7a387cc596278af1516c534b50cc0bee171129d",
      "tree": "6b020262150ab47e2aaeb7ccdd57534460df2665",
      "parents": [
        "06c22dadc6d3f9b65e55407a87faaf6a4a014112"
      ],
      "author": {
        "name": "Ralf Baechle",
        "email": "ralf@linux-mips.org",
        "time": "Fri Aug 06 20:37:56 2010 +0100"
      },
      "committer": {
        "name": "James Morris",
        "email": "jmorris@namei.org",
        "time": "Fri Aug 06 18:11:39 2010 -0400"
      },
      "message": "SELINUX: Fix build error.\n\nFix build error caused by a stale security/selinux/av_permissions.h in the $(src)\ndirectory which will override a more recent version in $(obj) that is it\nappears to strike only when building with a separate object directory.\n\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: James Morris \u003cjmorris@namei.org\u003e\n"
    },
    {
      "commit": "7fa53cc872332b265bc5ba1266f39586f218ad4a",
      "tree": "0583a66f8665581a7a9b613f30000e9093c9ff84",
      "parents": [
        "e844a7b9805a2b74cfd34c8604f5bba3e0869305"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 06 18:00:33 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 06 18:00:33 2010 -0400"
      },
      "message": "nfsd: don\u0027t allow setting maxblksize after svc created\n\nIt\u0027s harmless to set this after the server is created, but also\nineffective, since the value is only used at the time of\nsvc_create_pooled().  So fail the attempt, in keeping with the pattern\nset by write_versions, write_{lease,grace}time and write_recoverydir.\n\n(This could break userspace that tried to write to nfsd/max_block_size\nbetween setting up sockets and starting the server.  However, such code\nwouldn\u0027t have worked anyway, and I don\u0027t know of any examples--rpc.nfsd\nin nfs-utils, probably the only user of the interface, doesn\u0027t do that.)\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e844a7b9805a2b74cfd34c8604f5bba3e0869305",
      "tree": "f0270f65da19a0f6ebc50787dd9edce6a8def9d3",
      "parents": [
        "e2aa7f8304b3b5656ded8699216cc65138d03b64"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 06 15:48:03 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 06 17:05:40 2010 -0400"
      },
      "message": "nfsd: initialize nfsd versions before creating svc\n\nCommit 59db4a0c102e0de226a3395dbf25ea51bf845937 \"nfsd: move more into\nnfsd_startup()\" inadvertently moved nfsd_versions after\nnfsd_create_svc().  On older distributions using an rpc.nfsd that does\nnot explicitly set the list of nfsd versions, this results in\nsvc-create_pooled() being called with an empty versions array.  The\nresulting incomplete initialization leads to a NULL dereference in\nsvc_process_common() the first time a client accesses the server.\n\nMove nfsd_reset_versions() back before the svc_create_pooled(); this\ntime, put it closer to the svc_create_pooled() call, to make this\nmistake more difficult in the future.\n\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "e2aa7f8304b3b5656ded8699216cc65138d03b64",
      "tree": "a7bcb0f3d96a5d2b5d6d3fa36f9cf5b1aa9d7343",
      "parents": [
        "c18c821fd40ad0ffc199a55be874e556bf999416"
      ],
      "author": {
        "name": "Andrea Gelmini",
        "email": "andrea.gelmini@gelma.net",
        "time": "Thu Aug 05 15:51:36 2010 +0200"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 06 17:05:39 2010 -0400"
      },
      "message": "net: sunrpc: removed duplicated #include\n\nSigned-off-by: Andrea Gelmini \u003candrea.gelmini@gelma.net\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "c18c821fd40ad0ffc199a55be874e556bf999416",
      "tree": "ba1830c90160a4f85a32552425a556b70e56bae1",
      "parents": [
        "774f8bbd9ef2e71d4ef4b89933d292091d31ca98"
      ],
      "author": {
        "name": "Boaz Harrosh",
        "email": "bharrosh@panasas.com",
        "time": "Tue Jun 29 14:33:55 2010 +0300"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 06 17:05:39 2010 -0400"
      },
      "message": "nfsd41: Fix a crash when a callback is retried\n\nIf a callback is retried at nfsd4_cb_recall_done() due to\nsome error, the returned rpc reply crashes here:\n\n@@ -514,6 +514,7 @@ decode_cb_sequence(struct xdr_stream *xdr, struct nfsd4_cb_sequence *res,\n \tu32 dummy;\n \t__be32 *p;\n\n +\tBUG_ON(!res);\n \tif (res-\u003ecbs_minorversion \u003d\u003d 0)\n \t\treturn 0;\n\n[BUG_ON added for demonstration]\n\nThis is because the nfsd4_cb_done_sequence() has NULLed out\nthe task-\u003etk_msg.rpc_resp pointer.\n\nAlso eventually the rpc would use the new slot without making\nsure it is free by calling nfsd41_cb_setup_sequence().\n\nThis problem was introduced by a 4.1 protocol addition patch:\n\t[0421b5c5] nfsd41: Backchannel: Implement cb_recall over NFSv4.1\n\nWhich was overlooking the possibility of an RPC callback retries.\nFor not-4.1 case redoing the _prepare is harmless.\n\nSigned-off-by: Boaz Harrosh \u003cbharrosh@panasas.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "774f8bbd9ef2e71d4ef4b89933d292091d31ca98",
      "tree": "bbc4afb785f31727b61279b1a026768d5953d60f",
      "parents": [
        "039a87ca536a85bc169ce092e44bd57adfa1f563"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Mon Aug 02 14:12:44 2010 -0400"
      },
      "committer": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Aug 06 17:05:30 2010 -0400"
      },
      "message": "nfsd: fix startup/shutdown order bug\n\nWe must create the server before we can call init_socks or check the\nnumber of threads.\n\nSymptoms were a NULL pointer dereference in nfsd_svc().  Problem\nidentified by Jeff Layton.\n\nAlso fix a minor cleanup-on-error case in nfsd_startup().\n\nReported-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\n"
    },
    {
      "commit": "9261ec1a8d7b17e2540bef7cad3470870d13b61e",
      "tree": "ee7d2713d947a8a231d720627806c1db6b67ed6b",
      "parents": [
        "fc1caf6eafb30ea185720e29f7f5eccca61ecd60"
      ],
      "author": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Aug 06 15:36:47 2010 -0500"
      },
      "committer": {
        "name": "Jason Wessel",
        "email": "jason.wessel@windriver.com",
        "time": "Fri Aug 06 15:36:47 2010 -0500"
      },
      "message": "console: Fix compilation regression\n\nA regression of building without CONFIG_HW_CONSOLE was introduced with\ncommit b45cfba4e9005d64d419718e7ff7f7cab44c1994 (vt,console,kdb:\nimplement atomic console enter/leave functions).\n\nERROR: \"con_debug_enter\" [drivers/serial/kgdboc.ko] undefined!\nERROR: \"vc_cons\" [drivers/serial/kgdboc.ko] undefined!\nERROR: \"fg_console\" [drivers/serial/kgdboc.ko] undefined!\nERROR: \"con_debug_leave\" [drivers/serial/kgdboc.ko] undefined!\n\nWhen there is no HW console the con_debug_enter and con_debug_leave\nfunctions should have no code.\n\nSigned-off-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCC: Jesse Barnes \u003cjbarnes@virtuousgeek.org\u003e\nReported-by: Randy Dunlap \u003crandy.dunlap@oracle.com\u003e\n"
    },
    {
      "commit": "17879857821adad4e180c5d6457c3b8bbf1d0c0c",
      "tree": "28afa4b59847ca13b8d51a83fa04954916387de9",
      "parents": [
        "b62ad9ab181a67207a4c8c373461b587c4861a68",
        "4877c737283813bdb4bebfa3168c1585f6e3a8ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:25:43 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:25:43 2010 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  xen: Do not suspend IPI IRQs.\n  powerpc: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupts\n  ixp4xx-beeper: Use IRQF_NO_SUSPEND not IRQF_TIMER for non-timer interrupt\n  irq: Add new IRQ flag IRQF_NO_SUSPEND\n"
    },
    {
      "commit": "b62ad9ab181a67207a4c8c373461b587c4861a68",
      "tree": "ace1572964d81f5f9bbc10b7960c1f742832d744",
      "parents": [
        "af390084359a5de20046c901529b2b6a50b941cb",
        "b29230769e3482bbd62a07d6d9485371ee66a18f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:18:29 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:18:29 2010 -0700"
      },
      "message": "Merge branch \u0027timers-timekeeping-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-timekeeping-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  um: Fix read_persistent_clock fallout\n  kgdb: Do not access xtime directly\n  powerpc: Clean up obsolete code relating to decrementer and timebase\n  powerpc: Rework VDSO gettimeofday to prevent time going backwards\n  clocksource: Add __clocksource_updatefreq_hz/khz methods\n  x86: Convert common clocksources to use clocksource_register_hz/khz\n  timekeeping: Make xtime and wall_to_monotonic static\n  hrtimer: Cleanup direct access to wall_to_monotonic\n  um: Convert to use read_persistent_clock\n  timkeeping: Fix update_vsyscall to provide wall_to_monotonic offset\n  powerpc: Cleanup xtime usage\n  powerpc: Simplify update_vsyscall\n  time: Kill off CONFIG_GENERIC_TIME\n  time: Implement timespec_add\n  x86: Fix vtime/file timestamp inconsistencies\n\nTrivial conflicts in Documentation/feature-removal-schedule.txt\n\nMuch less trivial conflicts in arch/powerpc/kernel/time.c resolved as\nper Thomas\u0027 earlier merge commit 47916be4e28c (\"Merge branch\n\u0027powerpc.cherry-picks\u0027 into timers/clocksource\")\n"
    },
    {
      "commit": "af390084359a5de20046c901529b2b6a50b941cb",
      "tree": "b73a6261d1b1f9fb34432cc9a47411a49330b8dc",
      "parents": [
        "7645e4320497b35ce9fb6c2269ebcd57af9fe735",
        "0fcb80818bc3ade5befd409051089f710adcf7b0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:12:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:12:36 2010 -0700"
      },
      "message": "Merge branch \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip\n\n* \u0027timers-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:\n  Documentation: Add timers/timers-howto.txt\n  timer: Added usleep_range timer\n  Revert \"timer: Added usleep[_range] timer\"\n  clockevents: Remove the per cpu tick skew\n  posix_timer: Move copy_to_user(created_timer_id) down in timer_create()\n  timer: Added usleep[_range] timer\n  timers: Document meaning of deferrable timer\n"
    },
    {
      "commit": "7645e4320497b35ce9fb6c2269ebcd57af9fe735",
      "tree": "00b4a98f52f5e4d41f5baa495546bab2425805d3",
      "parents": [
        "1685e633b396b0f3dabbc9fa5d65dfefe6435250"
      ],
      "author": {
        "name": "H. Peter Anvin",
        "email": "hpa@zytor.com",
        "time": "Fri Aug 06 12:18:11 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 13:07:19 2010 -0700"
      },
      "message": "x86, kvm: Remove cast obsoleted by set_64bit() prototype cleanup\n\nKVM ended up having to put a pretty ugly wrapper around set_64bit()\nin order to get the type right.  Now set_64bit() takes the expected\nu64 type, and this wrapper can be cleaned up.\n\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nLKML-Reference: \u003c4C5C4E7A.8040603@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1685e633b396b0f3dabbc9fa5d65dfefe6435250",
      "tree": "ee83e26e2468ca1518a1b065c690159e12c8def9",
      "parents": [
        "1cfd2bda8c486ae0e7a8005354758ebb68172bca",
        "127c03cdbad9bd5af5d7f33bd31a1015a90cb77f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 12:25:06 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 12:25:06 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:\n  pcmcia: avoid buffer overflow in pcmcia_setup_isa_irq\n  pcmcia: do not request windows if you don\u0027t need to\n  pcmcia: insert PCMCIA device resources into resource tree\n  pcmcia: export resource information to sysfs\n  pcmcia: use struct resource for PCMCIA devices, part 2\n  pcmcia: remove memreq_t\n  pcmcia: move local definitions out of include/pcmcia/cs.h\n  pcmcia: do not use io_req_t when calling pcmcia_request_io()\n  pcmcia: do not use io_req_t after call to pcmcia_request_io()\n  pcmcia: use struct resource for PCMCIA devices\n  pcmcia: clean up cs.h\n  pcmcia: use pcmica_{read,write}_config_byte\n  pcmcia: remove cs_types.h\n  pcmcia: remove unused flag, simplify headers\n  pcmcia: remove obsolete CS_EVENT_ definitions\n  pcmcia: split up central event handler\n  pcmcia: simplify event callback\n  pcmcia: remove obsolete ioctl\n\nConflicts in:\n - drivers/staging/comedi/drivers/*\n - drivers/staging/wlags49_h2/wl_cs.c\ndue to dev_info_t and whitespace changes\n"
    },
    {
      "commit": "1cfd2bda8c486ae0e7a8005354758ebb68172bca",
      "tree": "76ce15f377d8d6eb3ae4aa8b8b0b415457e38d36",
      "parents": [
        "b57bdda58cda0aaf6def042d101dd85977a286ed",
        "763e9db9994e27a7d2cb3701c8a097a867d0e0b4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:44:36 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:44:36 2010 -0700"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6\n\n* \u0027linux-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6: (30 commits)\n  PCI: update for owner removal from struct device_attribute\n  PCI: Fix warnings when CONFIG_DMI unset\n  PCI: Do not run NVidia quirks related to MSI with MSI disabled\n  x86/PCI: use for_each_pci_dev()\n  PCI: use for_each_pci_dev()\n  PCI: MSI: Restore read_msi_msg_desc(); add get_cached_msi_msg_desc()\n  PCI: export SMBIOS provided firmware instance and label to sysfs\n  PCI: Allow read/write access to sysfs I/O port resources\n  x86/PCI: use host bridge _CRS info on ASRock ALiveSATA2-GLAN\n  PCI: remove unused HAVE_ARCH_PCI_SET_DMA_MAX_SEGMENT_{SIZE|BOUNDARY}\n  PCI: disable mmio during bar sizing\n  PCI: MSI: Remove unsafe and unnecessary hardware access\n  PCI: Default PCIe ASPM control to on and require !EMBEDDED to disable\n  PCI: kernel oops on access to pci proc file while hot-removal\n  PCI: pci-sysfs: remove casts from void*\n  ACPI: Disable ASPM if the platform won\u0027t provide _OSC control for PCIe\n  PCI hotplug: make sure child bridges are enabled at hotplug time\n  PCI hotplug: shpchp: Removed check for hotplug of display devices\n  PCI hotplug: pciehp: Fixed return value sign for pciehp_unconfigure_device\n  PCI: Don\u0027t enable aspm before drivers have had a chance to veto it\n  ...\n"
    },
    {
      "commit": "b57bdda58cda0aaf6def042d101dd85977a286ed",
      "tree": "7f63afddb8275d67214d7a89cfc8a65815e79d42",
      "parents": [
        "cc41f5cede3c63836d1c0958204630b07f5b5ee7",
        "415cb47998c54195710d413c3d95e37a9339c1e8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:44:08 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:44:08 2010 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:\n  slub: Allow removal of slab caches during boot\n  Revert \"slub: Allow removal of slab caches during boot\"\n  slub numa: Fix rare allocation from unexpected node\n  slab: use deferable timers for its periodic housekeeping\n  slub: Use kmem_cache flags to detect if slab is in debugging mode.\n  slub: Allow removal of slab caches during boot\n  slub: Check kasprintf results in kmem_cache_init()\n  SLUB: Constants need UL\n  slub: Use a constant for a unspecified node.\n  SLOB: Free objects to their own list\n  slab: fix caller tracking on !CONFIG_DEBUG_SLAB \u0026\u0026 CONFIG_TRACING\n"
    },
    {
      "commit": "cc41f5cede3c63836d1c0958204630b07f5b5ee7",
      "tree": "dfd94451c919b5185d8a01fd3e5a90244fb0de1c",
      "parents": [
        "ab69bcd66fb4be64edfc767365cb9eb084961246",
        "9015e4996273c86574d6fd26df8a203941d3cc24"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:41:17 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:41:17 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging-2.6: (524 commits)\n  Staging: wlan-ng: Update prism2_set_tx_power() to use mBm\n  Staging: ti-st: update TODO\n  Staging: wlags49_h2: use common PCI_VENDOR/DEVICE_ID name format\n  Staging: comedi : fix brace coding style issue in wwrap.c\n  Staging: quatech_usb2: remove unused qt2_box_flush function\n  Staging: slicoss: Remove net_device_stats from the driver\u0027s private\n  staging: rtl8192su: check whether requests succeeded\n  staging: panel: fix error path\n  staging: otus: check kmalloc() return value\n  staging: octeon: check request_irq() return value\n  Staging: wlan-ng: remove typedef in p80211hdr.h\n  Staging: wlan-ng: fix checkpatch issues in headers.\n  Staging: wlan-ng: remove typedef in p80211ioctl.h\n  Staging: wlan-ng: fix style issues in p80211conv.h\n  Staging: wlan-ng: fix style issues for p80211hdr.h\n  staging: vt6656: removed NTSTATUS definition\n  staging: vt6656: simplified tests involving both multi/broad-casts\n  Staging: vt6655: replace BOOL with in kernel bool\n  Staging: vt6655: replace FALSE with in kernel false\n  Staging: vt6655: replace TRUE with in kernel true\n  ...\n"
    },
    {
      "commit": "ab69bcd66fb4be64edfc767365cb9eb084961246",
      "tree": "f7623585aee58978fc7814460fff517ec39138f2",
      "parents": [
        "c513b67e68787eceafeede32bcd0edbee45c0006",
        "6937e8f8c0135f2325194c372ada6dc655499992"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:36:30 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:36:30 2010 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (28 commits)\n  driver core: device_rename\u0027s new_name can be const\n  sysfs: Remove owner field from sysfs struct attribute\n  powerpc/pci: Remove owner field from attribute initialization in PCI bridge init\n  regulator: Remove owner field from attribute initialization in regulator core driver\n  leds: Remove owner field from attribute initialization in bd2802 driver\n  scsi: Remove owner field from attribute initialization in ARCMSR driver\n  scsi: Remove owner field from attribute initialization in LPFC driver\n  cgroupfs: create /sys/fs/cgroup to mount cgroupfs on\n  Driver core: Add BUS_NOTIFY_BIND_DRIVER\n  driver core: fix memory leak on one error path in bus_register()\n  debugfs: no longer needs to depend on SYSFS\n  sysfs: Fix one more signature discrepancy between sysfs implementation and docs.\n  sysfs: fix discrepancies between implementation and documentation\n  dcdbas: remove a redundant smi_data_buf_free in dcdbas_exit\n  dmi-id: fix a memory leak in dmi_id_init error path\n  sysfs: sysfs_chmod_file\u0027s attr can be const\n  firmware: Update hotplug script\n  Driver core: move platform device creation helpers to .init.text (if MODULE\u003dn)\n  Driver core: reduce duplicated code for platform_device creation\n  Driver core: use kmemdup in platform_device_add_resources\n  ...\n"
    },
    {
      "commit": "c513b67e68787eceafeede32bcd0edbee45c0006",
      "tree": "91affc9a29a20b339b3c88ae3ee1e99eba49dc2b",
      "parents": [
        "90c8327cad5d7c2d5d7d3e761d17af1925474107"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:02:31 2010 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Aug 06 11:02:31 2010 -0700"
      },
      "message": "pci: fix type warnings in intr_remapping.c\n\nCommit 69309a059075 (\"x86, asm: Clean up and simplify set_64bit()\")\nsanitized the x86-64 types to set_64bit(), and incidentally resulted in\nwarnings like\n\n drivers/pci/intr_remapping.c: In function \u0027modify_irte\u0027:\n drivers/pci/intr_remapping.c:314: warning: passing argument 1 of \u0027set_64bit\u0027 from incompatible pointer type\n arch/x86/include/asm/cmpxchg_64.h:6: note:expected \u0027volatile u64 *\u0027 but argument is of type \u0027long unsigned int *\u0027\n\nIt turns out that the change to set_64bit() really does clean up things,\nand the PCI intr_remapping.c file did a rather ugly cast in order to\navoid warnings with the previous set_64bit() type model.\n\nRemoving the ugly cast fixes the warning, and makes everybody happy and\nexpects a set_64bit() to take the logical \"u64 *\" argument.\n\nPointed-out-by: Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3dce9a5c3a39a664e372886ea86c42ae7ae33dfc",
      "tree": "064ff350d0249f9b60871e018ae17c3d32300913",
      "parents": [
        "b3edc2bc19b4856c705f4aea3f5472970b99f386"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 04 14:39:16 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 06 13:41:41 2010 -0400"
      },
      "message": "NFS: NFSv4.1 is no longer a \"developer only\" feature\n\nMark it as \u0027experimental\u0027 instead, since in practice, NFSv4.1 should now be\nrelatively stable.\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "b3edc2bc19b4856c705f4aea3f5472970b99f386",
      "tree": "07ec70d15a9658b8fdc48afb22dfba2f308d376f",
      "parents": [
        "d5eff1a3412f6d75bf28f423c5015ece8055407a"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Wed Aug 04 14:38:01 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 06 13:41:40 2010 -0400"
      },
      "message": "NFS: NFS_V4 is no longer an EXPERIMENTAL feature\n\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    },
    {
      "commit": "d5eff1a3412f6d75bf28f423c5015ece8055407a",
      "tree": "a1e65a188bda702f93537fc3c9b92b30224ae190",
      "parents": [
        "761fe93cdfa29071879d882c92e966ae692c0048"
      ],
      "author": {
        "name": "Bryan Schumaker",
        "email": "bjschuma@netapp.com",
        "time": "Tue Aug 03 13:04:00 2010 -0400"
      },
      "committer": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Aug 06 13:41:39 2010 -0400"
      },
      "message": "NFS: Fix /proc/mount for legacy binary interface\n\nAdd a flag so we know if we mounted the NFS server using the legacy\nbinary interface.  If we used the legacy interface, then we should not\nshow the mountd options.\n\nSigned-off-by: Bryan Schumaker \u003cbjschuma@netapp.com\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\n"
    }
  ],
  "next": "761fe93cdfa29071879d882c92e966ae692c0048"
}
