)]}'
{
  "log": [
    {
      "commit": "1010bb1b80edb0713415dfe1f97114d320f58c4f",
      "tree": "70aeaba13b61aa442e0c48c99a1035e204910982",
      "parents": [
        "a05b0855fd15504972dba2358e5faa172a1e50ba"
      ],
      "author": {
        "name": "Fengguang Wu",
        "email": "fengguang.wu@intel.com",
        "time": "Wed Mar 21 16:34:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "mm: don\u0027t set __GFP_WRITE on ramfs/sysfs writes\n\nThere is not much point in skipping zones during allocation based on the\ndirty usage which they\u0027ll never contribute to.  And we\u0027d like to avoid\npage reclaim waits when writing to ramfs/sysfs etc.\n\nSigned-off-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Minchan Kim \u003cminchan.kim@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": "a05b0855fd15504972dba2358e5faa172a1e50ba",
      "tree": "f4cba4ef12d888ec472714f67ef7bcec318a5191",
      "parents": [
        "f5bf18fa22f8c41a13eb8762c7373eb3a93a7333"
      ],
      "author": {
        "name": "Aneesh Kumar K.V",
        "email": "aneesh.kumar@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:34:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "hugetlbfs: avoid taking i_mutex from hugetlbfs_read()\n\nTaking i_mutex in hugetlbfs_read() can result in deadlock with mmap as\nexplained below\n\n Thread A:\n  read() on hugetlbfs\n   hugetlbfs_read() called\n    i_mutex grabbed\n     hugetlbfs_read_actor() called\n      __copy_to_user() called\n       page fault is triggered\n Thread B, sharing address space with A:\n  mmap() the same file\n   -\u003emmap_sem is grabbed on task_B-\u003emm-\u003emmap_sem\n    hugetlbfs_file_mmap() is called\n     attempt to grab -\u003ei_mutex and block waiting for A to give it up\n Thread A:\n  pagefault handled blocked on attempt to grab task_A-\u003emm-\u003emmap_sem,\n which happens to be the same thing as task_B-\u003emm-\u003emmap_sem.  Block waiting\n for B to give it up.\n\nAFAIU the i_mutex locking was added to hugetlbfs_read() as per\nhttp://lkml.indiana.edu/hypermail/linux/kernel/0707.2/3066.html to take\ncare of the race between truncate and read.  This patch fixes this by\nlooking at page-\u003emapping under lock_page() (find_lock_page()) to ensure\nthat the inode didn\u0027t get truncated in the range during a parallel read.\n\nIdeally we can extend the patch to make sure we don\u0027t increase i_size in\nmmap.  But that will break userspace, because applications will now have\nto use truncate(2) to increase i_size in hugetlbfs.\n\nBased on the original patch from Hillf Danton.\n\nSigned-off-by: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: \u003cstable@kernel.org\u003e\t\t[everything after 2007 :)]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5bf18fa22f8c41a13eb8762c7373eb3a93a7333",
      "tree": "3da24eb0edae3563c1937088b72a413e7026fdec",
      "parents": [
        "f0cb3c76ae1ced85f9034480b1b24cd96530ec78"
      ],
      "author": {
        "name": "Nishanth Aravamudan",
        "email": "nacc@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:34:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "bootmem/sparsemem: remove limit constraint in alloc_bootmem_section\n\nWhile testing AMS (Active Memory Sharing) / CMO (Cooperative Memory\nOvercommit) on powerpc, we tripped the following:\n\n  kernel BUG at mm/bootmem.c:483!\n  cpu 0x0: Vector: 700 (Program Check) at [c000000000c03940]\n      pc: c000000000a62bd8: .alloc_bootmem_core+0x90/0x39c\n      lr: c000000000a64bcc: .sparse_early_usemaps_alloc_node+0x84/0x29c\n      sp: c000000000c03bc0\n     msr: 8000000000021032\n    current \u003d 0xc000000000b0cce0\n    paca    \u003d 0xc000000001d80000\n      pid   \u003d 0, comm \u003d swapper\n  kernel BUG at mm/bootmem.c:483!\n  enter ? for help\n  [c000000000c03c80] c000000000a64bcc\n  .sparse_early_usemaps_alloc_node+0x84/0x29c\n  [c000000000c03d50] c000000000a64f10 .sparse_init+0x12c/0x28c\n  [c000000000c03e20] c000000000a474f4 .setup_arch+0x20c/0x294\n  [c000000000c03ee0] c000000000a4079c .start_kernel+0xb4/0x460\n  [c000000000c03f90] c000000000009670 .start_here_common+0x1c/0x2c\n\nThis is\n\n        BUG_ON(limit \u0026\u0026 goal + size \u003e limit);\n\nand after some debugging, it seems that\n\n\tgoal \u003d 0x7ffff000000\n\tlimit \u003d 0x80000000000\n\nand sparse_early_usemaps_alloc_node -\u003e\nsparse_early_usemaps_alloc_pgdat_section calls\n\n\treturn alloc_bootmem_section(usemap_size() * count, section_nr);\n\nThis is on a system with 8TB available via the AMS pool, and as a quirk\nof AMS in firmware, all of that memory shows up in node 0.  So, we end\nup with an allocation that will fail the goal/limit constraints.\n\nIn theory, we could \"fall-back\" to alloc_bootmem_node() in\nsparse_early_usemaps_alloc_node(), but since we actually have HOTREMOVE\ndefined, we\u0027ll BUG_ON() instead.  A simple solution appears to be to\nunconditionally remove the limit condition in alloc_bootmem_section,\nmeaning allocations are allowed to cross section boundaries (necessary\nfor systems of this size).\n\nJohannes Weiner pointed out that if alloc_bootmem_section() no longer\nguarantees section-locality, we need check_usemap_section_nr() to print\npossible cross-dependencies between node descriptors and the usemaps\nallocated through it.  That makes the two loops in\nsparse_early_usemaps_alloc_node() identical, so re-factor the code a\nbit.\n\n[akpm@linux-foundation.org: code simplification]\nSigned-off-by: Nishanth Aravamudan \u003cnacc@us.ibm.com\u003e\nCc: Dave Hansen \u003chaveblue@us.ibm.com\u003e\nCc: Anton Blanchard \u003canton@au1.ibm.com\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Ben Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Robert Jennings \u003crcj@linux.vnet.ibm.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[3.3.1]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f0cb3c76ae1ced85f9034480b1b24cd96530ec78",
      "tree": "997ae67621f76b3b6bf588604f85738a8c97cbef",
      "parents": [
        "3268c63eded4612a3d07b56d1e02ce7731e6608e"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 21 16:34:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "mm: drain percpu lru add/rotate page-vectors on cpu hot-unplug\n\nThis cpu hotplug hook was accidentally removed in commit 00a62ce91e55\n(\"mm: fix Committed_AS underflow on large NR_CPUS environment\")\n\nThe visible effect of this accident: some pages are borrowed in per-cpu\npage-vectors.  Truncate can deal with it, but these pages cannot be\nreused while this cpu is offline.  So this is like a temporary memory\nleak.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Eric B Munson \u003cebmunson@us.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3268c63eded4612a3d07b56d1e02ce7731e6608e",
      "tree": "c8a07eb4cdf2697d610bb86d23eb46b0a5f892c2",
      "parents": [
        "385de35722c9a22917e7bc5e63cd83a8cffa5ecd"
      ],
      "author": {
        "name": "Christoph Lameter",
        "email": "cl@linux.com",
        "time": "Wed Mar 21 16:34:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "mm: fix move/migrate_pages() race on task struct\n\nMigration functions perform the rcu_read_unlock too early.  As a result\nthe task pointed to may change from under us.  This can result in an oops,\nas reported by Dave Hansen in https://lkml.org/lkml/2012/2/23/302.\n\nThe following patch extend the period of the rcu_read_lock until after the\npermissions checks are done.  We also take a refcount so that the task\nreference is stable when calling security check functions and performing\ncpuset node validation (which takes a mutex).\n\nThe refcount is dropped before actual page migration occurs so there is no\nchange to the refcounts held during page migration.\n\nAlso move the determination of the mm of the task struct to immediately\nbefore the do_migrate*() calls so that it is clear that we switch from\nhandling the task during permission checks to the mm for the actual\nmigration.  Since the determination is only done once and we then no\nlonger use the task_struct we can be sure that we operate on a specific\naddress space that will not change from under us.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nReported-by: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "385de35722c9a22917e7bc5e63cd83a8cffa5ecd",
      "tree": "41ae2e23e096d189cdf614cf1eaf0c8f9ddeeb3b",
      "parents": [
        "6d9d88d07e132259c35f9493b15429e19198489c"
      ],
      "author": {
        "name": "Dean Nelson",
        "email": "dnelson@redhat.com",
        "time": "Wed Mar 21 16:34:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "thp: allow a hwpoisoned head page to be put back to LRU\n\nAndrea Arcangeli pointed out to me that a check in __memory_failure()\nwhich was intended to prevent THP tail pages from being checked for the\nabsence of the PG_lru flag (something that is always the case), was also\npreventing THP head pages from being checked.\n\nA THP head page could actually benefit from the call to shake_page() by\nending up being put back to a LRU, provided it had been waiting in a\npagevec array.\n\nAndrea suggested that the \"!PageTransCompound(p)\" in the if-statement\nshould be replaced by a \"!PageTransTail(p)\", thus allowing THP head pages\nto be checked and possibly shaken.\n\nSigned-off-by: Dean Nelson \u003cdnelson@redhat.com\u003e\nCc: Jin Dongming \u003cjin.dongming@np.css.fujitsu.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Hidetoshi Seto \u003cseto.hidetoshi@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": "6d9d88d07e132259c35f9493b15429e19198489c",
      "tree": "96f880fd4f2a07de312f0db576c2484ab5d09457",
      "parents": [
        "08ab9b10d43aca091fdff58b69fc1ec89c5b8a83"
      ],
      "author": {
        "name": "Jarkko Sakkinen",
        "email": "jarkko.sakkinen@intel.com",
        "time": "Wed Mar 21 16:34:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "tmpfs: security xattr setting on inode creation\n\nAdds to generic xattr support introduced in Linux 3.0 by implementing\ninitxattrs callback.  This enables consulting of security attributes from\nLSM and EVM when inode is created.\n\n[hughd@google.com: moved under CONFIG_TMPFS_XATTR, with memcpy in shmem_xattr_alloc]\nSigned-off-by: Jarkko Sakkinen \u003cjarkko.sakkinen@intel.com\u003e\nReviewed-by: James Morris \u003cjames.l.morris@oracle.com\u003e\nSigned-off-by: 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": "08ab9b10d43aca091fdff58b69fc1ec89c5b8a83",
      "tree": "73abfd3a257f3feadc0fa28c3117aaa9d95af596",
      "parents": [
        "b76437579d1344b612cf1851ae610c636cec7db0"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:34:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "mm, oom: force oom kill on sysrq+f\n\nThe oom killer chooses not to kill a thread if:\n\n - an eligible thread has already been oom killed and has yet to exit,\n   and\n\n - an eligible thread is exiting but has yet to free all its memory and\n   is not the thread attempting to currently allocate memory.\n\nSysRq+F manually invokes the global oom killer to kill a memory-hogging\ntask.  This is normally done as a last resort to free memory when no\nprogress is being made or to test the oom killer itself.\n\nFor both uses, we always want to kill a thread and never defer.  This\npatch causes SysRq+F to always kill an eligible thread and can be used to\nforce a kill even if another oom killed thread has failed to exit.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: Pekka Enberg \u003cpenberg@kernel.org\u003e\nAcked-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": "b76437579d1344b612cf1851ae610c636cec7db0",
      "tree": "37c31c957f1159635258168e27e49b90347e37aa",
      "parents": [
        "9e81130b7ce23050335b1197bb51743517b5b9d0"
      ],
      "author": {
        "name": "Siddhesh Poyarekar",
        "email": "siddhesh.poyarekar@gmail.com",
        "time": "Wed Mar 21 16:34:04 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:58 2012 -0700"
      },
      "message": "procfs: mark thread stack correctly in proc/\u003cpid\u003e/maps\n\nStack for a new thread is mapped by userspace code and passed via\nsys_clone.  This memory is currently seen as anonymous in\n/proc/\u003cpid\u003e/maps, which makes it difficult to ascertain which mappings\nare being used for thread stacks.  This patch uses the individual task\nstack pointers to determine which vmas are actually thread stacks.\n\nFor a multithreaded program like the following:\n\n\t#include \u003cpthread.h\u003e\n\n\tvoid *thread_main(void *foo)\n\t{\n\t\twhile(1);\n\t}\n\n\tint main()\n\t{\n\t\tpthread_t t;\n\t\tpthread_create(\u0026t, NULL, thread_main, NULL);\n\t\tpthread_join(t, NULL);\n\t}\n\nproc/PID/maps looks like the following:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nHere, one could guess that 7f8a44492000-7f8a44c92000 is a stack since\nthe earlier vma that has no permissions (7f8a44e3d000-7f8a4503d000) but\nthat is not always a reliable way to find out which vma is a thread\nstack.  Also, /proc/PID/maps and /proc/PID/task/TID/maps has the same\ncontent.\n\nWith this patch in place, /proc/PID/task/TID/maps are treated as \u0027maps\nas the task would see it\u0027 and hence, only the vma that that task uses as\nstack is marked as [stack].  All other \u0027stack\u0027 vmas are marked as\nanonymous memory.  /proc/PID/maps acts as a thread group level view,\nwhere all thread stack vmas are marked as [stack:TID] where TID is the\nprocess ID of the task that uses that vma as stack, while the process\nstack is marked as [stack].\n\nSo /proc/PID/maps will look like this:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack:1442]\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nThus marking all vmas that are used as stacks by the threads in the\nthread group along with the process stack.  The task level maps will\nhowever like this:\n\n    00400000-00401000 r-xp 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    00600000-00601000 rw-p 00000000 fd:0a 3671804                            /home/siddhesh/a.out\n    019ef000-01a10000 rw-p 00000000 00:00 0                                  [heap]\n    7f8a44491000-7f8a44492000 ---p 00000000 00:00 0\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack]\n    7f8a44c92000-7f8a44e3d000 r-xp 00000000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a44e3d000-7f8a4503d000 ---p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a4503d000-7f8a45041000 r--p 001ab000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45041000-7f8a45043000 rw-p 001af000 fd:00 2097482                    /lib64/libc-2.14.90.so\n    7f8a45043000-7f8a45048000 rw-p 00000000 00:00 0\n    7f8a45048000-7f8a4505f000 r-xp 00000000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4505f000-7f8a4525e000 ---p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525e000-7f8a4525f000 r--p 00016000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a4525f000-7f8a45260000 rw-p 00017000 fd:00 2099938                    /lib64/libpthread-2.14.90.so\n    7f8a45260000-7f8a45264000 rw-p 00000000 00:00 0\n    7f8a45264000-7f8a45286000 r-xp 00000000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45457000-7f8a4545a000 rw-p 00000000 00:00 0\n    7f8a45484000-7f8a45485000 rw-p 00000000 00:00 0\n    7f8a45485000-7f8a45486000 r--p 00021000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45486000-7f8a45487000 rw-p 00022000 fd:00 2097348                    /lib64/ld-2.14.90.so\n    7f8a45487000-7f8a45488000 rw-p 00000000 00:00 0\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0\n    7fff627ff000-7fff62800000 r-xp 00000000 00:00 0                          [vdso]\n    ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0                  [vsyscall]\n\nwhere only the vma that is being used as a stack by *that* task is\nmarked as [stack].\n\nAnalogous changes have been made to /proc/PID/smaps,\n/proc/PID/numa_maps, /proc/PID/task/TID/smaps and\n/proc/PID/task/TID/numa_maps. Relevant snippets from smaps and\nnuma_maps:\n\n    [siddhesh@localhost ~ ]$ pgrep a.out\n    1441\n    [siddhesh@localhost ~ ]$ cat /proc/1441/smaps | grep \"\\[stack\"\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack:1442]\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1442/smaps | grep \"\\[stack\"\n    7f8a44492000-7f8a44c92000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1441/smaps | grep \"\\[stack\"\n    7fff6273b000-7fff6275c000 rw-p 00000000 00:00 0                          [stack]\n    [siddhesh@localhost ~ ]$ cat /proc/1441/numa_maps | grep \"stack\"\n    7f8a44492000 default stack:1442 anon\u003d2 dirty\u003d2 N0\u003d2\n    7fff6273a000 default stack anon\u003d3 dirty\u003d3 N0\u003d3\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1442/numa_maps | grep \"stack\"\n    7f8a44492000 default stack anon\u003d2 dirty\u003d2 N0\u003d2\n    [siddhesh@localhost ~ ]$ cat /proc/1441/task/1441/numa_maps | grep \"stack\"\n    7fff6273a000 default stack anon\u003d3 dirty\u003d3 N0\u003d3\n\n[akpm@linux-foundation.org: checkpatch fixes]\n[akpm@linux-foundation.org: fix build]\nSigned-off-by: Siddhesh Poyarekar \u003csiddhesh.poyarekar@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Jamie Lokier \u003cjamie@shareable.org\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Matt Mackall \u003cmpm@selenic.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": "9e81130b7ce23050335b1197bb51743517b5b9d0",
      "tree": "6a359131ad2c36ca9e50f0c96a17ef755ad7e168",
      "parents": [
        "fcf4d8212a8f38334679e82ff14532b908b4b451"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Wed Mar 21 16:34:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "mm: hugetlb: bail out unmapping after serving reference page\n\nWhen unmapping a given VM range, we could bail out if a reference page is\nsupplied and is unmapped, which is a minor optimization.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.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": "fcf4d8212a8f38334679e82ff14532b908b4b451",
      "tree": "a074891468893f886a9604504d84bf95c983a5df",
      "parents": [
        "d563c0501bf8702b9b683206c09b9defb37d8a8a"
      ],
      "author": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Wed Mar 21 16:34:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "thp: documentation: \u0027transparent_hugepage\u003d\u0027 can also be specified on cmdline\n\nThe behavior of THP can either be toggled through sysfs in runtime or\nusing a kernel cmdline parameter \u0027transparent_hugepage\u003d\u0027.  Document the\nlatter in kernel-parameters.txt\n\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d563c0501bf8702b9b683206c09b9defb37d8a8a",
      "tree": "ac3c870c1885337e340d807cd8b5dc0ad8eb0315",
      "parents": [
        "978ea78b65794ef07eb66b9946064dea66b52554"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Wed Mar 21 16:34:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "vmscan: handle isolated pages with lru lock released\n\nWhen shrinking inactive lru list, isolated pages are queued on locally\nprivate list, so the lock-hold time could be reduced if pages are counted\nwithout lock protection.\n\nTo achieve that, firstly updating reclaim stat is delayed until the\nputback stage, after reacquiring the lru lock.\n\nSecondly, operations related to vm and zone stats are now proteced with\npreemption disabled as they are per-cpu operations.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.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": "978ea78b65794ef07eb66b9946064dea66b52554",
      "tree": "f1c2eea5ab72bdca622e764a52e956bfb3ae749f",
      "parents": [
        "6583a84304e5a6cb27ec2aace79ef9c4ba888d12"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:34:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "rmap: remove __anon_vma_link() declaration\n\nThis declaration is not used anymore, remove it.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.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": "6583a84304e5a6cb27ec2aace79ef9c4ba888d12",
      "tree": "48fbc25bafeeffb9527404b8a114aed8390aa5a6",
      "parents": [
        "28073b02bfaaed1e3278acfb8e6e7c9f76d9f2b6"
      ],
      "author": {
        "name": "Kautuk Consul",
        "email": "consul.kautuk@gmail.com",
        "time": "Wed Mar 21 16:34:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "rmap: anon_vma_prepare: Reduce code duplication by calling anon_vma_chain_link\n\nReduce code duplication by calling anon_vma_chain_link() from\nanon_vma_prepare().\n\nAlso move anon_vmal_chain_link() to a more suitable location in the file.\n\nSigned-off-by: Kautuk Consul \u003cconsul.kautuk@gmail.com\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: KAMEZWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\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": "28073b02bfaaed1e3278acfb8e6e7c9f76d9f2b6",
      "tree": "54ab2952e2bee85780438a011cf5c1f198ff3dd9",
      "parents": [
        "cc715d99e529d470dde2f33a6614f255adea71f3"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Wed Mar 21 16:34:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "mm: hugetlb: defer freeing pages when gathering surplus pages\n\nWhen gathering surplus pages, the number of needed pages is recomputed\nafter reacquiring hugetlb lock to catch changes in resv_huge_pages and\nfree_huge_pages.  Plus it is recomputed with the number of newly allocated\npages involved.\n\nThus freeing pages can be deferred a bit to see if the final page request\nis satisfied, though pages could be allocated less than needed.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: 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": "cc715d99e529d470dde2f33a6614f255adea71f3",
      "tree": "f8e8aefb8416aed6747e9b5c071e9575484aa912",
      "parents": [
        "ce1744f4ed20ca873360e54502f8a71564ef7cc6"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mel@csn.ul.ie",
        "time": "Wed Mar 21 16:34:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "mm: vmscan: forcibly scan highmem if there are too many buffer_heads pinning highmem\n\nStuart Foster reported on bugzilla that copying large amounts of data\nfrom NTFS caused an OOM kill on 32-bit X86 with 16G of memory.  Andrew\nMorton correctly identified that the problem was NTFS was using 512\nblocks meaning each page had 8 buffer_heads in low memory pinning it.\n\nIn the past, direct reclaim used to scan highmem even if the allocating\nprocess did not specify __GFP_HIGHMEM but not any more.  kswapd no longer\nwill reclaim from zones that are above the high watermark.  The intention\nin both cases was to minimise unnecessary reclaim.  The downside is on\nmachines with large amounts of highmem that lowmem can be fully consumed\nby buffer_heads with nothing trying to free them.\n\nThe following patch is based on a suggestion by Andrew Morton to extend\nthe buffer_heads_over_limit case to force kswapd and direct reclaim to\nscan the highmem zone regardless of the allocation request or watermarks.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d42578\n\n[hughd@google.com: move buffer_heads_over_limit check up]\n[akpm@linux-foundation.org: buffer_heads_over_limit is unlikely]\nReported-by: Stuart Foster \u003csmf.linux@ntlworld.com\u003e\nTested-by: Stuart Foster \u003csmf.linux@ntlworld.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: stable \u003cstable@vger.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": "ce1744f4ed20ca873360e54502f8a71564ef7cc6",
      "tree": "ec26dbc6a5417c75a8fa65ab093374d3e0045032",
      "parents": [
        "092b50bacd1cdbffef2643b7a46f2a215407919c"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 21 16:33:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "mm: replace PAGE_MIGRATION with IS_ENABLED(CONFIG_MIGRATION)\n\nSince commit 2a11c8ea20bf (\"kconfig: Introduce IS_ENABLED(),\nIS_BUILTIN() and IS_MODULE()\") there is a generic grep-friendly method\nfor checking config options in C expressions.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "092b50bacd1cdbffef2643b7a46f2a215407919c",
      "tree": "a2501b424d37c3757e9369ac36231874756bf990",
      "parents": [
        "807f0ccfe15551afd514c062585045c88ca62037"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:33:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "pagemap: introduce data structure for pagemap entry\n\nCurrently a local variable of pagemap entry in pagemap_pte_range() is\nnamed pfn and typed with u64, but it\u0027s not correct (pfn should be unsigned\nlong.)\n\nThis patch introduces special type for pagemap entries and replaces code\nwith it.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.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": "807f0ccfe15551afd514c062585045c88ca62037",
      "tree": "95e4b04508a85aacda0e4fc5d4a86af3ff393549",
      "parents": [
        "e873c49fbfdd595481976b915850e682441bcbec"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:33:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "pagemap: document KPF_THP and make page-types aware of it\n\npage-types, which is a common user of pagemap, gets aware of thp with this\npatch.  This helps system admins and kernel hackers know about how thp\nworks.  Here is a sample output of page-types over a thp:\n\n  $ page-types -p \u003cpid\u003e --raw --list\n\n  voffset offset  len     flags\n  ...\n  7f9d40200       3f8400  1       ___U_lA____Ma_bH______t____________\n  7f9d40201       3f8401  1ff     ________________T_____t____________\n\n               flags      page-count       MB  symbolic-flags                     long-symbolic-flags\n  0x0000000000410000             511        1  ________________T_____t____________        compound_tail,thp\n  0x000000000040d868               1        0  ___U_lA____Ma_bH______t____________        uptodate,lru,active,mmap,anonymous,swapbacked,compound_head,thp\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\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": "e873c49fbfdd595481976b915850e682441bcbec",
      "tree": "87ad5d125563d1eb6418e1f7b5a094fab6098108",
      "parents": [
        "025c5b2451e42c9e8dfdecd6dc84956ce8f321b5"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:33:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "pagemap: export KPF_THP\n\nThis flag shows that a given page is a subpage of a transparent hugepage.\nIt helps us debug and test the kernel by showing physical address of thp.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nReviewed-by: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\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": "025c5b2451e42c9e8dfdecd6dc84956ce8f321b5",
      "tree": "423b4ef1a0ce021360304a80f6e0ba902581a3ad",
      "parents": [
        "5aaabe831eb527e0d9284f0745d830a755f70393"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:33:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:57 2012 -0700"
      },
      "message": "thp: optimize away unnecessary page table locking\n\nCurrently when we check if we can handle thp as it is or we need to split\nit into regular sized pages, we hold page table lock prior to check\nwhether a given pmd is mapping thp or not.  Because of this, when it\u0027s not\n\"huge pmd\" we suffer from unnecessary lock/unlock overhead.  To remove it,\nthis patch introduces a optimized check function and replace several\nsimilar logics with it.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5aaabe831eb527e0d9284f0745d830a755f70393",
      "tree": "2efdfe775da1c727c60ef5bd2d865d2150f68381",
      "parents": [
        "b716ad953a2bc4a543143c1d9836b7007a4b182f"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Wed Mar 21 16:33:57 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "pagemap: avoid splitting thp when reading /proc/pid/pagemap\n\nThp split is not necessary if we explicitly check whether pmds are mapping\nthps or not.  This patch introduces this check and adds code to generate\npagemap entries for pmds mapping thps, which results in less performance\nimpact of pagemap on thp.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nReviewed-by: Andi Kleen \u003cak@linux.intel.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.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": "b716ad953a2bc4a543143c1d9836b7007a4b182f",
      "tree": "99791c6c857b1ff7b922eaa0163ec3c912549009",
      "parents": [
        "f44d21985eb6af7361d3785e26923355172147bd"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:33:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "mm: search from free_area_cache for the bigger size\n\nIf the required size is bigger than cached_hole_size it is better to\nsearch from free_area_cache - it is easier to get a free region,\nspecifically for the 64 bit process whose address space is large enough\n\nDo it just as hugetlb_get_unmapped_area_topdown() in arch/x86/mm/hugetlbpage.c\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: 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": "f44d21985eb6af7361d3785e26923355172147bd",
      "tree": "1ced398274730cee6cd9173696e6fe08e52c6e91",
      "parents": [
        "cbde83e21c4fd50bfc4240408355c1e5d393063d"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:33:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "mm: do not reset cached_hole_size when vma is unmapped\n\nIn the current code, cached_hole_size is set to the maximum value if the\nunmapped vma is less that free_area_cache so the next search will search\nfrom the base address.\n\nActually, we can keep cached_hole_size so that if the next required size\nis more than cached_hole_size, it can search from free_area_cache.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: 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": "cbde83e21c4fd50bfc4240408355c1e5d393063d",
      "tree": "21899d4db2dadcdaea04b019c7d9f1d62344f5b4",
      "parents": [
        "4bfc130d5afa28395288d1b57092906349604b41"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:33:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "hugetlb: try to search again if it is really needed\n\nSearch again only if some holes may be skipped in the first pass.\n\n[akpm@linux-foundation.org: clean up crazy compound definition]\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.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": "4bfc130d5afa28395288d1b57092906349604b41",
      "tree": "947666e26c6f1e55b3ebdf5edcefda5019a65c8f",
      "parents": [
        "aad6ec3777bf4930d4f7293745cc4c17a2d87947"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Wed Mar 21 16:33:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "hugetlbfs: fix hugetlb_get_unmapped_area()\n\nUse/update cached_hole_size and free_area_cache properly to speedup\nfinding of a free region.\n\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.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": "aad6ec3777bf4930d4f7293745cc4c17a2d87947",
      "tree": "9a2d141e3361e621d5d6f624d4f1b1e075dc9e7d",
      "parents": [
        "8575ec29f61da83a2bf382c8c490499dc022101e"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Wed Mar 21 16:33:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "mm: compaction: make compact_control order signed\n\n\"order\" is -1 when compacting via /proc/sys/vm/compact_memory.  Making\nit unsigned causes a bug in __compact_pgdat() when we test:\n\n\tif (cc-\u003eorder \u003c 0 || !compaction_deferred(zone, cc-\u003eorder))\n\t\tcompact_zone(zone, cc);\n\n[akpm@linux-foundation.org: make __compact_pgdat()\u0027s comparison match other code sites]\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\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": "8575ec29f61da83a2bf382c8c490499dc022101e",
      "tree": "bba641ceec47b52ce2a91bdf117aed01d476ea9f",
      "parents": [
        "aff622495c9a0b56148192e53bdec539f5e147f2"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Wed Mar 21 16:33:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "compact_pgdat: workaround lockdep warning in kswapd\n\nI get this lockdep warning from swapping load on linux-next, due to\n\"vmscan: kswapd carefully call compaction\".\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[ INFO: inconsistent lock state ]\n3.3.0-rc2-next-20120201 #5 Not tainted\n---------------------------------\ninconsistent {RECLAIM_FS-ON-W} -\u003e {IN-RECLAIM_FS-W} usage.\nkswapd0/28 [HC0[0]:SC0[0]:HE1:SE1] takes:\n (pcpu_alloc_mutex){+.+.?.}, at: [\u003cffffffff810d6684\u003e] pcpu_alloc+0x67/0x325\n{RECLAIM_FS-ON-W} state was registered at:\n  [\u003cffffffff81099b75\u003e] mark_held_locks+0xd7/0x103\n  [\u003cffffffff8109a13c\u003e] lockdep_trace_alloc+0x85/0x9e\n  [\u003cffffffff810f6bdc\u003e] __kmalloc+0x6c/0x14b\n  [\u003cffffffff810d57fd\u003e] pcpu_mem_zalloc+0x59/0x62\n  [\u003cffffffff810d5d16\u003e] pcpu_extend_area_map+0x26/0xb1\n  [\u003cffffffff810d679f\u003e] pcpu_alloc+0x182/0x325\n  [\u003cffffffff810d694d\u003e] __alloc_percpu+0xb/0xd\n  [\u003cffffffff8142ebfd\u003e] snmp_mib_init+0x1e/0x2e\n  [\u003cffffffff8185cd8d\u003e] ipv4_mib_init_net+0x7a/0x184\n  [\u003cffffffff813dc963\u003e] ops_init.clone.0+0x6b/0x73\n  [\u003cffffffff813dc9cc\u003e] register_pernet_operations+0x61/0xa0\n  [\u003cffffffff813dca8e\u003e] register_pernet_subsys+0x29/0x42\n  [\u003cffffffff8185d044\u003e] inet_init+0x1ad/0x252\n  [\u003cffffffff810002e3\u003e] do_one_initcall+0x7a/0x12f\n  [\u003cffffffff81832bc5\u003e] kernel_init+0x9d/0x11e\n  [\u003cffffffff814e51e4\u003e] kernel_thread_helper+0x4/0x10\nirq event stamp: 656613\nhardirqs last  enabled at (656613): [\u003cffffffff814e0ddc\u003e] __mutex_unlock_slowpath+0x104/0x128\nhardirqs last disabled at (656612): [\u003cffffffff814e0d34\u003e] __mutex_unlock_slowpath+0x5c/0x128\nsoftirqs last  enabled at (655568): [\u003cffffffff8105b4a5\u003e] __do_softirq+0x120/0x136\nsoftirqs last disabled at (654757): [\u003cffffffff814e52dc\u003e] call_softirq+0x1c/0x30\n\nother info that might help us debug this:\n Possible unsafe locking scenario:\n\n       CPU0\n       ----\n  lock(pcpu_alloc_mutex);\n  \u003cInterrupt\u003e\n    lock(pcpu_alloc_mutex);\n\n *** DEADLOCK ***\n\nno locks held by kswapd0/28.\n\nstack backtrace:\nPid: 28, comm: kswapd0 Not tainted 3.3.0-rc2-next-20120201 #5\nCall Trace:\n [\u003cffffffff810981f4\u003e] print_usage_bug+0x1bf/0x1d0\n [\u003cffffffff81096c3e\u003e] ? print_irq_inversion_bug+0x1d9/0x1d9\n [\u003cffffffff810982c0\u003e] mark_lock_irq+0xbb/0x22e\n [\u003cffffffff810c5399\u003e] ? free_hot_cold_page+0x13d/0x14f\n [\u003cffffffff81098684\u003e] mark_lock+0x251/0x331\n [\u003cffffffff81098893\u003e] mark_irqflags+0x12f/0x141\n [\u003cffffffff81098e32\u003e] __lock_acquire+0x58d/0x753\n [\u003cffffffff810d6684\u003e] ? pcpu_alloc+0x67/0x325\n [\u003cffffffff81099433\u003e] lock_acquire+0x54/0x6a\n [\u003cffffffff810d6684\u003e] ? pcpu_alloc+0x67/0x325\n [\u003cffffffff8107a5b8\u003e] ? add_preempt_count+0xa9/0xae\n [\u003cffffffff814e0a21\u003e] mutex_lock_nested+0x5e/0x315\n [\u003cffffffff810d6684\u003e] ? pcpu_alloc+0x67/0x325\n [\u003cffffffff81098f81\u003e] ? __lock_acquire+0x6dc/0x753\n [\u003cffffffff810c9fb0\u003e] ? __pagevec_release+0x2c/0x2c\n [\u003cffffffff810d6684\u003e] pcpu_alloc+0x67/0x325\n [\u003cffffffff810c9fb0\u003e] ? __pagevec_release+0x2c/0x2c\n [\u003cffffffff810d694d\u003e] __alloc_percpu+0xb/0xd\n [\u003cffffffff8106c35e\u003e] schedule_on_each_cpu+0x23/0x110\n [\u003cffffffff810c9fcb\u003e] lru_add_drain_all+0x10/0x12\n [\u003cffffffff810f126f\u003e] __compact_pgdat+0x20/0x182\n [\u003cffffffff810f15c2\u003e] compact_pgdat+0x27/0x29\n [\u003cffffffff810c306b\u003e] ? zone_watermark_ok+0x1a/0x1c\n [\u003cffffffff810cdf6f\u003e] balance_pgdat+0x732/0x751\n [\u003cffffffff810ce0ed\u003e] kswapd+0x15f/0x178\n [\u003cffffffff810cdf8e\u003e] ? balance_pgdat+0x751/0x751\n [\u003cffffffff8106fd11\u003e] kthread+0x84/0x8c\n [\u003cffffffff814e51e4\u003e] kernel_thread_helper+0x4/0x10\n [\u003cffffffff810787ed\u003e] ? finish_task_switch+0x85/0xea\n [\u003cffffffff814e3861\u003e] ? retint_restore_args+0xe/0xe\n [\u003cffffffff8106fc8d\u003e] ? __init_kthread_worker+0x56/0x56\n [\u003cffffffff814e51e0\u003e] ? gs_change+0xb/0xb\n\nThe RECLAIM_FS notations indicate that it\u0027s doing the GFP_FS checking that\nNick hacked into lockdep a while back: I think we\u0027re intended to read that\n\"\u003cInterrupt\u003e\" in the DEADLOCK scenario as \"\u003cDirect reclaim\u003e\".\n\nI\u0027m hazy, I have not reached any conclusion as to whether it\u0027s right to\ncomplain or not; but I believe it\u0027s uneasy about kswapd now doing the\nmutex_lock(\u0026pcpu_alloc_mutex) which lru_add_drain_all() entails.  Nor have\nI reached any conclusion as to whether it\u0027s important for kswapd to do\nthat draining or not.\n\nBut so as not to get blocked on this, with lockdep disabled from giving\nfurther reports, here\u0027s a patch which removes the lru_add_drain_all() from\nkswapd\u0027s callpath (and calls it only once from compact_nodes(), instead of\nonce per node).\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Tejun Heo \u003ctj@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": "aff622495c9a0b56148192e53bdec539f5e147f2",
      "tree": "78f6400d8b6bec3279483006a0e9543e47aa833e",
      "parents": [
        "7be62de99adcab4449d416977b4274985c5fe023"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Wed Mar 21 16:33:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "vmscan: only defer compaction for failed order and higher\n\nCurrently a failed order-9 (transparent hugepage) compaction can lead to\nmemory compaction being temporarily disabled for a memory zone.  Even if\nwe only need compaction for an order 2 allocation, eg.  for jumbo frames\nnetworking.\n\nThe fix is relatively straightforward: keep track of the highest order at\nwhich compaction is succeeding, and only defer compaction for orders at\nwhich compaction is failing.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@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": "7be62de99adcab4449d416977b4274985c5fe023",
      "tree": "20ae021ec9811ad730e6a17a3530d3aa6b5027d0",
      "parents": [
        "fe2c2a106663130a5ab45cb0e3414b52df2fff0c"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Wed Mar 21 16:33:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "vmscan: kswapd carefully call compaction\n\nWith CONFIG_COMPACTION enabled, kswapd does not try to free contiguous\nfree pages, even when it is woken for a higher order request.\n\nThis could be bad for eg.  jumbo frame network allocations, which are done\nfrom interrupt context and cannot compact memory themselves.  Higher than\nbefore allocation failure rates in the network receive path have been\nobserved in kernels with compaction enabled.\n\nTeach kswapd to defragment the memory zones in a node, but only if\nrequired and compaction is not deferred in a zone.\n\n[akpm@linux-foundation.org: reduce scope of zones_need_compaction]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@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": "fe2c2a106663130a5ab45cb0e3414b52df2fff0c",
      "tree": "4c2651ee4e33c73069bc41fa936b5227c9d9f2a9",
      "parents": [
        "67f96aa252e606cdf6c3cf1032952ec207ec0cf0"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Wed Mar 21 16:33:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "vmscan: reclaim at order 0 when compaction is enabled\n\nWhen built with CONFIG_COMPACTION, kswapd should not try to free\ncontiguous pages, because it is not trying hard enough to have a real\nchance at being successful, but still disrupts the LRU enough to break\nother things.\n\nDo not do higher order page isolation unless we really are in lumpy\nreclaim mode.\n\nStop reclaiming pages once we have enough free pages that compaction can\ndeal with things, and we hit the normal order 0 watermarks used by kswapd.\n\nAlso remove a line of code that increments balanced right before exiting\nthe function.\n\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Hillf Danton \u003cdhillf@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": "67f96aa252e606cdf6c3cf1032952ec207ec0cf0",
      "tree": "a5a4299dd32789831eda558b51c0120272846664",
      "parents": [
        "c38446cc65e1f2b3eb8630c53943b94c4f65f670"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Wed Mar 21 16:33:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "mm: make swapin readahead skip over holes\n\nEver since abandoning the virtual scan of processes, for scalability\nreasons, swap space has been a little more fragmented than before.  This\ncan lead to the situation where a large memory user is killed, swap space\nends up full of \"holes\" and swapin readahead is totally ineffective.\n\nOn my home system, after killing a leaky firefox it took over an hour to\npage just under 2GB of memory back in, slowing the virtual machines down\nto a crawl.\n\nThis patch makes swapin readahead simply skip over holes, instead of\nstopping at them.  This allows the system to swap things back in at rates\nof several MB/second, instead of a few hundred kB/second.\n\nThe checks done in valid_swaphandles are already done in\nread_swap_cache_async as well, allowing us to remove a fair amount of\ncode.\n\n[akpm@linux-foundation.org: fix it for page_cluster \u003e\u003d 32]\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Adrian Drzewiecki \u003cz@drze.net\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": "c38446cc65e1f2b3eb8630c53943b94c4f65f670",
      "tree": "0eb0e73d2bef37bc1ce8212bf5dd43abdc2b5328",
      "parents": [
        "69c978232aaa99476f9bd002c2a29a84fa3779b5"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Wed Mar 21 16:33:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:56 2012 -0700"
      },
      "message": "mm: vmscan: fix misused nr_reclaimed in shrink_mem_cgroup_zone()\n\nThe value of nr_reclaimed is the number of pages reclaimed in the current\nround of the loop, whereas nr_to_reclaim should be compared with the\nnumber of pages reclaimed in all rounds.\n\nIn each round of the loop, reclaimed pages are cut off from the reclaim\ngoal, and the loop stops once the goal achieved.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\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": "69c978232aaa99476f9bd002c2a29a84fa3779b5",
      "tree": "7edb0da034b8824040f4f7327dd31ad260532167",
      "parents": [
        "6131728914810a6c02e08750e13e45870101e862"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 21 16:33:49 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "mm: make get_mm_counter static-inline\n\nMake get_mm_counter() always static inline, it is simple enough for that.\nAnd remove unused set_mm_counter()\n\nbloat-o-meter:\n\nadd/remove: 0/1 grow/shrink: 4/12 up/down: 99/-341 (-242)\nfunction                                     old     new   delta\ntry_to_unmap_one                             886     952     +66\nsys_remap_file_pages                        1214    1230     +16\ndup_mm                                      1684    1700     +16\ndo_exit                                     2277    2278      +1\nzap_page_range                               208     205      -3\nunmap_region                                 304     296      -8\nstatic.oom_kill_process                      554     546      -8\ntry_to_unmap_file                           1716    1700     -16\ngetrusage                                    925     909     -16\nflush_old_exec                              1704    1688     -16\nstatic.dump_header                           416     390     -26\nacct_update_integrals                        218     187     -31\ndo_task_stat                                2986    2954     -32\nget_mm_counter                                34       -     -34\nxacct_add_tsk                                371     334     -37\ntask_statm                                   172     118     -54\ntask_mem                                     383     323     -60\n\ntry_to_unmap_one() grows because update_hiwater_rss() now completely inline.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6131728914810a6c02e08750e13e45870101e862",
      "tree": "d96768dccd30bc5c84cfd39594167efd6405782d",
      "parents": [
        "c3f0327f8e9d7a503f0d64573c311eddd61f197d"
      ],
      "author": {
        "name": "Hillf Danton",
        "email": "dhillf@gmail.com",
        "time": "Wed Mar 21 16:33:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "mm/vmscan.c: cleanup with s/reclaim_mode/isolate_mode/\n\nWith tons of reclaim_mode (defined as one field of struct scan_control)\nalready in the file, it is clearer to rename the local reclaim_mode when\nsetting up the isolation mode.\n\nSigned-off-by: Hillf Danton \u003cdhillf@gmail.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: 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": "c3f0327f8e9d7a503f0d64573c311eddd61f197d",
      "tree": "ebc59003d3bef08dd41d073eced2b53970e13662",
      "parents": [
        "dc3f21eadeea6d9898271ff32d35d5e00c6872ea"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 21 16:33:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "mm: add rss counters consistency check\n\nWarn about non-zero rss counters at final mmdrop.\n\nThis check will prevent reoccurences of bugs such as that fixed in \"mm:\nfix rss count leakage during migration\".\n\nI didn\u0027t hide this check under CONFIG_VM_DEBUG because it rather small and\nrss counters cover whole page-table management, so this is a good\ninvariant.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Hugh Dickins \u003chughd@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": "dc3f21eadeea6d9898271ff32d35d5e00c6872ea",
      "tree": "be56e2d8b5bf7ce4a140d020b5e248dff6a06795",
      "parents": [
        "8447d950e7445cae71ad66d0e33784f8388aaf9d"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:33:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "mm, oom: introduce independent oom killer ratelimit state\n\nprintk_ratelimit() uses the global ratelimit state for all printks.  The\noom killer should not be subjected to this state just because another\nsubsystem or driver may be flooding the kernel log.\n\nThis patch introduces printk ratelimiting specifically for the oom killer.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: 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": "8447d950e7445cae71ad66d0e33784f8388aaf9d",
      "tree": "b7f7cfba3d2264b87ca168131e0a65d89faa51a8",
      "parents": [
        "647f2bdf4a00dbcaa8964286501d68e7d2e6da93"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:33:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "mm, oom: do not emit oom killer warning if chosen thread is already exiting\n\nIf a thread is chosen for oom kill and is already PF_EXITING, then the oom\nkiller simply sets TIF_MEMDIE and returns.  This allows the thread to have\naccess to memory reserves so that it may quickly exit.  This logic is\npreceeded with a comment saying there\u0027s no need to alarm the sysadmin.\nThis patch adds truth to that statement.\n\nThere\u0027s no need to emit any warning about the oom condition if the thread\nis already exiting since it will not be killed.  In this condition, just\nsilently return the oom killer since its only giving access to memory\nreserves and is otherwise a no-op.\n\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "647f2bdf4a00dbcaa8964286501d68e7d2e6da93",
      "tree": "a9efa94d4add977b4629b137de7f4d002eec56dd",
      "parents": [
        "2a1c9b1fc0a0ea2e30cdeb69062647c5c5ae661f"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:33:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "mm, oom: fold oom_kill_task() into oom_kill_process()\n\noom_kill_task() has a single caller, so fold it into its parent function,\noom_kill_process().  Slightly reduces the number of lines in the oom\nkiller.\n\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2a1c9b1fc0a0ea2e30cdeb69062647c5c5ae661f",
      "tree": "a123d061a5d95984e0446a350189f4a310d06b53",
      "parents": [
        "ce24d8a14207c2036df86d2bd3d14b4393eb51e3"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Mar 21 16:33:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "mm, oom: avoid looping when chosen thread detaches its mm\n\noom_kill_task() returns non-zero iff the chosen process does not have any\nthreads with an attached -\u003emm.\n\nIn such a case, it\u0027s better to just return to the page allocator and retry\nthe allocation because memory could have been freed in the interim and the\noom condition may no longer exist.  It\u0027s unnecessary to loop in the oom\nkiller and find another thread to kill.\n\nThis allows both oom_kill_task() and oom_kill_process() to be converted to\nvoid functions.  If the oom condition persists, the oom killer will be\nrecalled.\n\nAcked-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\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce24d8a14207c2036df86d2bd3d14b4393eb51e3",
      "tree": "41644b88fc0b226c7fcf1c935ac262a07e94aac1",
      "parents": [
        "d12f7c4a2f5d5c03ace0543d8cc70966c54d0692"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt.fleming@intel.com",
        "time": "Wed Mar 21 16:33:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "sparc: use block_sigmask()\n\nUse the new helper function introduced in commit 5e6292c0f28f (\"signal:\nadd block_sigmask() for adding sigmask to current-\u003eblocked\") which\ncentralises the code for updating current-\u003eblocked after successfully\ndelivering a signal and reduces the amount of duplicate code across\narchitectures.  In the past some architectures got this code wrong, so\nusing this helper function should stop that from happening again.\n\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nSigned-off-by: Matt Fleming \u003cmatt.fleming@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": "d12f7c4a2f5d5c03ace0543d8cc70966c54d0692",
      "tree": "988454e0dce0a3e69f9e17aff31e50302db33d1c",
      "parents": [
        "3785006ac3c8941feb63097c416de92114a6bc39"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt.fleming@intel.com",
        "time": "Wed Mar 21 16:33:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "xtensa: use set_current_blocked() and block_sigmask()\n\nAs described in commit e6fa16ab9c1e (\"signal: sigprocmask() should do\nretarget_shared_pending()\") the modification of current-\u003eblocked is\nincorrect as we need to check whether the signal we\u0027re about to block is\npending in the shared queue.\n\nAlso, use the new helper function introduced in commit 5e6292c0f28f\n(\"signal: add block_sigmask() for adding sigmask to current-\u003eblocked\")\nwhich centralises the code for updating current-\u003eblocked after\nsuccessfully delivering a signal and reduces the amount of duplicate code\nacross architectures.  In the past some architectures got this code wrong,\nso using this helper function should stop that from happening again.\n\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Matt Fleming \u003cmatt.fleming@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": "3785006ac3c8941feb63097c416de92114a6bc39",
      "tree": "07786cb16957a846eae8716bb311d5c4b9cb7736",
      "parents": [
        "ff6d21e7aafe3cf4b20697f67e656caa4daef40b"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt.fleming@intel.com",
        "time": "Wed Mar 21 16:33:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "xtensa: don\u0027t mask signals if we fail to setup signal stack\n\nsetup_frame() needs to return an indication of whether it succeeded or\nfailed in setting up the signal stack frame.  If setup_frame() fails then\nwe must not modify current-\u003eblocked.\n\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Matt Fleming \u003cmatt.fleming@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": "ff6d21e7aafe3cf4b20697f67e656caa4daef40b",
      "tree": "9a2a0060088f1b97533c21dfaafdfaca1794873e",
      "parents": [
        "fa47ac59020e91082386f65a01f3e8cc6116ef95"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt.fleming@intel.com",
        "time": "Wed Mar 21 16:33:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "xtensa: no need to reset handler if SA_ONESHOT\n\nget_signal_to_deliver() already resets the signal handler if SA_ONESHOT\nis set in ka-\u003esa.sa_flags, there\u0027s no need to do it again in\nhandle_signal().\n\nFurthermore, because we were modifying ka-\u003esa.sa_handler (which is a\ncopy of sighand-\u003eaction[]) instead of sighand-\u003eaction[] the original\ncode actually had no effect on signal delivery.\n\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Matt Fleming \u003cmatt.fleming@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": "fa47ac59020e91082386f65a01f3e8cc6116ef95",
      "tree": "0dec4f41b6c8c020b1bea7c05fdf32e770b359ce",
      "parents": [
        "7904ac84244b59f536c2a5d1066a10f46df07b08"
      ],
      "author": {
        "name": "Matt Fleming",
        "email": "matt.fleming@intel.com",
        "time": "Wed Mar 21 16:33:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:55 2012 -0700"
      },
      "message": "xtensa: don\u0027t reimplement force_sigsegv()\n\nInstead of open coding the sequence from force_sigsegv() just call it.\nThis also fixes a bug because we were modifying ka-\u003esa.sa_handler (which\nis a copy of sighand-\u003eaction[]), whereas the intention of the code was to\nmodify sighand-\u003eaction[] directly.\n\nAs the original code was working with a copy it had no effect on signal\ndelivery.\n\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Chris Zankel \u003cchris@zankel.net\u003e\nSigned-off-by: Matt Fleming \u003cmatt.fleming@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": "7904ac84244b59f536c2a5d1066a10f46df07b08",
      "tree": "82d9c44c26b52954884a70f1ae2b7fa78ea8e633",
      "parents": [
        "dc716e96f5a467835e8121e1caaf25d66a901cb3"
      ],
      "author": {
        "name": "Earl Chew",
        "email": "echew@ixiacom.com",
        "time": "Wed Mar 21 16:33:43 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:54 2012 -0700"
      },
      "message": "seq_file: fix mishandling of consecutive pread() invocations.\n\nThe following program illustrates the problem:\n\n    char buf[8192];\n\n    int fd \u003d open(\"/proc/self/maps\", O_RDONLY);\n\n    n \u003d pread(fd, buf, sizeof(buf), 0);\n    printf(\"%d\\n\", n);\n\n    /* lseek(fd, 0, SEEK_CUR); */ /* Uncomment to work around */\n\n    n \u003d pread(fd, buf, sizeof(buf), 0);\n    printf(\"%d\\n\", n);\n\nThe second printf() prints zero, but uncommenting the lseek() corrects its\nbehaviour.\n\nTo fix, make seq_read() mirror seq_lseek() when processing changes in\n*ppos.  Restore m-\u003eversion first, then if required traverse and update\nread_pos on success.\n\nAddresses https://bugzilla.kernel.org/show_bug.cgi?id\u003d11856\n\nSigned-off-by: Earl Chew \u003cechew@ixiacom.com\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "dc716e96f5a467835e8121e1caaf25d66a901cb3",
      "tree": "696470aed32834f254ec762fc3883477ed8d570e",
      "parents": [
        "1de5b41cd3b2474c2770b825266d372073e1b28b"
      ],
      "author": {
        "name": "Marcos Paulo de Souza",
        "email": "marcos.mage@gmail.com",
        "time": "Wed Mar 21 16:33:43 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:54 2012 -0700"
      },
      "message": "drivers/idle/intel_idle.c: fix confusing code identation\n\nFix a code indentation in the function intel_idle_cpu_init that looks\nconfusing.o\n\nSuggested-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nReviewed-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nSigned-off-by: Marcos Paulo de Souza \u003cmarcos.mage@gmail.com\u003e\nCc: \"Brown, Len\" \u003clen.brown@intel.com\u003e\nCc: Len Brown \u003clenb@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": "1de5b41cd3b2474c2770b825266d372073e1b28b",
      "tree": "3968c179cc49ca60a425b7fe4b76808c0f0af9e0",
      "parents": [
        "1a5a9906d4e8d1976b701f889d8f35d54b928f25"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Wed Mar 21 16:33:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:54 2012 -0700"
      },
      "message": "fs/namei.c: fix warnings on 32-bit\n\ni386 allnoconfig:\n\n  fs/namei.c: In function \u0027has_zero\u0027:\n  fs/namei.c:1617: warning: integer constant is too large for \u0027unsigned long\u0027 type\n  fs/namei.c:1617: warning: integer constant is too large for \u0027unsigned long\u0027 type\n  fs/namei.c: In function \u0027hash_name\u0027:\n  fs/namei.c:1635: warning: integer constant is too large for \u0027unsigned long\u0027 type\n\nThere must be a tidier way of doing this.\n\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1a5a9906d4e8d1976b701f889d8f35d54b928f25",
      "tree": "e51912e725f224663a738045a4d0528d08da4572",
      "parents": [
        "31f6765266417c0d99f0e922fe82848a7c9c2ae9"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Wed Mar 21 16:33:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 17:54:54 2012 -0700"
      },
      "message": "mm: thp: fix pmd_bad() triggering in code paths holding mmap_sem read mode\n\nIn some cases it may happen that pmd_none_or_clear_bad() is called with\nthe mmap_sem hold in read mode.  In those cases the huge page faults can\nallocate hugepmds under pmd_none_or_clear_bad() and that can trigger a\nfalse positive from pmd_bad() that will not like to see a pmd\nmaterializing as trans huge.\n\nIt\u0027s not khugepaged causing the problem, khugepaged holds the mmap_sem\nin write mode (and all those sites must hold the mmap_sem in read mode\nto prevent pagetables to go away from under them, during code review it\nseems vm86 mode on 32bit kernels requires that too unless it\u0027s\nrestricted to 1 thread per process or UP builds).  The race is only with\nthe huge pagefaults that can convert a pmd_none() into a\npmd_trans_huge().\n\nEffectively all these pmd_none_or_clear_bad() sites running with\nmmap_sem in read mode are somewhat speculative with the page faults, and\nthe result is always undefined when they run simultaneously.  This is\nprobably why it wasn\u0027t common to run into this.  For example if the\nmadvise(MADV_DONTNEED) runs zap_page_range() shortly before the page\nfault, the hugepage will not be zapped, if the page fault runs first it\nwill be zapped.\n\nAltering pmd_bad() not to error out if it finds hugepmds won\u0027t be enough\nto fix this, because zap_pmd_range would then proceed to call\nzap_pte_range (which would be incorrect if the pmd become a\npmd_trans_huge()).\n\nThe simplest way to fix this is to read the pmd in the local stack\n(regardless of what we read, no need of actual CPU barriers, only\ncompiler barrier needed), and be sure it is not changing under the code\nthat computes its value.  Even if the real pmd is changing under the\nvalue we hold on the stack, we don\u0027t care.  If we actually end up in\nzap_pte_range it means the pmd was not none already and it was not huge,\nand it can\u0027t become huge from under us (khugepaged locking explained\nabove).\n\nAll we need is to enforce that there is no way anymore that in a code\npath like below, pmd_trans_huge can be false, but pmd_none_or_clear_bad\ncan run into a hugepmd.  The overhead of a barrier() is just a compiler\ntweak and should not be measurable (I only added it for THP builds).  I\ndon\u0027t exclude different compiler versions may have prevented the race\ntoo by caching the value of *pmd on the stack (that hasn\u0027t been\nverified, but it wouldn\u0027t be impossible considering\npmd_none_or_clear_bad, pmd_bad, pmd_trans_huge, pmd_none are all inlines\nand there\u0027s no external function called in between pmd_trans_huge and\npmd_none_or_clear_bad).\n\n\t\tif (pmd_trans_huge(*pmd)) {\n\t\t\tif (next-addr !\u003d HPAGE_PMD_SIZE) {\n\t\t\t\tVM_BUG_ON(!rwsem_is_locked(\u0026tlb-\u003emm-\u003emmap_sem));\n\t\t\t\tsplit_huge_page_pmd(vma-\u003evm_mm, pmd);\n\t\t\t} else if (zap_huge_pmd(tlb, vma, pmd, addr))\n\t\t\t\tcontinue;\n\t\t\t/* fall through */\n\t\t}\n\t\tif (pmd_none_or_clear_bad(pmd))\n\nBecause this race condition could be exercised without special\nprivileges this was reported in CVE-2012-1179.\n\nThe race was identified and fully explained by Ulrich who debugged it.\nI\u0027m quoting his accurate explanation below, for reference.\n\n\u003d\u003d\u003d\u003d\u003d\u003d start quote \u003d\u003d\u003d\u003d\u003d\u003d\u003d\n      mapcount 0 page_mapcount 1\n      kernel BUG at mm/huge_memory.c:1384!\n\n    At some point prior to the panic, a \"bad pmd ...\" message similar to the\n    following is logged on the console:\n\n      mm/memory.c:145: bad pmd ffff8800376e1f98(80000000314000e7).\n\n    The \"bad pmd ...\" message is logged by pmd_clear_bad() before it clears\n    the page\u0027s PMD table entry.\n\n        143 void pmd_clear_bad(pmd_t *pmd)\n        144 {\n    -\u003e  145         pmd_ERROR(*pmd);\n        146         pmd_clear(pmd);\n        147 }\n\n    After the PMD table entry has been cleared, there is an inconsistency\n    between the actual number of PMD table entries that are mapping the page\n    and the page\u0027s map count (_mapcount field in struct page). When the page\n    is subsequently reclaimed, __split_huge_page() detects this inconsistency.\n\n       1381         if (mapcount !\u003d page_mapcount(page))\n       1382                 printk(KERN_ERR \"mapcount %d page_mapcount %d\\n\",\n       1383                        mapcount, page_mapcount(page));\n    -\u003e 1384         BUG_ON(mapcount !\u003d page_mapcount(page));\n\n    The root cause of the problem is a race of two threads in a multithreaded\n    process. Thread B incurs a page fault on a virtual address that has never\n    been accessed (PMD entry is zero) while Thread A is executing an madvise()\n    system call on a virtual address within the same 2 MB (huge page) range.\n\n               virtual address space\n              .---------------------.\n              |                     |\n              |                     |\n            .-|---------------------|\n            | |                     |\n            | |                     |\u003c-- B(fault)\n            | |                     |\n      2 MB  | |/////////////////////|-.\n      huge \u003c  |/////////////////////|  \u003e A(range)\n      page  | |/////////////////////|-\u0027\n            | |                     |\n            | |                     |\n            \u0027-|---------------------|\n              |                     |\n              |                     |\n              \u0027---------------------\u0027\n\n    - Thread A is executing an madvise(..., MADV_DONTNEED) system call\n      on the virtual address range \"A(range)\" shown in the picture.\n\n    sys_madvise\n      // Acquire the semaphore in shared mode.\n      down_read(\u0026current-\u003emm-\u003emmap_sem)\n      ...\n      madvise_vma\n        switch (behavior)\n        case MADV_DONTNEED:\n             madvise_dontneed\n               zap_page_range\n                 unmap_vmas\n                   unmap_page_range\n                     zap_pud_range\n                       zap_pmd_range\n                         //\n                         // Assume that this huge page has never been accessed.\n                         // I.e. content of the PMD entry is zero (not mapped).\n                         //\n                         if (pmd_trans_huge(*pmd)) {\n                             // We don\u0027t get here due to the above assumption.\n                         }\n                         //\n                         // Assume that Thread B incurred a page fault and\n             .---------\u003e // sneaks in here as shown below.\n             |           //\n             |           if (pmd_none_or_clear_bad(pmd))\n             |               {\n             |                 if (unlikely(pmd_bad(*pmd)))\n             |                     pmd_clear_bad\n             |                     {\n             |                       pmd_ERROR\n             |                         // Log \"bad pmd ...\" message here.\n             |                       pmd_clear\n             |                         // Clear the page\u0027s PMD entry.\n             |                         // Thread B incremented the map count\n             |                         // in page_add_new_anon_rmap(), but\n             |                         // now the page is no longer mapped\n             |                         // by a PMD entry (-\u003e inconsistency).\n             |                     }\n             |               }\n             |\n             v\n    - Thread B is handling a page fault on virtual address \"B(fault)\" shown\n      in the picture.\n\n    ...\n    do_page_fault\n      __do_page_fault\n        // Acquire the semaphore in shared mode.\n        down_read_trylock(\u0026mm-\u003emmap_sem)\n        ...\n        handle_mm_fault\n          if (pmd_none(*pmd) \u0026\u0026 transparent_hugepage_enabled(vma))\n              // We get here due to the above assumption (PMD entry is zero).\n              do_huge_pmd_anonymous_page\n                alloc_hugepage_vma\n                  // Allocate a new transparent huge page here.\n                ...\n                __do_huge_pmd_anonymous_page\n                  ...\n                  spin_lock(\u0026mm-\u003epage_table_lock)\n                  ...\n                  page_add_new_anon_rmap\n                    // Here we increment the page\u0027s map count (starts at -1).\n                    atomic_set(\u0026page-\u003e_mapcount, 0)\n                  set_pmd_at\n                    // Here we set the page\u0027s PMD entry which will be cleared\n                    // when Thread A calls pmd_clear_bad().\n                  ...\n                  spin_unlock(\u0026mm-\u003epage_table_lock)\n\n    The mmap_sem does not prevent the race because both threads are acquiring\n    it in shared mode (down_read).  Thread B holds the page_table_lock while\n    the page\u0027s map count and PMD table entry are updated.  However, Thread A\n    does not synchronize on that lock.\n\n\u003d\u003d\u003d\u003d\u003d\u003d end quote \u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\n[akpm@linux-foundation.org: checkpatch fixes]\nReported-by: Ulrich Obergfell \u003cuobergfe@redhat.com\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nAcked-by: Larry Woodman \u003clwoodman@redhat.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t\t[2.6.38+]\nCc: Mark Salter \u003cmsalter@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": "31f6765266417c0d99f0e922fe82848a7c9c2ae9",
      "tree": "2d5914dac0a918baad37decd3845b8c206051420",
      "parents": [
        "d15d76448bb58c7832e954b6a8f1e301720b7866",
        "312869ec935ab3bb67b7ba641a7d11230555aff5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:37:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:37:25 2012 -0700"
      },
      "message": "Merge tag \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging\n\nPull hwmon changes for v3.4 from Guenter Roeck:\n \"Mostly cleanup.  No new drivers this time around, but support for\n  several chips added to existing drivers: TPS40400, TPS40422, MTD040,\n  MAX34446, ZL9101M, ZL9117M, and LM96080.  Also, added watchdog support\n  for SCH56xx, and additional attributes for a couple of drivers.\"\n\n* tag \u0027hwmon-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (137 commits)\n  hwmon: (sch56xx) Add support for the integrated watchdog (v2)\n  hwmon: (w83627ehf) Add support for temperature offset registers\n  hwmon: (jc42) Remove unnecessary device IDs\n  hwmon: (zl6100) Add support for ZL9101M and ZL9117M\n  hwmon: (adm1275) Add support for ADM1075\n  hwmon: (max34440) Add support for MAX34446\n  hwmon: (pmbus) Add more virtual registers\n  hwmon: (pmbus) Add support for Lineage Power MDT040\n  hwmon: (pmbus) Add support for TI TPS40400 and TPS40422\n  hwmon: (max34440) Add support for \u0027lowest\u0027 output voltage attribute\n  hwmon: (jc42) Convert to use devm_kzalloc\n  hwmon: (max16065) Convert to use devm_kzalloc\n  hwmon: (smm665) Convert to use devm_kzalloc\n  hwmon: (ltc4261) Convert to use devm_kzalloc\n  hwmon: (pmbus) Simplify remove functions\n  hwmon: (pmbus) Convert pmbus drivers to use devm_kzalloc\n  hwmon: (lineage-pem) Convert to use devm_kzalloc\n  hwmon: (hwmon-vid) Fix checkpatch issues\n  hwmon: (hwmon-vid) Add new entries to VRM model table\n  hwmon: (lm80) Add detection of NatSemi/TI LM96080\n  ...\n"
    },
    {
      "commit": "d15d76448bb58c7832e954b6a8f1e301720b7866",
      "tree": "7891c9e0779f5df33840be9cdba1f0331459e97c",
      "parents": [
        "0c2fe82a9b106f1c03719783134360586d718a69",
        "4992fa1fd425f1934f503ffa96b68e235b89db9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:34:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:34:56 2012 -0700"
      },
      "message": "Merge tag \u0027regulator-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator\n\nPull regulator updates for 3.4 from Mark Brown:\n \"This has been a fairly quiet release from a regulator point of view,\n  the only real framework features added were devm support and a\n  convenience helper for setting up fixed voltage regulators.\n\n  We also added a couple of drivers (but will drop the BQ240022 driver\n  via the arm-soc tree as it\u0027s been replaced by the more generic\n  gpio-regulator driver) and Axel Lin continued his relentless and\n  generally awesome stream of fixes and cleanups.\"\n\n* tag \u0027regulator-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (93 commits)\n  regulator: Fix up a confusing dev_warn when DT lookup fails\n  regulator: Convert tps6507x to set_voltage_sel\n  regulator: Refactor tps6507x to use one tps6507x_pmic_ops for all LDOs and DCDCs\n  regulator: Make s5m8767_get_voltage_register always return correct register\n  regulator: s5m8767: Check pdata-\u003ebuck[2|3|4]_gpiodvs earlier\n  regulator: tps65910: Provide settling time for DCDC voltage change\n  regulator: Add Anatop regulator driver\n  regulator: Simplify implementation of tps65912_get_voltage_dcdc\n  regulator: Use tps65912_set_voltage_sel for both DCDCx and LDOx\n  regulator: tps65910: Provide settling time for enabling rails\n  regulator: max8925: Use DIV_ROUND_UP macro\n  regulator: tps65912: Use simple equations to get register address\n  regulator: Fix the logic of tps65910_get_mode\n  regulator: Merge tps65217_pmic_ldo234_ops and tps65217_pmic_dcdc_ops to tps65217_pmic_ops\n  regulator: Use DIV_ROUND_CLOSEST in wm8350_isink_get_current\n  regulator: Use array to store dcdc_range settings for tps65912\n  regulator: Rename s5m8767_convert_voltage to s5m8767_convert_voltage_to_sel\n  regulator: tps6524x: Remove unneeded comment for N_REGULATORS\n  regulator: Rename set_voltage_sel callback function name to *_sel\n  regulator: Fix s5m8767_set_voltage_time_sel calculation value\n  ...\n"
    },
    {
      "commit": "0c2fe82a9b106f1c03719783134360586d718a69",
      "tree": "ec1a18ca49f1e6724ef3a93727f5f73b7df61931",
      "parents": [
        "5f0e685f316a1de6d3af8b23eaf46651faca32ab",
        "f0e88aeb19dac00ed2e09fd4d39ee65f32d5e968"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:33:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:33:42 2012 -0700"
      },
      "message": "Merge tag \u0027rdma-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\nPull InfiniBand/RDMA changes for the 3.4 merge window from Roland Dreier:\n \"Nothing big really stands out; by patch count lots of fixes to the\n  mlx4 driver plus some cleanups and fixes to the core and other\n  drivers.\"\n\n* tag \u0027rdma-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (28 commits)\n  mlx4_core: Scale size of MTT table with system RAM\n  mlx4_core: Allow dynamic MTU configuration for IB ports\n  IB/mlx4: Fix info returned when querying IBoE ports\n  IB/mlx4: Fix possible missed completion event\n  mlx4_core: Report thermal error events\n  mlx4_core: Fix one more static exported function\n  IB: Change CQE \"csum_ok\" field to a bit flag\n  RDMA/iwcm: Reject connect requests if cmid is not in LISTEN state\n  RDMA/cxgb3: Don\u0027t pass irq flags to flush_qp()\n  mlx4_core: Get rid of redundant ext_port_cap flags\n  RDMA/ucma: Fix AB-BA deadlock\n  IB/ehca: Fix ilog2() compile failure\n  IB: Use central enum for speed instead of hard-coded values\n  IB/iser: Post initial receive buffers before sending the final login request\n  IB/iser: Free IB connection resources in the proper place\n  IB/srp: Consolidate repetitive sysfs code\n  IB/srp: Use pr_fmt() and pr_err()/pr_warn()\n  IB/core: Fix SDR rates in sysfs\n  mlx4: Enforce device max FMR maps in FMR alloc\n  IB/mlx4: Set bad_wr for invalid send opcode\n  ...\n"
    },
    {
      "commit": "5f0e685f316a1de6d3af8b23eaf46651faca32ab",
      "tree": "af1ed231b7fcfc65b146be59a0aee699aa9f6353",
      "parents": [
        "f8974cb71310a05632aada76be6a27576d61e609",
        "87bf5ab82884c829366914aaa813cc8b07b9fe58"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:32:00 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:32:00 2012 -0700"
      },
      "message": "Merge tag \u0027spi-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull SPI changes for v3.4 from Grant Likely:\n \"Mostly a bunch of new drivers and driver bug fixes; but this also\n  includes a few patches that create a core message queue infrastructure\n  for the spi subsystem instead of making each driver open code it.\"\n\n* tag \u0027spi-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6: (34 commits)\n  spi/fsl-espi: Make sure pm is within 2..32\n  spi/fsl-espi: make the clock computation easier to read\n  spi: sh-hspi: modify write/read method\n  spi: sh-hspi: control spi clock more correctly\n  spi: sh-hspi: convert to using core message queue\n  spi: s3c64xx: Fix build\n  spi: s3c64xx: remove unnecessary callback msg-\u003ecomplete\n  spi: remove redundant variable assignment\n  spi: release lock on error path in spi_pump_messages()\n  spi: Compatibility with direction which is used in samsung DMA operation\n  spi-topcliff-pch: add recovery processing in case wait-event timeout\n  spi-topcliff-pch: supports a spi mode setup and bit order setup by IO control\n  spi-topcliff-pch: Fix issue for transmitting over 4KByte\n  spi-topcliff-pch: Modify pci-bus number dynamically to get DMA device info\n  spi/imx: simplify error handling to free gpios\n  spi: Convert to DEFINE_PCI_DEVICE_TABLE\n  spi: add Broadcom BCM63xx SPI controller driver\n  SPI: add CSR SiRFprimaII SPI controller driver\n  spi-topcliff-pch: fix -Wuninitialized warning\n  spi: Mark spi_register_board_info() __devinit\n  ...\n"
    },
    {
      "commit": "f8974cb71310a05632aada76be6a27576d61e609",
      "tree": "c0b6f59333796c95aa2de9a2eb755e9b68599b71",
      "parents": [
        "c207f3a43194e108dda43dc9a1ce507335cff6b9",
        "0f22dd395fc473cee252b9af50249b8e0f32fde7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:30:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:30:03 2012 -0700"
      },
      "message": "Merge tag \u0027dt-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull core device tree changes for Linux v3.4 from Grant Likely:\n \"This branch contains a minor documentation addition, a utility\n  function for parsing string properties needed by some of the new ARM\n  platforms, disables dynamic DT code that isn\u0027t used anywhere but on a\n  few PPC machines, and exports DT node compatible data to userspace via\n  UEVENT properties.  Nothing earth shattering here.\"\n\n* tag \u0027dt-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6:\n  of: Only compile OF_DYNAMIC on PowerPC pseries and iseries\n  arm/dts: OMAP3: Add omap3evm and am335xevm support\n  drivercore: Output common devicetree information in uevent\n  of: Add of_property_match_string() to find index into a string list\n"
    },
    {
      "commit": "c207f3a43194e108dda43dc9a1ce507335cff6b9",
      "tree": "55880f8301e8546b1908f69947d0d41aaa044814",
      "parents": [
        "c7c66c0cb0c77b1a8edf09bca57d922312d58030",
        "e7cc3aca0f6a36b018934264ee20bee45dc13e29"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:27:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:27:19 2012 -0700"
      },
      "message": "Merge tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6\n\nPull irq_domain support for all architectures from Grant Likely:\n \"Generialize powerpc\u0027s irq_host as irq_domain\n\n  This branch takes the PowerPC irq_host infrastructure (reverse mapping\n  from Linux IRQ numbers to hardware irq numbering), generalizes it,\n  renames it to irq_domain, and makes it available to all architectures.\n\n  Originally the plan has been to create an all-new irq_domain\n  implementation which addresses some of the powerpc shortcomings such\n  as not handling 1:1 mappings well, but doing that proved to be far\n  more difficult and invasive than generalizing the working code and\n  refactoring it in-place.  So, this branch rips out the \u0027new\u0027\n  irq_domain and replaces it with the modified powerpc version (in a\n  fully bisectable way of course).  It converts all users over to the\n  new API and makes irq_domain selectable on any architecture.\n\n  No architecture is forced to enable irq_domain, but the infrastructure\n  is required for doing OpenFirmware style irq translations.  It will\n  even work on SPARC even though SPARC has it\u0027s own mechanism for\n  translating irqs at boot time.  MIPS, microblaze, embedded x86 and c6x\n  are converted too.\n\n  The resulting irq_domain code is probably still too verbose and can be\n  optimized more, but that can be done incrementally and is a task for\n  follow-on patches.\"\n\n* tag \u0027irqdomain-for-linus\u0027 of git://git.secretlab.ca/git/linux-2.6: (31 commits)\n  dt: fix twl4030 for non-dt compile on x86\n  mfd: twl-core: Add IRQ_DOMAIN dependency\n  devicetree: Add empty of_platform_populate() for !CONFIG_OF_ADDRESS (sparc)\n  irq_domain: Centralize definition of irq_dispose_mapping()\n  irq_domain/mips: Allow irq_domain on MIPS\n  irq_domain/x86: Convert x86 (embedded) to use common irq_domain\n  ppc-6xx: fix build failure in flipper-pic.c and hlwd-pic.c\n  irq_domain/microblaze: Convert microblaze to use irq_domains\n  irq_domain/powerpc: Replace custom xlate functions with library functions\n  irq_domain/powerpc: constify irq_domain_ops\n  irq_domain/c6x: Use library of xlate functions\n  irq_domain/c6x: constify irq_domain structures\n  irq_domain/c6x: Convert c6x to use generic irq_domain support.\n  irq_domain: constify irq_domain_ops\n  irq_domain: Create common xlate functions that device drivers can use\n  irq_domain: Remove irq_domain_add_simple()\n  irq_domain: Remove \u0027new\u0027 irq_domain in favour of the ppc one\n  mfd: twl-core.c: Fix the number of interrupts managed by twl4030\n  of/address: add empty static inlines for !CONFIG_OF\n  irq_domain: Add support for base irq and hwirq in legacy mappings\n  ...\n"
    },
    {
      "commit": "c7c66c0cb0c77b1a8edf09bca57d922312d58030",
      "tree": "77277103c5f16aa4dee64978a060933d92e14776",
      "parents": [
        "9f3938346a5c1fa504647670edb5fea5756cfb00",
        "98e8bdafeb4728a6af7bbcbcc3984967d1cf2bc1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:15:51 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 10:15:51 2012 -0700"
      },
      "message": "Merge tag \u0027pm-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm\n\nPull power management updates for 3.4 from Rafael Wysocki:\n \"Assorted extensions and fixes including:\n\n  * Introduction of early/late suspend/hibernation device callbacks.\n  * Generic PM domains extensions and fixes.\n  * devfreq updates from Axel Lin and MyungJoo Ham.\n  * Device PM QoS updates.\n  * Fixes of concurrency problems with wakeup sources.\n  * System suspend and hibernation fixes.\"\n\n* tag \u0027pm-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (43 commits)\n  PM / Domains: Check domain status during hibernation restore of devices\n  PM / devfreq: add relation of recommended frequency.\n  PM / shmobile: Make MTU2 driver use pm_genpd_dev_always_on()\n  PM / shmobile: Make CMT driver use pm_genpd_dev_always_on()\n  PM / shmobile: Make TMU driver use pm_genpd_dev_always_on()\n  PM / Domains: Introduce \"always on\" device flag\n  PM / Domains: Fix hibernation restore of devices, v2\n  PM / Domains: Fix handling of wakeup devices during system resume\n  sh_mmcif / PM: Use PM QoS latency constraint\n  tmio_mmc / PM: Use PM QoS latency constraint\n  PM / QoS: Make it possible to expose PM QoS latency constraints\n  PM / Sleep: JBD and JBD2 missing set_freezable()\n  PM / Domains: Fix include for PM_GENERIC_DOMAINS\u003dn case\n  PM / Freezer: Remove references to TIF_FREEZE in comments\n  PM / Sleep: Add more wakeup source initialization routines\n  PM / Hibernate: Enable usermodehelpers in hibernate() error path\n  PM / Sleep: Make __pm_stay_awake() delete wakeup source timers\n  PM / Sleep: Fix race conditions related to wakeup source timer function\n  PM / Sleep: Fix possible infinite loop during wakeup source destruction\n  PM / Hibernate: print physical addresses consistently with other parts of kernel\n  ...\n"
    },
    {
      "commit": "9f3938346a5c1fa504647670edb5fea5756cfb00",
      "tree": "7cf6d24d6b076c8db8571494984924cac03703a2",
      "parents": [
        "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
        "317b6e128247f75976b0fc2b9fd8d2c20ef13b3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 21 09:40:26 2012 -0700"
      },
      "message": "Merge branch \u0027kmap_atomic\u0027 of git://github.com/congwang/linux\n\nPull kmap_atomic cleanup from Cong Wang.\n\nIt\u0027s been in -next for a long time, and it gets rid of the (no longer\nused) second argument to k[un]map_atomic().\n\nFix up a few trivial conflicts in various drivers, and do an \"evil\nmerge\" to catch some new uses that have come in since Cong\u0027s tree.\n\n* \u0027kmap_atomic\u0027 of git://github.com/congwang/linux: (59 commits)\n  feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal\n  highmem: kill all __kmap_atomic() [swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename]\n  drbd: remove the second argument of k[un]map_atomic()\n  zcache: remove the second argument of k[un]map_atomic()\n  gma500: remove the second argument of k[un]map_atomic()\n  dm: remove the second argument of k[un]map_atomic()\n  tomoyo: remove the second argument of k[un]map_atomic()\n  sunrpc: remove the second argument of k[un]map_atomic()\n  rds: remove the second argument of k[un]map_atomic()\n  net: remove the second argument of k[un]map_atomic()\n  mm: remove the second argument of k[un]map_atomic()\n  lib: remove the second argument of k[un]map_atomic()\n  power: remove the second argument of k[un]map_atomic()\n  kdb: remove the second argument of k[un]map_atomic()\n  udf: remove the second argument of k[un]map_atomic()\n  ubifs: remove the second argument of k[un]map_atomic()\n  squashfs: remove the second argument of k[un]map_atomic()\n  reiserfs: remove the second argument of k[un]map_atomic()\n  ocfs2: remove the second argument of k[un]map_atomic()\n  ntfs: remove the second argument of k[un]map_atomic()\n  ...\n"
    },
    {
      "commit": "69a7aebcf019ab3ff5764525ad6858fbe23bb86d",
      "tree": "7211df5704b743a7667159748c670a9744164482",
      "parents": [
        "d464c92b5234227c1698862a1906827e2e398ae0",
        "f1f996b66cc3908a8f5ffccc2ff41840e92f3b10"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:12:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:12:50 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\nPull trivial tree from Jiri Kosina:\n \"It\u0027s indeed trivial -- mostly documentation updates and a bunch of\n  typo fixes from Masanari.\n\n  There are also several linux/version.h include removals from Jesper.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (101 commits)\n  kcore: fix spelling in read_kcore() comment\n  constify struct pci_dev * in obvious cases\n  Revert \"char: Fix typo in viotape.c\"\n  init: fix wording error in mm_init comment\n  usb: gadget: Kconfig: fix typo for \u0027different\u0027\n  Revert \"power, max8998: Include linux/module.h just once in drivers/power/max8998_charger.c\"\n  writeback: fix fn name in writeback_inodes_sb_nr_if_idle() comment header\n  writeback: fix typo in the writeback_control comment\n  Documentation: Fix multiple typo in Documentation\n  tpm_tis: fix tis_lock with respect to RCU\n  Revert \"media: Fix typo in mixer_drv.c and hdmi_drv.c\"\n  Doc: Update numastat.txt\n  qla4xxx: Add missing spaces to error messages\n  compiler.h: Fix typo\n  security: struct security_operations kerneldoc fix\n  Documentation: broken URL in libata.tmpl\n  Documentation: broken URL in filesystems.tmpl\n  mtd: simplify return logic in do_map_probe()\n  mm: fix comment typo of truncate_inode_pages_range\n  power: bq27x00: Fix typos in comment\n  ...\n"
    },
    {
      "commit": "d464c92b5234227c1698862a1906827e2e398ae0",
      "tree": "85bfa3a222fd04ab6bee19d0143426c7080553d4",
      "parents": [
        "3b59bf081622b6446db77ad06c93fe23677bc533",
        "4a247a4119ee932e06e985e0a95a13c3eed4715b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:11:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:11:42 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid\n\nPull HID updates from Jiri Kosina:\n \"It contains HID driver updates all over the place -- a lot of new\n  hardware support especially in the multitouch area, including generic\n  handling of all multitouch devices by the hid-multitiouch driver\n  automatically.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid: (42 commits)\n  HID: multitouch: add PID for Fructel product\n  HID: wacom: Add reporting of wheel for Intuos4 WL\n  HID: wacom: Replace __set_bit with input_set_capability\n  HID: tivo: add support for BT-version (0x1200)\n  HID: wacom: Reset stylus buttons - Intuos4 WL\n  HID: multitouch: detect serial protocol\n  HID: handle all multitouch devices through hid-multitouch\n  HID: multitouch: fix handling of buggy reports descriptors for Dell ST2220T\n  HID: make it possible to force hid-core claim the device\n  HID: multitouch: add support for eGalax 0x722a\n  HID: usbhid: add quirk no_get for quanta 3008 devices\n  HID: multitouch: add more eGalax devices\n  HID: multitouch: add new PID from Ideacom\n  HID: multitouch: add support for Atmel maXTouch 03eb:2118\n  HID: waltop: Add support for tablet with PID 0038\n  HID: waltop: Replace original rdescs with links\n  HID: uclogic: Replace original rdescs with links\n  HID: wacom: Add pad buttons reporting on Intuos4 WL\n  HID: wacom: report distance for Intuos4 WL\n  HID: kye: Add support for 3 tablets\n  ...\n"
    },
    {
      "commit": "3b59bf081622b6446db77ad06c93fe23677bc533",
      "tree": "3f4bb5a27c90cc86994a1f6d3c53fbf9208003cb",
      "parents": [
        "e45836fafe157df137a837093037f741ad8f4c90",
        "bbdb32cb5b73597386913d052165423b9d736145"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:04:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 21:04:47 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next\n\nPull networking merge from David Miller:\n \"1) Move ixgbe driver over to purely page based buffering on receive.\n     From Alexander Duyck.\n\n  2) Add receive packet steering support to e1000e, from Bruce Allan.\n\n  3) Convert TCP MD5 support over to RCU, from Eric Dumazet.\n\n  4) Reduce cpu usage in handling out-of-order TCP packets on modern\n     systems, also from Eric Dumazet.\n\n  5) Support the IP{,V6}_UNICAST_IF socket options, making the wine\n     folks happy, from Erich Hoover.\n\n  6) Support VLAN trunking from guests in hyperv driver, from Haiyang\n     Zhang.\n\n  7) Support byte-queue-limtis in r8169, from Igor Maravic.\n\n  8) Outline code intended for IP_RECVTOS in IP_PKTOPTIONS existed but\n     was never properly implemented, Jiri Benc fixed that.\n\n  9) 64-bit statistics support in r8169 and 8139too, from Junchang Wang.\n\n  10) Support kernel side dump filtering by ctmark in netfilter\n      ctnetlink, from Pablo Neira Ayuso.\n\n  11) Support byte-queue-limits in gianfar driver, from Paul Gortmaker.\n\n  12) Add new peek socket options to assist with socket migration, from\n      Pavel Emelyanov.\n\n  13) Add sch_plug packet scheduler whose queue is controlled by\n      userland daemons using explicit freeze and release commands.  From\n      Shriram Rajagopalan.\n\n  14) Fix FCOE checksum offload handling on transmit, from Yi Zou.\"\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1846 commits)\n  Fix pppol2tp getsockname()\n  Remove printk from rds_sendmsg\n  ipv6: fix incorrent ipv6 ipsec packet fragment\n  cpsw: Hook up default ndo_change_mtu.\n  net: qmi_wwan: fix build error due to cdc-wdm dependecy\n  netdev: driver: ethernet: Add TI CPSW driver\n  netdev: driver: ethernet: add cpsw address lookup engine support\n  phy: add am79c874 PHY support\n  mlx4_core: fix race on comm channel\n  bonding: send igmp report for its master\n  fs_enet: Add MPC5125 FEC support and PHY interface selection\n  net: bpf_jit: fix BPF_S_LDX_B_MSH compilation\n  net: update the usage of CHECKSUM_UNNECESSARY\n  fcoe: use CHECKSUM_UNNECESSARY instead of CHECKSUM_PARTIAL on tx\n  net: do not do gso for CHECKSUM_UNNECESSARY in netif_needs_gso\n  ixgbe: Fix issues with SR-IOV loopback when flow control is disabled\n  net/hyperv: Fix the code handling tx busy\n  ixgbe: fix namespace issues when FCoE/DCB is not enabled\n  rtlwifi: Remove unused ETH_ADDR_LEN defines\n  igbvf: Use ETH_ALEN\n  ...\n\nFix up fairly trivial conflicts in drivers/isdn/gigaset/interface.c and\ndrivers/net/usb/{Kconfig,qmi_wwan.c} as per David.\n"
    },
    {
      "commit": "e45836fafe157df137a837093037f741ad8f4c90",
      "tree": "cba5fdef1fd2e70f3610c78dbcb56ebd1be67654",
      "parents": [
        "0d9cabdccedb79ee5f27b77ff51f29a9e7d23275",
        "e06ffa1ede4146cbc261d90f5dff3d63fe2e9d7a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 18:13:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 18:13:22 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq\n\nPull workqueue changes from Tejun Heo:\n \"This contains only one commit which cleans up UP allocation path a\n  bit.\"\n\n* \u0027for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:\n  workqueue: use percpu allocator for cwq on UP\n"
    },
    {
      "commit": "0d9cabdccedb79ee5f27b77ff51f29a9e7d23275",
      "tree": "8bfb64c3672d058eb90aec3c3a9c4f61cef9097c",
      "parents": [
        "701085b219016d38f105b031381b9cee6200253a",
        "3ce3230a0cff484e5130153f244d4fb8a56b3a8b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 18:11:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 18:11:21 2012 -0700"
      },
      "message": "Merge branch \u0027for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup\n\nPull cgroup changes from Tejun Heo:\n \"Out of the 8 commits, one fixes a long-standing locking issue around\n  tasklist walking and others are cleanups.\"\n\n* \u0027for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:\n  cgroup: Walk task list under tasklist_lock in cgroup_enable_task_cg_list\n  cgroup: Remove wrong comment on cgroup_enable_task_cg_list()\n  cgroup: remove cgroup_subsys argument from callbacks\n  cgroup: remove extra calls to find_existing_css_set\n  cgroup: replace tasklist_lock with rcu_read_lock\n  cgroup: simplify double-check locking in cgroup_attach_proc\n  cgroup: move struct cgroup_pidlist out from the header file\n  cgroup: remove cgroup_attach_task_current_cg()\n"
    },
    {
      "commit": "701085b219016d38f105b031381b9cee6200253a",
      "tree": "5111f137c507c8537d5d2c8e4203f0e6e4942bcb",
      "parents": [
        "b6e238dceed36891cc633167afe7151f1f3d83c5"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Mar 19 17:04:01 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 14:16:50 2012 -0700"
      },
      "message": "exec: move de_thread()-\u003esetmax_mm_hiwater_rss() into exec_mmap()\n\nMinor cleanup. de_thread()-\u003esetmax_mm_hiwater_rss() looks a bit\nstrange, move it into exec_mmap() which plays with old_mm.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b6e238dceed36891cc633167afe7151f1f3d83c5",
      "tree": "eef4928c1a0cb1b56eb20f8d0ee592709d533f10",
      "parents": [
        "e636825346b36a07ccfc8e30946d52855e21f681"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Mar 19 17:03:41 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 14:16:50 2012 -0700"
      },
      "message": "exit_signal: fix the \"parent has changed security domain\" logic\n\nexit_notify() changes -\u003eexit_signal if the parent already did exec.\nThis doesn\u0027t really work, we are not going to send the signal now\nif there is another live thread or the exiting task is traced. The\nparent can exec before the last dies or the tracer detaches.\n\nMove this check into do_notify_parent() which actually sends the\nsignal.\n\nThe user-visible change is that we do not change -\u003eexit_signal,\nand thus the exiting task is still \"clone children\" for\ndo_wait()-\u003eeligible_child(__WCLONE). Hopefully this is fine, the\ncurrent logic is racy anyway.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e636825346b36a07ccfc8e30946d52855e21f681",
      "tree": "128c37b3102223a95ce03b856766c33e4d077114",
      "parents": [
        "5f8aadd8b9966d71a77bba52b9d499cc2f38269f"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Mar 19 17:03:22 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 14:16:50 2012 -0700"
      },
      "message": "exit_signal: simplify the \"we have changed execution domain\" logic\n\nexit_notify() checks \"tsk-\u003eself_exec_id !\u003d tsk-\u003eparent_exec_id\"\nto handle the \"we have changed execution domain\" case.\n\nWe can change do_thread() to always set -\u003eexit_signal \u003d SIGCHLD\nand remove this check to simplify the code.\n\nWe could change setup_new_exec() instead, this looks more logical\nbecause it increments -\u003eself_exec_id. But note that de_thread()\nalready resets -\u003eexit_signal if it changes the leader, let\u0027s keep\nboth changes close to each other.\n\nNote that we change -\u003eexit_signal lockless, this changes the rules.\nThereafter -\u003eexit_signal is not stable under tasklist but this is\nfine, the only possible change is OLDSIG -\u003e SIGCHLD. This can race\nwith eligible_child() but the race is harmless. We can race with\nreparent_leader() which changes our -\u003eexit_signal in parallel, but\nit does the same change to SIGCHLD.\n\nThe noticeable user-visible change is that the execing task is not\n\"visible\" to do_wait()-\u003eeligible_child(__WCLONE) right after exec.\nTo me this looks more logical, and this is consistent with mt case.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5f8aadd8b9966d71a77bba52b9d499cc2f38269f",
      "tree": "229735d79edf0c4cc82ac00ba1abaee63040ff6e",
      "parents": [
        "ed378a52dabf77b406b447fd3238f83ea24b71fa"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Wed Mar 14 19:55:38 2012 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 14:16:50 2012 -0700"
      },
      "message": "CLONE_PARENT shouldn\u0027t allow to set -\u003eexit_signal\n\nThe child must not control its -\u003eexit_signal, it is the parent who\ndecides which signal the child should use for notification.\n\nThis means that CLONE_PARENT should not use \"clone_flags \u0026 CSIGNAL\",\nthe forking task is the sibling of the new process and their parent\ndoesn\u0027t control exit_signal in this case.\n\nThis patch uses -\u003eexit_signal of the forking process, but perhaps\nwe should simply use SIGCHLD.\n\nWe read group_leader-\u003eexit_signal lockless, this can race with the\nORIGINAL_SIGNAL -\u003e SIGCHLD transition, but this is fine.\n\nPotentially this change allows to kill self_exec_id/parent_exec_id.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bbdb32cb5b73597386913d052165423b9d736145",
      "tree": "7eaad4e895ed2947eb75d6320df8460c01d1bf6c",
      "parents": [
        "a6506e1486181975d318344143aca722b2b91621"
      ],
      "author": {
        "name": "Benjamin LaHaise",
        "email": "bcrl@kvack.org",
        "time": "Tue Mar 20 03:57:54 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 20 16:12:11 2012 -0400"
      },
      "message": "Fix pppol2tp getsockname()\n\nWhile testing L2TP functionality, I came across a bug in getsockname().  The\nIP address returned within the pppol2tp_addr\u0027s addr memember was not being\nset to the IP  address in use.  This bug is caused by using inet_sk() on the\nwrong socket (the L2TP socket rather than the underlying UDP socket), and was\nlikely introduced during the addition of L2TPv3 support.\n\nSigned-off-by: Benjamin LaHaise \u003cbcrl@kvack.org\u003e\nSigned-off-by: James Chapman \u003cjchapman@katalix.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "a6506e1486181975d318344143aca722b2b91621",
      "tree": "3ce23cc057dc6c3dc3e643653882853379df5677",
      "parents": [
        "1f85851e17b64cabd089a8a8839dddebc627948c"
      ],
      "author": {
        "name": "Dave Jones",
        "email": "davej@redhat.com",
        "time": "Mon Mar 19 13:01:07 2012 +0000"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Mar 20 16:12:11 2012 -0400"
      },
      "message": "Remove printk from rds_sendmsg\n\nno socket layer outputs a message for this error and neither should rds.\n\nSigned-off-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ed378a52dabf77b406b447fd3238f83ea24b71fa",
      "tree": "07e1a7ec2d1c08767ee81b9910f5912b80502632",
      "parents": [
        "843ec558f91b8e8fdb6efc908f2c0506407cc750",
        "11207b6fe05438b2e87a26435cd98db3d55e6fa7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:26:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:26:30 2012 -0700"
      },
      "message": "Merge tag \u0027usb-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb\n\nPull USB merge for 3.4-rc1 from Greg KH:\n \"Here\u0027s the big USB merge for the 3.4-rc1 merge window.\n\n  Lots of gadget driver reworks here, driver updates, xhci changes, some\n  new drivers added, usb-serial core reworking to fix some bugs, and\n  other various minor things.\n\n  There are some patches touching arch code, but they have all been\n  acked by the various arch maintainers.\"\n\n* tag \u0027usb-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (302 commits)\n  net: qmi_wwan: add support for ZTE MF820D\n  USB: option: add ZTE MF820D\n  usb: gadget: f_fs: Remove lock is held before freeing checks\n  USB: option: make interface blacklist work again\n  usb/ub: deprecate \u0026 schedule for removal the \"Low Performance USB Block\" driver\n  USB: ohci-pxa27x: add clk_prepare/clk_unprepare calls\n  USB: use generic platform driver on ath79\n  USB: EHCI: Add a generic platform device driver\n  USB: OHCI: Add a generic platform device driver\n  USB: ftdi_sio: new PID: LUMEL PD12\n  USB: ftdi_sio: add support for FT-X series devices\n  USB: serial: mos7840: Fixed MCS7820 device attach problem\n  usb: Don\u0027t make USB_ARCH_HAS_{XHCI,OHCI,EHCI} depend on USB_SUPPORT.\n  usb gadget: fix a section mismatch when compiling g_ffs with CONFIG_USB_FUNCTIONFS_ETH\n  USB: ohci-nxp: Remove i2c_write(), use smbus\n  USB: ohci-nxp: Support for LPC32xx\n  USB: ohci-nxp: Rename symbols from pnx4008 to nxp\n  USB: OHCI-HCD: Rename ohci-pnx4008 to ohci-nxp\n  usb: gadget: Kconfig: fix typo for \u0027different\u0027\n  usb: dwc3: pci: fix another failure path in dwc3_pci_probe()\n  ...\n"
    },
    {
      "commit": "843ec558f91b8e8fdb6efc908f2c0506407cc750",
      "tree": "1866dccbc298390fc8686875942324075fd83f9d",
      "parents": [
        "71e7ff2578c3bc67fd893a9ba7f69fd563f271de",
        "fb8ebec00b04f921ea1614a7303f1a8e5e9e47c5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:24:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:24:39 2012 -0700"
      },
      "message": "Merge tag \u0027tty-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty\n\nPull TTY/serial patches from Greg KH:\n \"tty and serial merge for 3.4-rc1\n\n  Here\u0027s the big serial and tty merge for the 3.4-rc1 tree.\n\n  There\u0027s loads of fixes and reworks in here from Jiri for the tty\n  layer, and a number of patches from Alan to help try to wrestle the vt\n  layer into a sane model.\n\n  Other than that, lots of driver updates and fixes, and other minor\n  stuff, all detailed in the shortlog.\"\n\n* tag \u0027tty-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (132 commits)\n  serial: pxa: add clk_prepare/clk_unprepare calls\n  TTY: Wrong unicode value copied in con_set_unimap()\n  serial: PL011: clear pending interrupts\n  serial: bfin-uart: Don\u0027t access tty circular buffer in TX DMA interrupt after it is reset.\n  vt: NULL dereference in vt_do_kdsk_ioctl()\n  tty: serial: vt8500: fix annotations for probe/remove\n  serial: remove back and forth conversions in serial_out_sync\n  serial: use serial_port_in/out vs serial_in/out in 8250\n  serial: introduce generic port in/out helpers\n  serial: reduce number of indirections in 8250 code\n  serial: delete useless void casts in 8250.c\n  serial: make 8250\u0027s serial_in shareable to other drivers.\n  serial: delete last unused traces of pausing I/O in 8250\n  pch_uart: Add module parameter descriptions\n  pch_uart: Use existing default_baud in setup_console\n  pch_uart: Add user_uartclk parameter\n  pch_uart: Add Fish River Island II uart clock quirks\n  pch_uart: Use uartclk instead of base_baud\n  mpc5200b/uart: select more tolerant uart prescaler on low baudrates\n  tty: moxa: fix bit test in moxa_start()\n  ...\n"
    },
    {
      "commit": "71e7ff2578c3bc67fd893a9ba7f69fd563f271de",
      "tree": "07f8f6e950f54f745857c6be07a5186fd68a74d2",
      "parents": [
        "4a52246302f01596f0edf7b4a3e6425e23479192",
        "bc01caf53da4de53361376734707336de8fff839"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:23:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:23:18 2012 -0700"
      },
      "message": "Merge tag \u0027staging-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging\n\nPull big staging driver updates from Greg KH:\n \"Here is the big drivers/staging/ merge for 3.4-rc1\n\n  Lots of new driver updates here, with the addition of a few new ones,\n  and only one moving out of the staging tree to the \"real\" part of the\n  kernel (the hyperv scsi driver, acked by the scsi maintainer).\n\n  There are also loads of cleanups, fixes, and other minor things in\n  here, all self-contained in the drivers/staging/ tree.\n\n  Overall we reversed the recent trend by adding more lines than we\n  removed:\n   379 files changed, 37952 insertions(+), 14153 deletions(-)\"\n\n* tag \u0027staging-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (360 commits)\n  staging/zmem: Use lockdep_assert_held instead of spin_is_locked\n  Staging: rtl8187se: r8180_wx.c: Cleaned up comments\n  Staging: rtl8187se: r8180_wx.c: Removed old comments\n  Staging: rtl8187se: r8180_dm.c: Removed old comments\n  Staging: android: ram_console.c:\n  Staging: rtl8187se: r8180_dm.c: Fix comments\n  Staging: rtl8187se: r8180_dm.c: Fix spacing issues\n  Staging: rtl8187se: r8180_dm.c Fixed indentation issues\n  Staging: rtl8187se: r8180_dm.c: Fix brackets\n  Staging: rtl8187se: r8180_dm.c: Removed spaces before tab stop\n  staging: vme: fix section mismatches in linux-next 20120314\n  Staging: rtl8187se: r8180_core.c: Fix some long line issues\n  Staging: rtl8187se: r8180_core.c: Fix some spacing issues\n  Staging: rtl8187se: r8180_core.c: Removed trailing spaces\n  staging: mei: remove driver internal versioning\n  Staging: rtl8187se: r8180_core.c: Cleaned up if statement\n  staging: ozwpan depends on NET\n  staging: ozwpan: added maintainer for ozwpan driver\n  staging/mei: propagate error codes up in the write flow\n  drivers:staging:mei Fix some typos in staging/mei\n  ...\n"
    },
    {
      "commit": "4a52246302f01596f0edf7b4a3e6425e23479192",
      "tree": "f384d86722d3ccfc875e3e5e8d8726e993a922ee",
      "parents": [
        "9f9d2760da8c7f94fae119fac3e13d5a1702f8f0",
        "adc80ae60eae24a43a357bf5b30fb496f34aa605"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:16:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:16:20 2012 -0700"
      },
      "message": "Merge tag \u0027driver-core-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\nPull driver core patches for 3.4-rc1 from Greg KH:\n \"Here\u0027s the big driver core merge for 3.4-rc1.\n\n  Lots of various things here, sysfs fixes/tweaks (with the nlink\n  breakage reverted), dynamic debugging updates, w1 drivers, hyperv\n  driver updates, and a variety of other bits and pieces, full\n  information in the shortlog.\"\n\n* tag \u0027driver-core-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (78 commits)\n  Tools: hv: Support enumeration from all the pools\n  Tools: hv: Fully support the new KVP verbs in the user level daemon\n  Drivers: hv: Support the newly introduced KVP messages in the driver\n  Drivers: hv: Add new message types to enhance KVP\n  regulator: Support driver probe deferral\n  Revert \"sysfs: Kill nlink counting.\"\n  uevent: send events in correct order according to seqnum (v3)\n  driver core: minor comment formatting cleanups\n  driver core: move the deferred probe pointer into the private area\n  drivercore: Add driver probe deferral mechanism\n  DS2781 Maxim Stand-Alone Fuel Gauge battery and w1 slave drivers\n  w1_bq27000: Only one thread can access the bq27000 at a time.\n  w1_bq27000 - remove w1_bq27000_write\n  w1_bq27000: remove unnecessary NULL test.\n  sysfs: Fix memory leak in sysfs_sd_setsecdata().\n  intel_idle: Revert change of auto_demotion_disable_flags for Nehalem\n  w1: Fix w1_bq27000\n  driver-core: documentation: fix up Greg\u0027s email address\n  powernow-k6: Really enable auto-loading\n  powernow-k7: Fix CPU family number\n  ...\n"
    },
    {
      "commit": "9f9d2760da8c7f94fae119fac3e13d5a1702f8f0",
      "tree": "e244a2969edceff750478e7d98355b76ef30aa0f",
      "parents": [
        "ad2a8e6078a16d3b61b530f1447110841c36ae56",
        "b222258ac11cae3e0350fe5992ad164a7b128103"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:15:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:15:18 2012 -0700"
      },
      "message": "Merge tag \u0027char-misc-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc\n\nPull char and misc patches for 3.4-rc1 from Greg KH:\n \"Not much here, just a few minor fixes and some conversions to the\n  module_*_driver() functions, making the codebase smaller.\"\n\n* tag \u0027char-misc-3.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:\n  misc: bmp085: Use unsigned long to store jiffies\n  char/ramoops: included linux/err.h twice\n  misc: bmp085: Handle jiffies overflow correctly\n  misc: fsa9480: Remove obsolete cleanup for clientdata\n  char: Fix typo in tlclk.c\n  char: Fix typo in viotape.c\n  cs5535-mfgpt: don\u0027t call __init function from __devinit\n  MISC: convert drivers/misc/* to use module_spi_driver()\n  MISC: convert drivers/misc/* to use module_i2c_driver()\n  MISC: convert drivers/misc/* to use module_platform_driver()\n"
    },
    {
      "commit": "ad2a8e6078a16d3b61b530f1447110841c36ae56",
      "tree": "f926ff62ed28c3bec8527a94b0ac5e46556e8e38",
      "parents": [
        "161f7a7161191ab9c2e97f787829ef8dd2b95771"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Mar 20 16:58:06 2012 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 11:14:38 2012 -0700"
      },
      "message": "AFS: checking wrong bit in afs_readpages()\n\nWe should be testing \"if (vnode-\u003eflags \u0026 (1 \u003c\u003c 4))\" instead of\n\"if (vnode-\u003eflags \u0026 4) {\".  The current test checks if the data was\nmodified instead of deleted.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "161f7a7161191ab9c2e97f787829ef8dd2b95771",
      "tree": "9776d3f963c7f0d247b7fb324eab4811a1302f67",
      "parents": [
        "2ba68940c893c8f0bfc8573c041254251bb6aeab",
        "a078c6d0e6288fad6d83fb6d5edd91ddb7b6ab33"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:32:09 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:32:09 2012 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer changes for v3.4 from Ingo Molnar\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)\n  ntp: Fix integer overflow when setting time\n  math: Introduce div64_long\n  cs5535-clockevt: Allow the MFGPT IRQ to be shared\n  cs5535-clockevt: Don\u0027t ignore MFGPT on SMP-capable kernels\n  x86/time: Eliminate unused irq0_irqs counter\n  clocksource: scx200_hrt: Fix the build\n  x86/tsc: Reduce the TSC sync check time for core-siblings\n  timer: Fix bad idle check on irq entry\n  nohz: Remove ts-\u003eEinidle checks before restarting the tick\n  nohz: Remove update_ts_time_stat from tick_nohz_start_idle\n  clockevents: Leave the broadcast device in shutdown mode when not needed\n  clocksource: Load the ACPI PM clocksource asynchronously\n  clocksource: scx200_hrt: Convert scx200 to use clocksource_register_hz\n  clocksource: Get rid of clocksource_calc_mult_shift()\n  clocksource: dbx500: convert to clocksource_register_hz()\n  clocksource: scx200_hrt:  use pr_\u003clevel\u003e instead of printk\n  time: Move common updates to a function\n  time: Reorder so the hot data is together\n  time: Remove most of xtime_lock usage in timekeeping.c\n  ntp: Add ntp_lock to replace xtime_locking\n  ...\n"
    },
    {
      "commit": "2ba68940c893c8f0bfc8573c041254251bb6aeab",
      "tree": "fa83ebb01d32abd98123fa28f9f6f0b3eaeee25d",
      "parents": [
        "9c2b957db1772ebf942ae7a9346b14eba6c8ca66",
        "600e145882802d6ccbfe2c4aea243d97caeb91a9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:31:44 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:31:44 2012 -0700"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler changes for v3.4 from Ingo Molnar\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)\n  printk: Make it compile with !CONFIG_PRINTK\n  sched/x86: Fix overflow in cyc2ns_offset\n  sched: Fix nohz load accounting -- again!\n  sched: Update yield() docs\n  printk/sched: Introduce special printk_sched() for those awkward moments\n  sched/nohz: Correctly initialize \u0027next_balance\u0027 in \u0027nohz\u0027 idle balancer\n  sched: Cleanup cpu_active madness\n  sched: Fix load-balance wreckage\n  sched: Clean up parameter passing of proc_sched_autogroup_set_nice()\n  sched: Ditch per cgroup task lists for load-balancing\n  sched: Rename load-balancing fields\n  sched: Move load-balancing arguments into helper struct\n  sched/rt: Do not submit new work when PI-blocked\n  sched/rt: Prevent idle task boosting\n  sched/wait: Add __wake_up_all_locked() API\n  sched/rt: Document scheduler related skip-resched-check sites\n  sched/rt: Use schedule_preempt_disabled()\n  sched/rt: Add schedule_preempt_disabled()\n  sched/rt: Do not throttle when PI boosting\n  sched/rt: Keep period timer ticking when rt throttling is active\n  ...\n"
    },
    {
      "commit": "9c2b957db1772ebf942ae7a9346b14eba6c8ca66",
      "tree": "0dbb83e57260ea7fc0dc421f214d5f1b26262005",
      "parents": [
        "0bbfcaff9b2a69c71a95e6902253487ab30cb498",
        "bea95c152dee1791dd02cbc708afbb115bb00f9a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:29:15 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:29:15 2012 -0700"
      },
      "message": "Merge branch \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf events changes for v3.4 from Ingo Molnar:\n\n - New \"hardware based branch profiling\" feature both on the kernel and\n   the tooling side, on CPUs that support it.  (modern x86 Intel CPUs\n   with the \u0027LBR\u0027 hardware feature currently.)\n\n   This new feature is basically a sophisticated \u0027magnifying glass\u0027 for\n   branch execution - something that is pretty difficult to extract from\n   regular, function histogram centric profiles.\n\n   The simplest mode is activated via \u0027perf record -b\u0027, and the result\n   looks like this in perf report:\n\n\t$ perf record -b any_call,u -e cycles:u branchy\n\n\t$ perf report -b --sort\u003dsymbol\n\t    52.34%  [.] main                   [.] f1\n\t    24.04%  [.] f1                     [.] f3\n\t    23.60%  [.] f1                     [.] f2\n\t     0.01%  [k] _IO_new_file_xsputn    [k] _IO_file_overflow\n\t     0.01%  [k] _IO_vfprintf_internal  [k] _IO_new_file_xsputn\n\t     0.01%  [k] _IO_vfprintf_internal  [k] strchrnul\n\t     0.01%  [k] __printf               [k] _IO_vfprintf_internal\n\t     0.01%  [k] main                   [k] __printf\n\n   This output shows from/to branch columns and shows the highest\n   percentage (from,to) jump combinations - i.e.  the most likely taken\n   branches in the system.  \"branches\" can also include function calls\n   and any other synchronous and asynchronous transitions of the\n   instruction pointer that are not \u0027next instruction\u0027 - such as system\n   calls, traps, interrupts, etc.\n\n   This feature comes with (hopefully intuitive) flat ascii and TUI\n   support in perf report.\n\n - Various \u0027perf annotate\u0027 visual improvements for us assembly junkies.\n   It will now recognize function calls in the TUI and by hitting enter\n   you can follow the call (recursively) and back, amongst other\n   improvements.\n\n - Multiple threads/processes recording support in perf record, perf\n   stat, perf top - which is activated via a comma-list of PIDs:\n\n\tperf top -p 21483,21485\n\tperf stat -p 21483,21485 -ddd\n\tperf record -p 21483,21485\n\n - Support for per UID views, via the --uid paramter to perf top, perf\n   report, etc.  For example \u0027perf top --uid mingo\u0027 will only show the\n   tasks that I am running, excluding other users, root, etc.\n\n - Jump label restructurings and improvements - this includes the\n   factoring out of the (hopefully much clearer) include/linux/static_key.h\n   generic facility:\n\n\tstruct static_key key \u003d STATIC_KEY_INIT_FALSE;\n\n\t...\n\n\tif (static_key_false(\u0026key))\n\t        do unlikely code\n\telse\n\t        do likely code\n\n\t...\n\tstatic_key_slow_inc();\n\t...\n\tstatic_key_slow_inc();\n\t...\n\n   The static_key_false() branch will be generated into the code with as\n   little impact to the likely code path as possible.  the\n   static_key_slow_*() APIs flip the branch via live kernel code patching.\n\n   This facility can now be used more widely within the kernel to\n   micro-optimize hot branches whose likelihood matches the static-key\n   usage and fast/slow cost patterns.\n\n - SW function tracer improvements: perf support and filtering support.\n\n - Various hardenings of the perf.data ABI, to make older perf.data\u0027s\n   smoother on newer tool versions, to make new features integrate more\n   smoothly, to support cross-endian recording/analyzing workflows\n   better, etc.\n\n - Restructuring of the kprobes code, the splitting out of \u0027optprobes\u0027,\n   and a corner case bugfix.\n\n - Allow the tracing of kernel console output (printk).\n\n - Improvements/fixes to user-space RDPMC support, allowing user-space\n   self-profiling code to extract PMU counts without performing any\n   system calls, while playing nice with the kernel side.\n\n - \u0027perf bench\u0027 improvements\n\n - ... and lots of internal restructurings, cleanups and fixes that made\n   these features possible.  And, as usual this list is incomplete as\n   there were also lots of other improvements\n\n* \u0027perf-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (120 commits)\n  perf report: Fix annotate double quit issue in branch view mode\n  perf report: Remove duplicate annotate choice in branch view mode\n  perf/x86: Prettify pmu config literals\n  perf report: Enable TUI in branch view mode\n  perf report: Auto-detect branch stack sampling mode\n  perf record: Add HEADER_BRANCH_STACK tag\n  perf record: Provide default branch stack sampling mode option\n  perf tools: Make perf able to read files from older ABIs\n  perf tools: Fix ABI compatibility bug in print_event_desc()\n  perf tools: Enable reading of perf.data files from different ABI rev\n  perf: Add ABI reference sizes\n  perf report: Add support for taken branch sampling\n  perf record: Add support for sampling taken branch\n  perf tools: Add code to support PERF_SAMPLE_BRANCH_STACK\n  x86/kprobes: Split out optprobe related code to kprobes-opt.c\n  x86/kprobes: Fix a bug which can modify kernel code permanently\n  x86/kprobes: Fix instruction recovery on optimized path\n  perf: Add callback to flush branch_stack on context switch\n  perf: Disable PERF_SAMPLE_BRANCH_* when not supported\n  perf/x86: Add LBR software filter support for Intel CPUs\n  ...\n"
    },
    {
      "commit": "0bbfcaff9b2a69c71a95e6902253487ab30cb498",
      "tree": "f422bbfb8ba57909bf6e43f1d560b3f056cc3c61",
      "parents": [
        "5928a2b60cfdbad730f93696acab142d0b607280",
        "e04268b0effc0ceea366c50b3107baad9edadafa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:28:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:28:56 2012 -0700"
      },
      "message": "Merge branch \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull irq/core changes for v3.4 from Ingo Molnar\n\n* \u0027irq-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  genirq: Remove paranoid warnons and bogus fixups\n  genirq: Flush the irq thread on synchronization\n  genirq: Get rid of unnecessary IRQTF_DIED flag\n  genirq: No need to check IRQTF_DIED before stopping a thread handler\n  genirq: Get rid of unnecessary irqaction field in task_struct\n  genirq: Fix incorrect check for forced IRQ thread handler\n  softirq: Reduce invoke_softirq() code duplication\n  genirq: Fix long-term regression in genirq irq_set_irq_type() handling\n  x86-32/irq: Don\u0027t switch to irq stack for a user-mode irq\n"
    },
    {
      "commit": "5928a2b60cfdbad730f93696acab142d0b607280",
      "tree": "49bb21c9219673e61bad7a7c9202c7f25f5fe1be",
      "parents": [
        "5ed59af85077d28875a3a137b21933aaf1b4cd50",
        "bdd4431c8d071491a68a65d9457996f222b5ecd3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Mar 19 17:12:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 20 10:10:18 2012 -0700"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull RCU changes for v3.4 from Ingo Molnar.  The major features of this\nseries are:\n\n - making RCU more aggressive about entering dyntick-idle mode in order\n   to improve energy efficiency\n\n - converting a few more call_rcu()s to kfree_rcu()s\n\n - applying a number of rcutree fixes and cleanups to rcutiny\n\n - removing CONFIG_SMP #ifdefs from treercu\n\n - allowing RCU CPU stall times to be set via sysfs\n\n - adding CPU-stall capability to rcutorture\n\n - adding more RCU-abuse diagnostics\n\n - updating documentation\n\n - fixing yet more issues located by the still-ongoing top-to-bottom\n   inspection of RCU, this time with a special focus on the CPU-hotplug\n   code path.\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)\n  rcu: Stop spurious warnings from synchronize_sched_expedited\n  rcu: Hold off RCU_FAST_NO_HZ after timer posted\n  rcu: Eliminate softirq-mediated RCU_FAST_NO_HZ idle-entry loop\n  rcu: Add RCU_NONIDLE() for idle-loop RCU read-side critical sections\n  rcu: Allow nesting of rcu_idle_enter() and rcu_idle_exit()\n  rcu: Remove redundant check for rcu_head misalignment\n  PTR_ERR should be called before its argument is cleared.\n  rcu: Convert WARN_ON_ONCE() in rcu_lock_acquire() to lockdep\n  rcu: Trace only after NULL-pointer check\n  rcu: Call out dangers of expedited RCU primitives\n  rcu: Rework detection of use of RCU by offline CPUs\n  lockdep: Add CPU-idle/offline warning to lockdep-RCU splat\n  rcu: No interrupt disabling for rcu_prepare_for_idle()\n  rcu: Move synchronize_sched_expedited() to rcutree.c\n  rcu: Check for illegal use of RCU from offlined CPUs\n  rcu: Update stall-warning documentation\n  rcu: Add CPU-stall capability to rcutorture\n  rcu: Make documentation give more realistic rcutorture duration\n  rcutorture: Permit holding off CPU-hotplug operations during boot\n  rcu: Print scheduling-clock information on RCU CPU stall-warning messages\n  ...\n"
    },
    {
      "commit": "317b6e128247f75976b0fc2b9fd8d2c20ef13b3a",
      "tree": "f3f7efdde10506766211d479faa69586ac0f81bb",
      "parents": [
        "a24401bcf4a67c8fe17e649e74eeb09b08b79ef5"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Sat Nov 26 11:12:30 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:30 2012 +0800"
      },
      "message": "feature-removal-schedule.txt: schedule the deprecated form of kmap_atomic() for removal\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "a24401bcf4a67c8fe17e649e74eeb09b08b79ef5",
      "tree": "c4b1be87e0a63057e85ae82076d54c437313b1f8",
      "parents": [
        "589973a7042f5a91a5b8bf78a32c97ae073e2c72"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Sat Nov 26 10:53:39 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:30 2012 +0800"
      },
      "message": "highmem: kill all __kmap_atomic()\n[swarren@nvidia.com: highmem: Fix ARM build break due to __kmap_atomic rename]\n\nSigned-off-by: Stephen Warren \u003cswarren@nvidia.com\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "589973a7042f5a91a5b8bf78a32c97ae073e2c72",
      "tree": "1cc3f936ac3eca68dddb054bd1b75dc1a2b77a85",
      "parents": [
        "97d5dd121c3304c65326f1ce9f04f7d0161827bc"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:51:58 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:29 2012 +0800"
      },
      "message": "drbd: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "97d5dd121c3304c65326f1ce9f04f7d0161827bc",
      "tree": "30c6d241fcb29a89ed62241ef97663b572b19d3e",
      "parents": [
        "f0c5b592a5fbc7478fde6d0f84022e6bec9a4302"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:50:19 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:29 2012 +0800"
      },
      "message": "zcache: remove the second argument of k[un]map_atomic()\n\nAcked-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "f0c5b592a5fbc7478fde6d0f84022e6bec9a4302",
      "tree": "2588e8c780bf95a9c024f7127f07284509a4d9ca",
      "parents": [
        "c2e022cb654fa6595238dc52311a85e6444da1f7"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:46:51 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:29 2012 +0800"
      },
      "message": "gma500: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "c2e022cb654fa6595238dc52311a85e6444da1f7",
      "tree": "f3dba0008bb940e3b8c6fcd81b0f29004de06c1c",
      "parents": [
        "c58e0377d61e209600def7d4d9ae535ea94bc210"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Mon Nov 28 13:26:02 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:28 2012 +0800"
      },
      "message": "dm: remove the second argument of k[un]map_atomic()\n\nAcked-by: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "c58e0377d61e209600def7d4d9ae535ea94bc210",
      "tree": "142d1ca23d06458c8b798174e01281ad67b2ab76",
      "parents": [
        "b85417860172ff693dc115d7999805fc240cec1c"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:26:35 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:28 2012 +0800"
      },
      "message": "tomoyo: remove the second argument of k[un]map_atomic()\n\nAcked-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "b85417860172ff693dc115d7999805fc240cec1c",
      "tree": "e7f1c8ac18958e7bcb9182caa8639104384e44f9",
      "parents": [
        "6114eab535ab49239e0a6ce08eb9243664aef993"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:40 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:28 2012 +0800"
      },
      "message": "sunrpc: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "6114eab535ab49239e0a6ce08eb9243664aef993",
      "tree": "cb699cfc9f29eb80105f6513fc4679b5ade5df46",
      "parents": [
        "0352bc550cfa536e4fa2c0e906359bcd5687afff"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:40 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:28 2012 +0800"
      },
      "message": "rds: remove the second argument of k[un]map_atomic()\n\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "0352bc550cfa536e4fa2c0e906359bcd5687afff",
      "tree": "feab743c3daede9642cde40c2f4e5e429b0652f8",
      "parents": [
        "9b04c5fec43c0da610a2c37f70c5b013101a6ad7"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:39 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:27 2012 +0800"
      },
      "message": "net: remove the second argument of k[un]map_atomic()\n\nAcked-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "9b04c5fec43c0da610a2c37f70c5b013101a6ad7",
      "tree": "f04767281b7067fba91cf0d37440bf454c492e38",
      "parents": [
        "c3eede8e0a1292d95c051cf947738687b9c42322"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:39 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:27 2012 +0800"
      },
      "message": "mm: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "c3eede8e0a1292d95c051cf947738687b9c42322",
      "tree": "2c49ee2ddfa1115b45c72cc995f7b6503ea55b64",
      "parents": [
        "0de9a1e28a0d005f42c8cc5456a246710133b9ab"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:39 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:27 2012 +0800"
      },
      "message": "lib: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "0de9a1e28a0d005f42c8cc5456a246710133b9ab",
      "tree": "89914affb67e9884ab13e15eb9ce79bfe1a3a13c",
      "parents": [
        "d762a50b5b1bb93e91cb3cd90b6ae133da98fe31"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:38 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:26 2012 +0800"
      },
      "message": "power: remove the second argument of k[un]map_atomic()\n\nAcked-by: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "d762a50b5b1bb93e91cb3cd90b6ae133da98fe31",
      "tree": "8d60c2041cb5f76a86de83eb109735fa105c6567",
      "parents": [
        "7c0fb227529102d38603c0afc76a2c18a7581afa"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:38 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:26 2012 +0800"
      },
      "message": "kdb: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "7c0fb227529102d38603c0afc76a2c18a7581afa",
      "tree": "b76f2f1dd3285622afa22d4e366449ad62ba81b3",
      "parents": [
        "a1c7c13783c9d2d1d67f53c49dc4eaf34811a290"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:36 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:26 2012 +0800"
      },
      "message": "udf: remove the second argument of k[un]map_atomic()\n\nAcked-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "a1c7c13783c9d2d1d67f53c49dc4eaf34811a290",
      "tree": "6699f175d1b5ec915ed82f243badf57f543ed01d",
      "parents": [
        "53b55e55893fbce8d78caeb22e17a28d909a2132"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:36 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:26 2012 +0800"
      },
      "message": "ubifs: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "53b55e55893fbce8d78caeb22e17a28d909a2132",
      "tree": "e884fec0becc6816a768bed778b857644104dc0d",
      "parents": [
        "883da600b00eb6fa9f8db5687759732b3c6dd357"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:36 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:25 2012 +0800"
      },
      "message": "squashfs: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "883da600b00eb6fa9f8db5687759732b3c6dd357",
      "tree": "ed044e2192aa10add56cb4b0c2ce7007f5bba8ce",
      "parents": [
        "c4bc8dcbbe7a7876d76e3f3e129a2ccec46d7cdb"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:35 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:25 2012 +0800"
      },
      "message": "reiserfs: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "c4bc8dcbbe7a7876d76e3f3e129a2ccec46d7cdb",
      "tree": "9412b6e44738d25b35c88887489f4dd915c564f9",
      "parents": [
        "a3ac1414eb601136ba3475e841fe76ccbab5e88d"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:34 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:25 2012 +0800"
      },
      "message": "ocfs2: remove the second argument of k[un]map_atomic()\n\nAcked-by: Joel Becker \u003cjlbec@evilplan.org\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "a3ac1414eb601136ba3475e841fe76ccbab5e88d",
      "tree": "ee27d35f853aa892c58e9fb1846c4dac7e29b68d",
      "parents": [
        "7b9c0976ac5e549feb1d4731bc76b9acf9ac47a8"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:34 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:25 2012 +0800"
      },
      "message": "ntfs: remove the second argument of k[un]map_atomic()\n\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    },
    {
      "commit": "7b9c0976ac5e549feb1d4731bc76b9acf9ac47a8",
      "tree": "50cf70108a1530cc51bab9dda8306abb4e5ad04c",
      "parents": [
        "2b86ce2db3349f5c2af81769c2596ee0d5a63a47"
      ],
      "author": {
        "name": "Cong Wang",
        "email": "amwang@redhat.com",
        "time": "Fri Nov 25 23:14:33 2011 +0800"
      },
      "committer": {
        "name": "Cong Wang",
        "email": "xiyou.wangcong@gmail.com",
        "time": "Tue Mar 20 21:48:24 2012 +0800"
      },
      "message": "nilfs2: remove the second argument of k[un]map_atomic()\n\nAcked-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\u003e\nSigned-off-by: Cong Wang \u003camwang@redhat.com\u003e\n"
    }
  ],
  "next": "2b86ce2db3349f5c2af81769c2596ee0d5a63a47"
}
