)]}'
{
  "log": [
    {
      "commit": "4fa6b5ecbf092c6ee752ece8a55d71f663d23254",
      "tree": "6143912dc73b457a3be72faf31d46d855d3f87c3",
      "parents": [
        "e3d6b07b8ba161f638b026feba0c3c97875d7f1c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:25 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:03 2012 -0400"
      },
      "message": "audit: overhaul __audit_inode_child to accomodate retrying\n\nIn order to accomodate retrying path-based syscalls, we need to add a\nnew \"type\" argument to audit_inode_child. This will tell us whether\nwe\u0027re looking for a child entry that represents a create or a delete.\n\nIf we find a parent, don\u0027t automatically assume that we need to create a\nnew entry. Instead, use the information we have to try to find an\nexisting entry first. Update it if one is found and create a new one if\nnot.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bfcec7087458812f575d9022b2d151641f34ee84",
      "tree": "6c0f7dd3b016992da8d113ceeaae404c6abc03a1",
      "parents": [
        "78e2e802a8519031e5858595070b39713e26340d"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:23 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:01 2012 -0400"
      },
      "message": "audit: set the name_len in audit_inode for parent lookups\n\nCurrently, this gets set mostly by happenstance when we call into\naudit_inode_child. While that might be a little more efficient, it seems\nwrong. If the syscall ends up failing before audit_inode_child ever gets\ncalled, then you\u0027ll have an audit_names record that shows the full path\nbut has the parent inode info attached.\n\nFix this by passing in a parent flag when we call audit_inode that gets\nset to the value of LOOKUP_PARENT. We can then fix up the pathname for\nthe audit entry correctly from the get-go.\n\nWhile we\u0027re at it, clean up the no-op macro for audit_inode in the\n!CONFIG_AUDITSYSCALL case.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "78e2e802a8519031e5858595070b39713e26340d",
      "tree": "92f79d2039f4119a127ab59e31a2d1c9dfb892fe",
      "parents": [
        "c43a25abba97c7d87131e71db6be24b24d7791a5"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:22 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:00 2012 -0400"
      },
      "message": "audit: add a new \"type\" field to audit_names struct\n\nFor now, we just have two possibilities:\n\nUNKNOWN: for a new audit_names record that we don\u0027t know anything about yet\nNORMAL: for everything else\n\nIn later patches, we\u0027ll add other types so we can distinguish and update\nrecords created under different circumstances.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c43a25abba97c7d87131e71db6be24b24d7791a5",
      "tree": "0fe959853254064e17805ca111838e7869720e43",
      "parents": [
        "9cec9d68ae53aae60b4a1fca4505c75a1d026392"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Wed Oct 10 15:25:21 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 12 00:32:00 2012 -0400"
      },
      "message": "audit: reverse arguments to audit_inode_child\n\nMost of the callers get called with an inode and dentry in the reverse\norder. The compiler then has to reshuffle the arg registers and/or\nstack in order to pass them on to audit_inode_child.\n\nReverse those arguments for a micro-optimization.\n\nReported-by: Eric Paris \u003ceparis@redhat.com\u003e\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "79360ddd73dfe9a26f49ef4e27b8c26612929b0e",
      "tree": "a8b0d226e0d83ea4e3a8c27b091a7121dbb9638b",
      "parents": [
        "8213a2f3eeafdecf06dd718cb4130372263f6067",
        "98f6ef64b15a48f15062aff5d143b5d9a6ae7711"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 10:52:03 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 10:52:03 2012 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull pile 2 of vfs updates from Al Viro:\n \"Stuff in this one - assorted fixes, lglock tidy-up, death to\n  lock_super().\n\n  There\u0027ll be a VFS pile tomorrow (with patches from Jeff Layton,\n  sanitizing getname() and related parts of audit and preparing for\n  ESTALE fixes), but I\u0027d rather push the stuff in this one ASAP - some\n  of the bugs closed here are quite unpleasant.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  vfs: bogus warnings in fs/namei.c\n  consitify do_mount() arguments\n  lglock: add DEFINE_STATIC_LGLOCK()\n  lglock: make the per_cpu locks static\n  lglock: remove unused DEFINE_LGLOCK_LOCKDEP()\n  MAX_LFS_FILESIZE definition for 64bit needs LL...\n  tmpfs,ceph,gfs2,isofs,reiserfs,xfs: fix fh_len checking\n  vfs: drop lock/unlock super\n  ufs: drop lock/unlock super\n  sysv: drop lock/unlock super\n  hpfs: drop lock/unlock super\n  fat: drop lock/unlock super\n  ext3: drop lock/unlock super\n  exofs: drop lock/unlock super\n  dup3: Return an error when oldfd \u003d\u003d newfd.\n  fs: handle failed audit_log_start properly\n  fs: prevent use after free in auditing when symlink following was denied\n"
    },
    {
      "commit": "ae3e4628287de0ab90545c14076657aeee38506b",
      "tree": "a846e66dc3fd31e093f2f0a3965534e2d299013f",
      "parents": [
        "5f76945a9c978b8b8bf8eb7fe3b17b9981240a97",
        "415c2c525fab214ab75413aadbc67b4ee9cf212e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 10:27:27 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 12 10:27:27 2012 +0900"
      },
      "message": "Merge branch \u0027kbuild\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild\n\nPull kbuild changes from Michal Marek:\n \"The main part of kbuild for v3.7 contains:\n   - Fix for scripts/Makefile.modpost to not choke on a \u0027.ko\u0027 substring\n     in the build directory path\n   - Two warning fixes (modpost and main Makefile)\n   - __compiletime_error works also with gcc 4.3\n   - make tar{gz,bz2,xz}-pkg uses default compression settings instead\n     of saving as many bytes as possible (this should actually be in the\n     misc branch, I don\u0027t know why I applied it here).\"\n\n* \u0027kbuild\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:\n  compiler-gcc4.h: correct verion check for __compiletime_error\n  modpost: Permit .GCC.command.line sections\n  Kbuild: use normal compression settings for tar*-pkg\n  scripts/Makefile.modpost: error in finding modules from .mod files.\n  kbuild: Remove useless warning while appending KCFLAGS\n"
    },
    {
      "commit": "808d4e3cfdcc52b19276175464f6dbca4df13b09",
      "tree": "11c319127e8c1314c1ed1a777e4284032ab5bd00",
      "parents": [
        "4b2c551f77f5a0c496e2125b1d883f4b26aabf2c"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 11 11:42:01 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 11 20:02:04 2012 -0400"
      },
      "message": "consitify do_mount() arguments\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "415c2c525fab214ab75413aadbc67b4ee9cf212e",
      "tree": "35a336c2ff5adf55e66c6144dd14fa77d89dcbb3",
      "parents": [
        "76b27645a5bba85bd26896811c7a25ecc37b3731"
      ],
      "author": {
        "name": "Daniel Santos",
        "email": "daniel.santos@pobox.com",
        "time": "Fri Sep 28 18:20:02 2012 -0500"
      },
      "committer": {
        "name": "Michal Marek",
        "email": "mmarek@suse.cz",
        "time": "Thu Oct 11 22:51:41 2012 +0200"
      },
      "message": "compiler-gcc4.h: correct verion check for __compiletime_error\n\n__attribute__((error(msg))) was introduced in gcc 4.3 (not 4.4) and as I\nwas unable to find any gcc bugs pertaining to it, I\u0027m presuming that it\nhas functioned as advertised since 4.3.0.\n\nSigned-off-by: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nTested-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Michal Marek \u003cmmarek@suse.cz\u003e\n"
    },
    {
      "commit": "12250d843e8489ee00b5b7726da855e51694e792",
      "tree": "905d1577a3d91cf9906628dd65648b0006c1893f",
      "parents": [
        "da06a8d7bed2f3bfc12979384b2d1247ec4873db",
        "62885f59a26195d9f6a3f8c795225dfbab62a110"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 10:27:51 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 10:27:51 2012 +0900"
      },
      "message": "Merge branch \u0027i2c-embedded/for-next\u0027 of git://git.pengutronix.de/git/wsa/linux\n\nPull i2c-embedded changes from Wolfram Sang:\n \"The changes for i2c-embedded include:\n\n   - massive rework of the omap driver\n   - massive rework of the at91 driver.  In fact, the old driver gets\n     removed; I am okay with this approach since the old driver was\n     depending on BROKEN and its limitations made it practically\n     unusable, so people used bitbanging instead.  But even if there are\n     users, there is no platform_data or module parameter which would\n     need to be converted.  It is just another driver doing I2C\n     transfers, just way better.  Modifications of arch/arm/at91 related\n     files have proper acks from the maintainer.\n   - new driver for R-Car I2C\n   - devicetree and generic_clock conversions and fixes\n   - usual driver fixes and changes.\n\n  The rework patches have come a long way and lots of people have been\n  involved in creating/testing them.  Most patches have been in\n  linux-next at least since 3.6-rc5.  A few have been added in the last\n  week, I have to admit.\n\n  An unexpected (but welcome :)) peak in private life is the cause for\n  that.  The \"late\" patches shouldn\u0027t cause any merge conflicts and I\n  will have a special eye on them during the stabilization phase.  This\n  is an exception and I want to have the patches in place properly in\n  time again for the next kernels.\"\n\n* \u0027i2c-embedded/for-next\u0027 of git://git.pengutronix.de/git/wsa/linux: (44 commits)\n  MXS: Implement DMA support into mxs-i2c\n  i2c: add Renesas R-Car I2C driver\n  i2c: s3c2410: use clk_prepare_enable and clk_disable_unprepare\n  ARM: OMAP: convert I2C driver to PM QoS for MPU latency constraints\n  i2c: nomadik: Add Device Tree support to the Nomadik I2C driver\n  i2c: algo: pca: Fix chip reset function for PCA9665\n  i2c: mpc: Wait for STOP to hit the bus\n  i2c: davinci: preparation for switch to common clock framework\n  omap-i2c: fix incorrect log message when using a device tree\n  i2c: omap: sanitize exit path\n  i2c: omap: switch over to autosuspend API\n  i2c: omap: remove unnecessary pm_runtime_suspended check\n  i2c: omap: switch to threaded IRQ support\n  i2c: omap: remove redundant status read\n  i2c: omap: get rid of the \"complete\" label\n  i2c: omap: resize fifos before each message\n  i2c: omap: simplify IRQ exit path\n  i2c: omap: always return IRQ_HANDLED\n  i2c: omap: simplify errata check\n  i2c: omap: bus: add a receiver flag\n  ...\n"
    },
    {
      "commit": "14ffe009ca60856555df3aec942239d8beed74d3",
      "tree": "b5639c028c996a6907ac0cf6e9f0175398a3a62b",
      "parents": [
        "ce40be7a820bb393ac4ac69865f018d2f4038cf0",
        "ec073619cdda99ffb6a07d3b8000569f5210815a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 10:14:16 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 10:14:16 2012 +0900"
      },
      "message": "Merge branch \u0027akpm\u0027 (Fixups from Andrew)\n\nMerge misc fixes from Andrew Morton:\n \"Followups, fixes and some random stuff I found on the internet.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (11 patches)\n  perf: fix duplicate header inclusion\n  memcg, kmem: fix build error when CONFIG_INET is disabled\n  rtc: kconfig: fix RTC_INTF defaults connected to RTC_CLASS\n  rapidio: fix comment\n  lib/kasprintf.c: use kmalloc_track_caller() to get accurate traces for kvasprintf\n  rapidio: update for destination ID allocation\n  rapidio: update asynchronous discovery initialization\n  rapidio: use msleep in discovery wait\n  mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip()\n  arch/powerpc/platforms/pseries/hotplug-memory.c: section removal cleanups\n  arch/powerpc/platforms/pseries/hotplug-memory.c: fix section handling code\n"
    },
    {
      "commit": "ce40be7a820bb393ac4ac69865f018d2f4038cf0",
      "tree": "b1fe5a93346eb06f22b1c303d63ec5456d7212ab",
      "parents": [
        "ba0a5a36f60e4c1152af3a2ae2813251974405bf",
        "02f3939e1a9357b7c370a4a69717cf9c02452737"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 09:04:23 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 09:04:23 2012 +0900"
      },
      "message": "Merge branch \u0027for-3.7/core\u0027 of git://git.kernel.dk/linux-block\n\nPull block IO update from Jens Axboe:\n \"Core block IO bits for 3.7.  Not a huge round this time, it contains:\n\n   - First series from Kent cleaning up and generalizing bio allocation\n     and freeing.\n\n   - WRITE_SAME support from Martin.\n\n   - Mikulas patches to prevent O_DIRECT crashes when someone changes\n     the block size of a device.\n\n   - Make bio_split() work on data-less bio\u0027s (like trim/discards).\n\n   - A few other minor fixups.\"\n\nFixed up silent semantic mis-merge as per Mikulas Patocka and Andrew\nMorton.  It is due to the VM no longer using a prio-tree (see commit\n6b2dbba8b6ac: \"mm: replace vma prio_tree with an interval tree\").\n\nSo make set_blocksize() use mapping_mapped() instead of open-coding the\ninternal VM knowledge that has changed.\n\n* \u0027for-3.7/core\u0027 of git://git.kernel.dk/linux-block: (26 commits)\n  block: makes bio_split support bio without data\n  scatterlist: refactor the sg_nents\n  scatterlist: add sg_nents\n  fs: fix include/percpu-rwsem.h export error\n  percpu-rw-semaphore: fix documentation typos\n  fs/block_dev.c:1644:5: sparse: symbol \u0027blkdev_mmap\u0027 was not declared\n  blockdev: turn a rw semaphore into a percpu rw semaphore\n  Fix a crash when block device is read and block size is changed at the same time\n  block: fix request_queue-\u003eflags initialization\n  block: lift the initial queue bypass mode on blk_register_queue() instead of blk_init_allocated_queue()\n  block: ioctl to zero block ranges\n  block: Make blkdev_issue_zeroout use WRITE SAME\n  block: Implement support for WRITE SAME\n  block: Consolidate command flag and queue limit checks for merges\n  block: Clean up special command handling logic\n  block/blk-tag.c: Remove useless kfree\n  block: remove the duplicated setting for congestion_threshold\n  block: reject invalid queue attribute values\n  block: Add bio_clone_bioset(), bio_clone_kmalloc()\n  block: Consolidate bio_alloc_bioset(), bio_kmalloc()\n  ...\n"
    },
    {
      "commit": "cd59085a9b89585f20b4765f74c04e8c527f09f2",
      "tree": "bc3c7f4b4343d1e74a1f54b17d25069bf62ca3e9",
      "parents": [
        "8dc0839510ed4a7c594386ef58446b014fb4c27a"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Oct 10 15:54:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 08:50:16 2012 +0900"
      },
      "message": "memcg, kmem: fix build error when CONFIG_INET is disabled\n\nCommit e1aab161e013 (\"socket: initial cgroup code.\") causes a build\nerror when CONFIG_INET is disabled in Linus\u0027 tree:\n\n  net/built-in.o: In function `sk_update_clone\u0027:\n  net/core/sock.c:1336: undefined reference to `sock_update_memcg\u0027\n\nsock_update_memcg() is only defined when CONFIG_INET is enabled, so fix\nit by defining the dummy function without this option.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Fengguang Wu \u003cfengguang.wu@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": "fdb8d561e6fb8538e320554b991ed183b19ddc83",
      "tree": "406ccd11ba5d6e5d55d5df99642ab6f95f7f4622",
      "parents": [
        "3e1aa66bd423950aa69c3d50d91818af1d16e0a7"
      ],
      "author": {
        "name": "Chad Reese",
        "email": "kreese@caviumnetworks.com",
        "time": "Wed Oct 10 15:54:05 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 08:50:16 2012 +0900"
      },
      "message": "rapidio: fix comment\n\nThe resource index for the mailboxes was incorrect.\n\nSigned-off-by: Chad Reese \u003ckreese@caviumnetworks.com\u003e\nAcked-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4ed134beee42a5c9fc4b439f1e498363066e2516",
      "tree": "d2d2dc5515f15c19b0a51882e656176f9d72aef1",
      "parents": [
        "2574740d1fe946803caa6b0c06fbb4bf397af35d"
      ],
      "author": {
        "name": "Alexandre Bounine",
        "email": "alexandre.bounine@idt.com",
        "time": "Wed Oct 10 15:54:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 08:50:15 2012 +0900"
      },
      "message": "rapidio: update for destination ID allocation\n\nAddress comments provided by Andrew Morton:\nhttps://lkml.org/lkml/2012/10/3/550\n\n - Keeps consistent kerneldoc compatible comments style for new static\n   functions.\n - Removes unnecessary complexity from destination ID allocation\n   routine.\n - Uses kcalloc() for code clarity.\n\nSigned-off-by: Alexandre Bounine \u003calexandre.bounine@idt.com\u003e\nCc: Matt Porter \u003cmporter@kernel.crashing.org\u003e\nCc: Li Yang \u003cleoli@freescale.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "627260595ca6abcb16d68a3732bac6b547e112d6",
      "tree": "e129ac3500e1636f6b1e2ffaf3cd1443557af32c",
      "parents": [
        "1633dbbacbaa3a2f95ef901caf9d0b32728c10b6"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "b.zolnierkie@samsung.com",
        "time": "Wed Oct 10 15:53:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 11 08:50:14 2012 +0900"
      },
      "message": "mm: compaction: fix bit ranges in {get,clear,set}_pageblock_skip()\n\n{get,clear,set}_pageblock_skip() use incorrect bit ranges (please compare\nto bit ranges used by {get,set}_pageblock_flags() used for migration\ntypes) and can overwrite pageblock migratetype of the next pageblock in\nthe bitmap.\n\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nTested-by: Thierry Reding \u003cthierry.reding@avionic-design.de\u003e\nAcked-by: Minchan Kim \u003cminchan@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": "df632d3ce7eacf92ad9b642301c7b53a1d95b8d8",
      "tree": "848c39ed4f7cfdb582bf2e0a0a03147efaa5198d",
      "parents": [
        "2474542f64432398f503373f53bdf620491bcfa8",
        "af283885b70248268617955a5ea5476647bd556b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 23:52:35 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 23:52:35 2012 +0900"
      },
      "message": "Merge tag \u0027nfs-for-3.7-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs\n\nPull NFS client updates from Trond Myklebust:\n \"Features include:\n\n   - Remove CONFIG_EXPERIMENTAL dependency from NFSv4.1\n     Aside from the issues discussed at the LKS, distros are shipping\n     NFSv4.1 with all the trimmings.\n   - Fix fdatasync()/fsync() for the corner case of a server reboot.\n   - NFSv4 OPEN access fix: finally distinguish correctly between\n     open-for-read and open-for-execute permissions in all situations.\n   - Ensure that the TCP socket is closed when we\u0027re in CLOSE_WAIT\n   - More idmapper bugfixes\n   - Lots of pNFS bugfixes and cleanups to remove unnecessary state and\n     make the code easier to read.\n   - In cases where a pNFS read or write fails, allow the client to\n     resume trying layoutgets after two minutes of read/write-\n     through-mds.\n   - More net namespace fixes to the NFSv4 callback code.\n   - More net namespace fixes to the NFSv3 locking code.\n   - More NFSv4 migration preparatory patches.\n     Including patches to detect network trunking in both NFSv4 and\n     NFSv4.1\n   - pNFS block updates to optimise LAYOUTGET calls.\"\n\n* tag \u0027nfs-for-3.7-1\u0027 of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (113 commits)\n  pnfsblock: cleanup nfs4_blkdev_get\n  NFS41: send real read size in layoutget\n  NFS41: send real write size in layoutget\n  NFS: track direct IO left bytes\n  NFSv4.1: Cleanup ugliness in pnfs_layoutgets_blocked()\n  NFSv4.1: Ensure that the layout sequence id stays \u0027close\u0027 to the current\n  NFSv4.1: Deal with seqid wraparound in the pNFS return-on-close code\n  NFSv4 set open access operation call flag in nfs4_init_opendata_res\n  NFSv4.1: Remove the dependency on CONFIG_EXPERIMENTAL\n  NFSv4 reduce attribute requests for open reclaim\n  NFSv4: nfs4_open_done first must check that GETATTR decoded a file type\n  NFSv4.1: Deal with wraparound when updating the layout \"barrier\" seqid\n  NFSv4.1: Deal with wraparound issues when updating the layout stateid\n  NFSv4.1: Always set the layout stateid if this is the first layoutget\n  NFSv4.1: Fix another refcount issue in pnfs_find_alloc_layout\n  NFSv4: don\u0027t put ACCESS in OPEN compound if O_EXCL\n  NFSv4: don\u0027t check MAY_WRITE access bit in OPEN\n  NFS: Set key construction data for the legacy upcall\n  NFSv4.1: don\u0027t do two EXCHANGE_IDs on mount\n  NFS: nfs41_walk_client_list(): re-lock before iterating\n  ...\n"
    },
    {
      "commit": "2474542f64432398f503373f53bdf620491bcfa8",
      "tree": "3c9744b138c2158757530814b35c23eed31cf6ce",
      "parents": [
        "c7a6ced9d8e8411bdafe83998474d185a79badc3",
        "85f8879ca4f3d26a7f473522101fb74a79bda3f2"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 20:15:24 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 20:15:24 2012 +0900"
      },
      "message": "Merge tag \u0027for-3.7-rc1\u0027 of git://gitorious.org/linux-pwm/linux-pwm\n\nPull pwm changes from Thierry Reding:\n \"All legacy PWM providers have now been moved to the PWM subsystem.\n  The plan for 3.8 is to adapt all board files to provide a lookup table\n  for PWM devices in order to get rid of the global namespace.\n  Subsequently, users of the legacy pwm_request() and pwm_free()\n  functions can be migrated to the new pwm_get() and pwm_put()\n  functions.  Once this has been completed, the legacy API and the\n  compatibility code in the core can be removed.\n\n  In addition to the above, these changes also add support for\n  configuring the polarity of a PWM signal (currently only supported on\n  ECAP and EHRPWM) and include a much needed rework of the i.MX driver.\n  Managed functions to obtain and release a PWM device (devm_pwm_get()\n  and devm_pwm_put()) have been added and the pwm-backlight driver has\n  been updated to use them.  If the PWM subsystem hasn\u0027t been enabled,\n  dummy functions are provided that allow the subsystem to safely\n  compile out.\n\n  Some common checks on input parameters have been moved to the core and\n  removed from the drivers.  Finally, a small fix corrects the\n  description of the PWM specifier\u0027s second cell in the device tree\n  representation.\"\n\n* tag \u0027for-3.7-rc1\u0027 of git://gitorious.org/linux-pwm/linux-pwm: (23 commits)\n  pwm: dt: Fix description of second PWM cell\n  pwm: Check for negative duty-cycle and period\n  pwm: Add Ingenic JZ4740 support\n  MIPS: JZ4740: Export timer API\n  pwm: Move PUV3 PWM driver to PWM framework\n  unicore32: pwm: Use managed resource allocations\n  unicore32: pwm: Remove unnecessary indirection\n  unicore32: pwm: Use module_platform_driver()\n  unicore32: pwm: Properly remap memory-mapped registers\n  pwm-backlight: Use devm_pwm_get() instead of pwm_get()\n  pwm: Move AB8500 PWM driver to PWM framework\n  pwm: Fix compilation error when CONFIG_PWM is not defined\n  pwm: i.MX: fix clock lookup\n  pwm: i.MX: use per clock unconditionally\n  pwm: i.MX: add devicetree support\n  pwm: i.MX: Use module_platform_driver\n  pwm: i.MX: add functions to enable/disable pwm.\n  pwm: i.MX: remove unnecessary if in pwm_[en|dis]able\n  pwm: i.MX: factor out SoC specific functions\n  pwm: pwm-tiehrpwm: Add support for configuring polarity of PWM\n  ...\n"
    },
    {
      "commit": "c7a6ced9d8e8411bdafe83998474d185a79badc3",
      "tree": "bf9a230bfc99165b9d8fa9ed9fc453619bd4a9fb",
      "parents": [
        "a188e7e93a36627fb3f0013f41857ab54f076d04",
        "2f73c3927318abe3d7fcaecadfbad89e2d12f881"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 20:14:07 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 20:14:07 2012 +0900"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds\n\nPull LED subsystem update from Bryan Wu.\n\n* \u0027for-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds: (24 commits)\n  leds: add output driver configuration for pca9633 led driver\n  leds: lm3642: Use regmap_update_bits() in lm3642_chip_init()\n  leds: Add new LED driver for lm3642 chips\n  leds-lp5523: Fix riskiness of the page fault\n  leds-lp5523: turn off the LED engines on unloading the driver\n  leds-lm3530: Fix smatch warnings\n  leds-lm3530: Use devm_regulator_get function\n  leds: leds-gpio: adopt pinctrl support\n  leds: Add new LED driver for lm355x chips\n  leds-lp5523: use the i2c device id rather than fixed name\n  leds-lp5523: add new device id for LP55231\n  leds-lp5523: support new LP55231 device\n  leds: triggers: send uevent when changing triggers\n  leds-lp5523: minor code style fixes\n  leds-lp5523: change the return type of lp5523_set_mode()\n  leds-lp5523: set the brightness to 0 forcely on removing the driver\n  leds-lp5523: add channel name in the platform data\n  leds: leds-gpio: Use of_get_child_count() helper\n  leds: leds-gpio: Use platform_{get,set}_drvdata\n  leds: leds-gpio: use of_match_ptr()\n  ...\n"
    },
    {
      "commit": "4b2c551f77f5a0c496e2125b1d883f4b26aabf2c",
      "tree": "13b861ea27340133a057b1a9e90fa5be8b4d1283",
      "parents": [
        "466cab878ef98a0618734a1fa64a02e5fbf90867"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Oct 09 14:49:54 2012 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 10 01:15:44 2012 -0400"
      },
      "message": "lglock: add DEFINE_STATIC_LGLOCK()\n\nWhen the lglock doesn\u0027t need to be exported we can use\nDEFINE_STATIC_LGLOCK().\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "466cab878ef98a0618734a1fa64a02e5fbf90867",
      "tree": "956eced7877c83c6a9cbf51c3481ef568c398e51",
      "parents": [
        "462e1e1bc879d10d7c2ce96a1b1001edaaa815ba"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Oct 09 14:49:51 2012 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 10 01:15:44 2012 -0400"
      },
      "message": "lglock: make the per_cpu locks static\n\nThe per_cpu locks are not used outside the file which contains the\nDEFINE_LGLOCK(), so we can make these symbols static.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "462e1e1bc879d10d7c2ce96a1b1001edaaa815ba",
      "tree": "a21ddf540ad7927eeea26c4979ce4e2356cb20c9",
      "parents": [
        "614c321f4bf130766ff66fd142b1da47ab037303"
      ],
      "author": {
        "name": "Lai Jiangshan",
        "email": "laijs@cn.fujitsu.com",
        "time": "Tue Oct 09 14:49:47 2012 -0700"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 10 01:15:44 2012 -0400"
      },
      "message": "lglock: remove unused DEFINE_LGLOCK_LOCKDEP()\n\nstruct lglocks use their own lock_key/lock_dep_map which are defined in\nstruct lglock.  DEFINE_LGLOCK_LOCKDEP() is unused, so remove it and save a\nsmall piece of memory.\n\nSigned-off-by: Lai Jiangshan \u003claijs@cn.fujitsu.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "614c321f4bf130766ff66fd142b1da47ab037303",
      "tree": "0b95be62c7ee296caa6b1dc54e4465eb123ba1b2",
      "parents": [
        "35c2a7f4908d404c9124c2efc6ada4640ca4d5d5"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 10 01:06:20 2012 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Oct 10 01:06:20 2012 -0400"
      },
      "message": "MAX_LFS_FILESIZE definition for 64bit needs LL...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8e22cc88d68ca1a46d7d582938f979eb640ed30f",
      "tree": "a5b5ed3af60067093dde81bd651046d24b0dfd45",
      "parents": [
        "b6963327e0521e682c2fffd018574251d3c22b41"
      ],
      "author": {
        "name": "Marco Stornelli",
        "email": "marco.stornelli@gmail.com",
        "time": "Sat Oct 06 12:43:09 2012 +0200"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Tue Oct 09 23:33:39 2012 -0400"
      },
      "message": "vfs: drop lock/unlock super\n\nRemoved s_lock from super_block and removed lock/unlock super.\n\nSigned-off-by: Marco Stornelli \u003cmarco.stornelli@gmail.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "42859eea96ba6beabfb0369a1eeffa3c7d2bd9cb",
      "tree": "fa38aeda0d6e7a4c48a882b166b8643594a1ad50",
      "parents": [
        "f59b51fe3d3092c08d7d554ecb40db24011b2ebc",
        "f322220d6159455da2b5a8a596d802c8695fed30"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 12:02:25 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 12:02:25 2012 +0900"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull generic execve() changes from Al Viro:\n \"This introduces the generic kernel_thread() and kernel_execve()\n  functions, and switches x86, arm, alpha, um and s390 over to them.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal: (26 commits)\n  s390: convert to generic kernel_execve()\n  s390: switch to generic kernel_thread()\n  s390: fold kernel_thread_helper() into ret_from_fork()\n  s390: fold execve_tail() into start_thread(), convert to generic sys_execve()\n  um: switch to generic kernel_thread()\n  x86, um/x86: switch to generic sys_execve and kernel_execve\n  x86: split ret_from_fork\n  alpha: introduce ret_from_kernel_execve(), switch to generic kernel_execve()\n  alpha: switch to generic kernel_thread()\n  alpha: switch to generic sys_execve()\n  arm: get rid of execve wrapper, switch to generic execve() implementation\n  arm: optimized current_pt_regs()\n  arm: introduce ret_from_kernel_execve(), switch to generic kernel_execve()\n  arm: split ret_from_fork, simplify kernel_thread() [based on patch by rmk]\n  generic sys_execve()\n  generic kernel_execve()\n  new helper: current_pt_regs()\n  preparation for generic kernel_thread()\n  um: kill thread-\u003eforking\n  um: let signal_delivered() do SIGTRAP on singlestepping into handler\n  ...\n"
    },
    {
      "commit": "aac2b1f5747ea34696d0da5bdc4d8247aa6437af",
      "tree": "8fc8499aad6a28b044c9bdab3f920f64a98460c1",
      "parents": [
        "23d5385f382a7c7d8b6bf19b0c2cfb3acbb12d31",
        "5175a5e76bbdf20a614fb47ce7a38f0f39e70226"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 11:12:54 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 11:12:54 2012 +0900"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net\n\nPull networking updates from David Miller:\n\n 1) UAPI changes for networking from David Howells\n\n 2) A netlink dump is an operation we can sleep within, and therefore we\n    need to make sure the dump provider module doesn\u0027t disappear on us\n    meanwhile.  Fix from Gao Feng.\n\n 3) Now that tunnels support GRO, we have to be more careful in\n    skb_gro_reset_offset() otherwise we OOPS, from Eric Dumazet.\n\n 4) We can end up processing packets for VLANs we aren\u0027t actually\n    configured to be on, fix from Florian Zumbiehl.\n\n 5) Fix routing cache removal regression in redirects and IPVS.  The\n    core issue on the IPVS side is that it wants to rewrite who the\n    nexthop is and we have to explicitly accomodate that case.  From\n    Julian Anastasov.\n\n 6) Error code return fixes all over the networking drivers from Peter\n    Senna Tschudin.\n\n 7) Fix routing cache removal regressions in IPSEC, from Steffen\n    Klassert.\n\n 8) Fix deadlock in RDS during pings, from Jeff Liu.\n\n 9) Neighbour packet queue can trigger skb_under_panic() because we do\n    not reset the network header of the SKB in the right spot.  From\n    Ramesh Nagappa.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (61 commits)\n  RDS: fix rds-ping spinlock recursion\n  netdev/phy: Prototype of_mdio_find_bus()\n  farsync: fix support for over 30 cards\n  be2net: Remove code that stops further access to BE NIC based on UE bits\n  pch_gbe: Fix build error by selecting all the possible dependencies.\n  e1000e: add device IDs for i218\n  ixgbe/ixgbevf: Limit maximum jumbo frame size to 9.5K to avoid Tx hangs\n  ixgbevf: Set the netdev number of Tx queues\n  UAPI: (Scripted) Disintegrate include/linux/tc_ematch\n  UAPI: (Scripted) Disintegrate include/linux/tc_act\n  UAPI: (Scripted) Disintegrate include/linux/netfilter_ipv6\n  UAPI: (Scripted) Disintegrate include/linux/netfilter_ipv4\n  UAPI: (Scripted) Disintegrate include/linux/netfilter_bridge\n  UAPI: (Scripted) Disintegrate include/linux/netfilter_arp\n  UAPI: (Scripted) Disintegrate include/linux/netfilter/ipset\n  UAPI: (Scripted) Disintegrate include/linux/netfilter\n  UAPI: (Scripted) Disintegrate include/linux/isdn\n  UAPI: (Scripted) Disintegrate include/linux/caif\n  net: fix typo in freescale/ucc_geth.c\n  vxlan: fix more sparse warnings\n  ...\n"
    },
    {
      "commit": "b7e97d22113bcaafff93774e3085f5b567eaba9c",
      "tree": "1d3a13574310bde064fceb4408cf91a44c59c078",
      "parents": [
        "943c2acea53784c45fb291498d04d5188fdea891",
        "d0fc905429f7f5f3ad365466669c55b04b92c1e5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 11:10:41 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 11:10:41 2012 +0900"
      },
      "message": "Merge branch \u0027next\u0027 of git://git.infradead.org/users/vkoul/slave-dma\n\nPull slave-dmaengine updates from Vinod Koul:\n \"This time we have Andy updates on dw_dmac which is attempting to make\n  this IP block available as PCI and platform device though not fully\n  complete this time.\n\n  We also have TI EDMA moving the dma driver to use dmaengine APIs, also\n  have a new driver for mmp-tdma, along with bunch of small updates.\n\n  Now for your excitement the merge is little unusual here, while\n  merging the auto merge on linux-next picks wrong choice for pl330\n  (drivers/dma/pl330.c) and this causes build failure.  The correct\n  resolution is in linux-next.  (DMA: PL330: Fix build error) I didn\u0027t\n  back merge your tree this time as you are better than me so no point\n  in doing that for me :)\"\n\nFixed the pl330 conflict as in linux-next, along with trivial header\nfile conflicts due to changed includes.\n\n* \u0027next\u0027 of git://git.infradead.org/users/vkoul/slave-dma: (29 commits)\n  dma: tegra: fix interrupt name issue with apb dma.\n  dw_dmac: fix a regression in dwc_prep_dma_memcpy\n  dw_dmac: introduce software emulation of LLP transfers\n  dw_dmac: autoconfigure data_width or get it via platform data\n  dw_dmac: autoconfigure block_size or use platform data\n  dw_dmac: get number of channels from hardware if possible\n  dw_dmac: fill optional encoded parameters in register structure\n  dw_dmac: mark dwc_dump_chan_regs as inline\n  DMA: PL330: return ENOMEM instead of 0 from pl330_alloc_chan_resources\n  DMA: PL330: Remove redundant runtime_suspend/resume functions\n  DMA: PL330: Remove controller clock enable/disable\n  dmaengine: use kmem_cache_zalloc instead of kmem_cache_alloc/memset\n  DMA: PL330: Set the capability of pdm0 and pdm1 as DMA_PRIVATE\n  ARM: EXYNOS: Set the capability of pdm0 and pdm1 as DMA_PRIVATE\n  dma: tegra: use list_move_tail instead of list_del/list_add_tail\n  mxs/dma: Enlarge the CCW descriptor area to 4 pages\n  dw_dmac: utilize slave_id to pass request line\n  dmaengine: mmp_tdma: add dt support\n  dmaengine: mmp-pdma support\n  spi: davici - make davinci select edma\n  ...\n"
    },
    {
      "commit": "943c2acea53784c45fb291498d04d5188fdea891",
      "tree": "063fac3e584f8f4a5babbc329499f84b3da291d7",
      "parents": [
        "10f39f04b2cb7a06ba5d4ea0f20bd156d0367bee",
        "e6c085863f97f0a8f009753e1baaf83e4aac7b42"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 10:58:42 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 10 10:58:42 2012 +0900"
      },
      "message": "Merge tag \u0027mmc-merge-for-3.7-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc\n\nPull MMC updates from Chris Ball:\n \"Core:\n   - Add DT properties for card detection (broken-cd, cd-gpios,\n     non-removable)\n   - Don\u0027t poll non-removable devices\n   - Fixup/rework eMMC sleep mode/\"power off notify\" feature\n   - Support eMMC background operations (BKOPS).  To set the one-time\n     programmable fuse that enables bkops on an eMMC that doesn\u0027t\n     already have it set, you can use the \"mmc bkops enable\" command in:\n\n       git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc-utils.git\n\n  Drivers:\n   - atmel-mci, dw_mmc, pxa-mci, dove, s3c, spear: Add device tree\n     support\n   - bfin_sdh: Add support for the controller in bf60x\n   - dw_mmc: Support Samsung Exynos SoCs\n   - eSDHC: Add ADMA support\n   - sdhci: Support testing a cd-gpio (from slot-gpio) instead of\n     presence bit\n   - sdhci-pltfm: Support broken-cd DT property\n   - tegra: Convert to only supporting DT (mach-tegra has gone DT-only)\"\n\n* tag \u0027mmc-merge-for-3.7-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (67 commits)\n  mmc: core: Fixup broken suspend and eMMC4.5 power off notify\n  mmc: sdhci-spear: Add clk_{un}prepare() support\n  mmc: sdhci-spear: add device tree bindings\n  mmc: sdhci-s3c: Add clk_(enable/disable) in runtime suspend/resume\n  mmc: core: Replace MMC_CAP2_BROKEN_VOLTAGE with test for fixed regulator\n  mmc: sdhci-pxav3: Use sdhci_get_of_property for parsing DT quirks\n  mmc: dt: Support \"broken-cd\" property in sdhci-pltfm\n  mmc: sdhci-s3c: fix the wrong number of max bus clocks\n  mmc: sh-mmcif: avoid oops on spurious interrupts\n  mmc: sh-mmcif: properly handle MMC_WRITE_MULTIPLE_BLOCK completion IRQ\n  mmc: sdhci-s3c: Fix crash on module insertion for second time\n  mmc: sdhci-s3c: Enable only required bus clock\n  mmc: Revert \"mmc: dw_mmc: Add check for IDMAC configuration\"\n  mmc: mxcmmc: fix bug that may block a data transfer forever\n  mmc: omap_hsmmc: Pass on the suspend failure to the PM core\n  mmc: atmel-mci: AP700x PDC is not connected to MCI\n  mmc: atmel-mci: DMA can be used with other controllers\n  mmc: mmci: use clk_prepare_enable and clk_disable_unprepare\n  mmc: sdhci-s3c: Add device tree support\n  mmc: dw_mmc: add support for exynos specific implementation of dw-mshc\n  ...\n"
    },
    {
      "commit": "3db6857c9139662dec5504d0204ad6ac3000cad0",
      "tree": "d2a6161054f34ff96cf7dcac8b085a69bbb78cee",
      "parents": [
        "8a3ddb88fb0046f2f905ecfdeed6a63c24e66a89",
        "1855f1b1074ea8a76ced0f3ef25bbecd6b2a7222"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 09 13:16:33 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 09 13:16:33 2012 -0400"
      },
      "message": "Merge tag \u0027disintegrate-isdn-20121009\u0027 of git://git.infradead.org/users/dhowells/linux-headers\n\nUAPI Disintegration 2012-10-09\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8a3ddb88fb0046f2f905ecfdeed6a63c24e66a89",
      "tree": "c8a060ec39fec58f3231f20b0460fd8ffab8ce71",
      "parents": [
        "8dd9117cc7a021ced1c5cf177e2d44dd92b88617",
        "b6bf56c6be2be7ccebebfd91b1f11889296cbd9e"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 09 13:15:29 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 09 13:15:29 2012 -0400"
      },
      "message": "Merge tag \u0027disintegrate-net-20121009\u0027 of git://git.infradead.org/users/dhowells/linux-headers\n\nUAPI Disintegration 2012-10-09\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8dd9117cc7a021ced1c5cf177e2d44dd92b88617",
      "tree": "cad990f58f9ec6d400226dda86718fc10781416e",
      "parents": [
        "16e310ae6ed352c4963b1f2413fcd88fa693eeda",
        "547b1e81afe3119f7daf702cc03b158495535a25"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 09 13:14:32 2012 -0400"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Tue Oct 09 13:14:32 2012 -0400"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux\n\nPulled mainline in order to get the UAPI infrastructure already\nmerged before I pull in David Howells\u0027s UAPI trees for networking.\n\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "ffe315012510165ce82e4dd4767f0a5dba9edbf7",
      "tree": "f601cd980af9d0ced5ca9aedecef4fa0d2ca0e15",
      "parents": [
        "e2d3a35ee427aaba99b6c68a56609ce276c51270",
        "4a8e43feeac7996b8de2d5b2823e316917493df4"
      ],
      "author": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Oct 09 15:03:21 2012 +0100"
      },
      "committer": {
        "name": "David Woodhouse",
        "email": "David.Woodhouse@intel.com",
        "time": "Tue Oct 09 15:04:25 2012 +0100"
      },
      "message": "Merge tag \u0027disintegrate-mtd-20121009\u0027 of git://git.infradead.org/users/dhowells/linux-headers\n\nUAPI Disintegration 2012-10-09\n\nConflicts:\n\tMAINTAINERS\n\tarch/arm/configs/bcmring_defconfig\n\tarch/arm/mach-imx/clk-imx51-imx53.c\n\tdrivers/mtd/nand/Kconfig\n\tdrivers/mtd/nand/bcm_umi_nand.c\n\tdrivers/mtd/nand/nand_bcm_umi.h\n\tdrivers/mtd/nand/orion_nand.c\n"
    },
    {
      "commit": "b6bf56c6be2be7ccebebfd91b1f11889296cbd9e",
      "tree": "3d5d76b71cdc2c3c69593bac67e5153488cbfb84",
      "parents": [
        "611128eb3927941abcfdca5b7515cf02aab601ec"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:49:06 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:49:06 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/tc_ematch\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "611128eb3927941abcfdca5b7515cf02aab601ec",
      "tree": "79cca8ac2f02838eb097436744558aad84b5d86d",
      "parents": [
        "ff1e1756c974fc1cb68b6e74cd123ad59cf07a2d"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:49:05 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:49:05 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/tc_act\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "ff1e1756c974fc1cb68b6e74cd123ad59cf07a2d",
      "tree": "ff8d33e76c8e2e9dbbd8cf578f71ca7b50f7fc2e",
      "parents": [
        "17c075923da59c217155d0758ee0715641ebc152"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:49:01 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:49:01 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/netfilter_ipv6\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "17c075923da59c217155d0758ee0715641ebc152",
      "tree": "25c7c5c9a38e4be68ea7d3d8859bb55474199143",
      "parents": [
        "55c5cd3cc179eb87faa9cc2d9741047dd1642aaf"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:59 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:59 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/netfilter_ipv4\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "55c5cd3cc179eb87faa9cc2d9741047dd1642aaf",
      "tree": "1f63053791d51ce418359f2f83dafcac195671ec",
      "parents": [
        "8922082ae6cd2783789e83ae9c67ffcbe5a2f4e1"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:58 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:58 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/netfilter_bridge\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "8922082ae6cd2783789e83ae9c67ffcbe5a2f4e1",
      "tree": "7b2b6598a0ddc7dbe6ebcc89f900366e5a748541",
      "parents": [
        "a82014149becc68695e7f1d62a8cc1e4ae062318"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:56 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:56 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/netfilter_arp\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "a82014149becc68695e7f1d62a8cc1e4ae062318",
      "tree": "a6ec2c9bda149912c70abc19fc3d8a9baa35fbc0",
      "parents": [
        "94d0ec58e63159ce5bcdfe612ee220eaeefa3b2a"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:55 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:55 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/netfilter/ipset\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "94d0ec58e63159ce5bcdfe612ee220eaeefa3b2a",
      "tree": "ec8326cdbfd3a323067ca17760d2f14193b81342",
      "parents": [
        "27a3aadcdc4f07c55f4d04e71268b6653ab4a4cf"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:54 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:54 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/netfilter\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "1855f1b1074ea8a76ced0f3ef25bbecd6b2a7222",
      "tree": "bb31c925fcd9104c813c51c24c3032f8573968a4",
      "parents": [
        "9e2d8656f5e8aa214e66b462680cf86b210b74a8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:45 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:45 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/isdn\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "27a3aadcdc4f07c55f4d04e71268b6653ab4a4cf",
      "tree": "5eaa4bda8dd705e134467135e33adb9a6a52da86",
      "parents": [
        "9e2d8656f5e8aa214e66b462680cf86b210b74a8"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:40 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Tue Oct 09 09:48:40 2012 +0100"
      },
      "message": "UAPI: (Scripted) Disintegrate include/linux/caif\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nAcked-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nAcked-by: Dave Jones \u003cdavej@redhat.com\u003e\n"
    },
    {
      "commit": "9e2d8656f5e8aa214e66b462680cf86b210b74a8",
      "tree": "f67d62e896cedf75599ea45f9ecf9999c6ad24cd",
      "parents": [
        "1ea4f4f8405cc1ceec23f2d261bc3775785e6712",
        "9e695d2ecc8451cc2c1603d60b5c8e7f5581923a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:23:15 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:23:15 2012 +0900"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge patches from Andrew Morton:\n \"A few misc things and very nearly all of the MM tree.  A tremendous\n  amount of stuff (again), including a significant rbtree library\n  rework.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (160 commits)\n  sparc64: Support transparent huge pages.\n  mm: thp: Use more portable PMD clearing sequenece in zap_huge_pmd().\n  mm: Add and use update_mmu_cache_pmd() in transparent huge page code.\n  sparc64: Document PGD and PMD layout.\n  sparc64: Eliminate PTE table memory wastage.\n  sparc64: Halve the size of PTE tables\n  sparc64: Only support 4MB huge pages and 8KB base pages.\n  memory-hotplug: suppress \"Trying to free nonexistent resource \u003cXXXXXXXXXXXXXXXX-YYYYYYYYYYYYYYYY\u003e\" warning\n  mm: memcg: clean up mm_match_cgroup() signature\n  mm: document PageHuge somewhat\n  mm: use %pK for /proc/vmallocinfo\n  mm, thp: fix mlock statistics\n  mm, thp: fix mapped pages avoiding unevictable list on mlock\n  memory-hotplug: update memory block\u0027s state and notify userspace\n  memory-hotplug: preparation to notify memory block\u0027s state at memory hot remove\n  mm: avoid section mismatch warning for memblock_type_name\n  make GFP_NOTRACK definition unconditional\n  cma: decrease cc.nr_migratepages after reclaiming pagelist\n  CMA: migrate mlocked pages\n  kpageflags: fix wrong KPF_THP on non-huge compound pages\n  ...\n"
    },
    {
      "commit": "587af308cc30ec6b94bde9aeb322e85fe4363e32",
      "tree": "422989897e68a3d914b9487c49467dbaa4dd7865",
      "parents": [
        "7795912c257bc068445f1db429c94d6b4b6ee604"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Mon Oct 08 16:34:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:23:04 2012 +0900"
      },
      "message": "mm: memcg: clean up mm_match_cgroup() signature\n\nIt really should return a boolean for match/no match.  And since it takes\na memcg, not a cgroup, fix that parameter name as well.\n\n[akpm@linux-foundation.org: mm_match_cgroup() is not a macro]\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\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": "b676b293fb48672904ee1b9828cb50b4eed01717",
      "tree": "22b2dcc1623da40a5ddfaf6db2bc5ab1c2476ddb",
      "parents": [
        "e90bdb7f52f94204c78fb40b0804645defdebd71"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Oct 08 16:34:03 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:23:02 2012 +0900"
      },
      "message": "mm, thp: fix mapped pages avoiding unevictable list on mlock\n\nWhen a transparent hugepage is mapped and it is included in an mlock()\nrange, follow_page() incorrectly avoids setting the page\u0027s mlock bit and\nmoving it to the unevictable lru.\n\nThis is evident if you try to mlock(), munlock(), and then mlock() a\nrange again.  Currently:\n\n\t#define MAP_SIZE\t(4 \u003c\u003c 30)\t/* 4GB */\n\n\tvoid *ptr \u003d mmap(NULL, MAP_SIZE, PROT_READ | PROT_WRITE,\n\t\t\t MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);\n\tmlock(ptr, MAP_SIZE);\n\n\t\t$ grep -E \"Unevictable|Inactive\\(anon\" /proc/meminfo\n\t\tInactive(anon):     6304 kB\n\t\tUnevictable:     4213924 kB\n\n\tmunlock(ptr, MAP_SIZE);\n\n\t\tInactive(anon):  4186252 kB\n\t\tUnevictable:       19652 kB\n\n\tmlock(ptr, MAP_SIZE);\n\n\t\tInactive(anon):  4198556 kB\n\t\tUnevictable:       21684 kB\n\nNotice that less than 2MB was added to the unevictable list; this is\nbecause these pages in the range are not transparent hugepages since the\n4GB range was allocated with mmap() and has no specific alignment.  If\nposix_memalign() were used instead, unevictable would not have grown at\nall on the second mlock().\n\nThe fix is to call mlock_vma_page() so that the mlock bit is set and the\npage is added to the unevictable list.  With this patch:\n\n\tmlock(ptr, MAP_SIZE);\n\n\t\tInactive(anon):     4056 kB\n\t\tUnevictable:     4213940 kB\n\n\tmunlock(ptr, MAP_SIZE);\n\n\t\tInactive(anon):  4198268 kB\n\t\tUnevictable:       19636 kB\n\n\tmlock(ptr, MAP_SIZE);\n\n\t\tInactive(anon):     4008 kB\n\t\tUnevictable:     4213940 kB\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michel Lespinasse \u003cwalken@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": "e90bdb7f52f94204c78fb40b0804645defdebd71",
      "tree": "4acb09ecd1f98fd98408f18e816d075601585d2a",
      "parents": [
        "a16cee10c7ab994546ed98d9abfd4de74050124a"
      ],
      "author": {
        "name": "Wen Congyang",
        "email": "wency@cn.fujitsu.com",
        "time": "Mon Oct 08 16:34:01 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:23:02 2012 +0900"
      },
      "message": "memory-hotplug: update memory block\u0027s state and notify userspace\n\nremove_memory() will be called when hot removing a memory device.  But\neven if offlining memory, we cannot notice it.  So the patch updates the\nmemory block\u0027s state and sends notification to userspace.\n\nAdditionally, the memory device may contain more than one memory block.\nIf the memory block has been offlined, __offline_pages() will fail.  So we\nshould try to offline one memory block at a time.\n\nThus remove_memory() also check each memory block\u0027s state.  So there is no\nneed to check the memory block\u0027s state before calling remove_memory().\n\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Jiang Liu \u003cliuj97@gmail.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.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": "a16cee10c7ab994546ed98d9abfd4de74050124a",
      "tree": "19b44bd2d32047f69f77a36145a9f2ebb6b41d53",
      "parents": [
        "c22331166b49b94b51424bb7fa1f83e09ad82734"
      ],
      "author": {
        "name": "Wen Congyang",
        "email": "wency@cn.fujitsu.com",
        "time": "Mon Oct 08 16:33:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:23:02 2012 +0900"
      },
      "message": "memory-hotplug: preparation to notify memory block\u0027s state at memory hot remove\n\nremove_memory() is called in two cases:\n1. echo offline \u003e/sys/devices/system/memory/memoryXX/state\n2. hot remove a memory device\n\nIn the 1st case, the memory block\u0027s state is changed and the notification\nthat memory block\u0027s state changed is sent to userland after calling\nremove_memory().  So user can notice memory block is changed.\n\nBut in the 2nd case, the memory block\u0027s state is not changed and the\nnotification is not also sent to userspcae even if calling\nremove_memory().  So user cannot notice memory block is changed.\n\nFor adding the notification at memory hot remove, the patch just prepare\nas follows:\n1st case uses offline_pages() for offlining memory.\n2nd case uses remove_memory() for offlining memory and changing memory block\u0027s\n    state and notifing the information.\n\nThe patch does not implement notification to remove_memory().\n\nSigned-off-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Jiang Liu \u003cliuj97@gmail.com\u003e\nCc: Len Brown \u003clen.brown@intel.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.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": "3e648ebe076390018c317881d7d926f24d7bac6b",
      "tree": "a1ce3f4b196756ac2850b47714f5a1dac6ce52ea",
      "parents": [
        "beb51eaa88238daba698ad837222ad277d440b6d"
      ],
      "author": {
        "name": "Glauber Costa",
        "email": "glommer@parallels.com",
        "time": "Mon Oct 08 16:33:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:23:01 2012 +0900"
      },
      "message": "make GFP_NOTRACK definition unconditional\n\nThere was a general sentiment in a recent discussion (See\nhttps://lkml.org/lkml/2012/9/18/258) that the __GFP flags should be\ndefined unconditionally.  Currently, the only offender is GFP_NOTRACK,\nwhich is conditional to KMEMCHECK.\n\nSigned-off-by: Glauber Costa \u003cglommer@parallels.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.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": "e46a28790e594c0876d1a84270926abf75460f61",
      "tree": "febfaa6c20dab69490308190729f1d898e4df930",
      "parents": [
        "7a71932d5676b7410ab64d149bad8bde6b0d8632"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Mon Oct 08 16:33:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:23:00 2012 +0900"
      },
      "message": "CMA: migrate mlocked pages\n\nPresently CMA cannot migrate mlocked pages so it ends up failing to allocate\ncontiguous memory space.\n\nThis patch makes mlocked pages be migrated out.  Of course, it can affect\nrealtime processes but in CMA usecase, contiguous memory allocation failing\nis far worse than access latency to an mlocked page being variable while\nCMA is running.  If someone wants to make the system realtime, he shouldn\u0027t\nenable CMA because stalls can still happen at random times.\n\n[akpm@linux-foundation.org: tweak comment text, per Mel]\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8befedfe678ff84d5bc356be4f3cb1fd84959d02",
      "tree": "19708cceee79ce1217ee67bf8c9d44feeecdddbf",
      "parents": [
        "5a883813845a2bb5ed2bd8c9240736c0740b156f"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Mon Oct 08 16:33:42 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:59 2012 +0900"
      },
      "message": "mm: remove unevictable_pgs_mlockfreed\n\nSimply remove UNEVICTABLE_MLOCKFREED and unevictable_pgs_mlockfreed line\nfrom /proc/vmstat: Johannes and Mel point out that it was very unlikely to\nhave been used by any tool, and of course we can restore it easily enough\nif that turns out to be wrong.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Ying Han \u003cyinghan@google.com\u003e\nAcked-by: 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": "5a883813845a2bb5ed2bd8c9240736c0740b156f",
      "tree": "86d5b34fb76870923d0c2b4b5ebd72972b15b654",
      "parents": [
        "082708072a4250f5c4dbc62065e7af93f5e45646"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Mon Oct 08 16:33:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:59 2012 +0900"
      },
      "message": "memory-hotplug: fix zone stat mismatch\n\nDuring memory-hotplug, I found NR_ISOLATED_[ANON|FILE] are increasing,\ncausing the kernel to hang.  When the system doesn\u0027t have enough free\npages, it enters reclaim but never reclaim any pages due to\ntoo_many_isolated()\u003d\u003dtrue and loops forever.\n\nThe cause is that when we do memory-hotadd after memory-remove,\n__zone_pcp_update() clears a zone\u0027s ZONE_STAT_ITEMS in setup_pageset()\nalthough the vm_stat_diff of all CPUs still have values.\n\nIn addtion, when we offline all pages of the zone, we reset them in\nzone_pcp_reset without draining so we loss some zone stat item.\n\nReviewed-by: Wen Congyang \u003cwency@cn.fujitsu.com\u003e\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.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": "2ec74c3ef2d8c58d71e0e00336fb6b891192155a",
      "tree": "512b591504cdbee278c27afc50a7e3a558b4851a",
      "parents": [
        "36e4f20af833d1ce196e6a4ade05dc26c44652d1"
      ],
      "author": {
        "name": "Sagi Grimberg",
        "email": "sagig@mellanox.com",
        "time": "Mon Oct 08 16:33:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:58 2012 +0900"
      },
      "message": "mm: move all mmu notifier invocations to be done outside the PT lock\n\nIn order to allow sleeping during mmu notifier calls, we need to avoid\ninvoking them under the page table spinlock.  This patch solves the\nproblem by calling invalidate_page notification after releasing the lock\n(but before freeing the page itself), or by wrapping the page invalidation\nwith calls to invalidate_range_begin and invalidate_range_end.\n\nTo prevent accidental changes to the invalidate_range_end arguments after\nthe call to invalidate_range_begin, the patch introduces a convention of\nsaving the arguments in consistently named locals:\n\n\tunsigned long mmun_start;\t/* For mmu_notifiers */\n\tunsigned long mmun_end;\t/* For mmu_notifiers */\n\n\t...\n\n\tmmun_start \u003d ...\n\tmmun_end \u003d ...\n\tmmu_notifier_invalidate_range_start(mm, mmun_start, mmun_end);\n\n\t...\n\n\tmmu_notifier_invalidate_range_end(mm, mmun_start, mmun_end);\n\nThe patch changes code to use this convention for all calls to\nmmu_notifier_invalidate_range_start/end, except those where the calls are\nclose enough so that anyone who glances at the code can see the values\naren\u0027t changing.\n\nThis patchset is a preliminary step towards on-demand paging design to be\nadded to the RDMA stack.\n\nWhy do we want on-demand paging for Infiniband?\n\n  Applications register memory with an RDMA adapter using system calls,\n  and subsequently post IO operations that refer to the corresponding\n  virtual addresses directly to HW.  Until now, this was achieved by\n  pinning the memory during the registration calls.  The goal of on demand\n  paging is to avoid pinning the pages of registered memory regions (MRs).\n   This will allow users the same flexibility they get when swapping any\n  other part of their processes address spaces.  Instead of requiring the\n  entire MR to fit in physical memory, we can allow the MR to be larger,\n  and only fit the current working set in physical memory.\n\nWhy should anyone care?  What problems are users currently experiencing?\n\n  This can make programming with RDMA much simpler.  Today, developers\n  that are working with more data than their RAM can hold need either to\n  deregister and reregister memory regions throughout their process\u0027s\n  life, or keep a single memory region and copy the data to it.  On demand\n  paging will allow these developers to register a single MR at the\n  beginning of their process\u0027s life, and let the operating system manage\n  which pages needs to be fetched at a given time.  In the future, we\n  might be able to provide a single memory access key for each process\n  that would provide the entire process\u0027s address as one large memory\n  region, and the developers wouldn\u0027t need to register memory regions at\n  all.\n\nIs there any prospect that any other subsystems will utilise these\ninfrastructural changes?  If so, which and how, etc?\n\n  As for other subsystems, I understand that XPMEM wanted to sleep in\n  MMU notifiers, as Christoph Lameter wrote at\n  http://lkml.indiana.edu/hypermail/linux/kernel/0802.1/0460.html and\n  perhaps Andrea knows about other use cases.\n\n  Scheduling in mmu notifications is required since we need to sync the\n  hardware with the secondary page tables change.  A TLB flush of an IO\n  device is inherently slower than a CPU TLB flush, so our design works by\n  sending the invalidation request to the device, and waiting for an\n  interrupt before exiting the mmu notifier handler.\n\nAvi said:\n\n  kvm may be a buyer.  kvm::mmu_lock, which serializes guest page\n  faults, also protects long operations such as destroying large ranges.\n  It would be good to convert it into a spinlock, but as it is used inside\n  mmu notifiers, this cannot be done.\n\n  (there are alternatives, such as keeping the spinlock and using a\n  generation counter to do the teardown in O(1), which is what the \"may\"\n  is doing up there).\n\n[akpm@linux-foundation.orgpossible speed tweak in hugetlb_cow(), cleanups]\nSigned-off-by: Andrea Arcangeli \u003candrea@qumranet.com\u003e\nSigned-off-by: Sagi Grimberg \u003csagig@mellanox.com\u003e\nSigned-off-by: Haggai Eran \u003chaggaie@mellanox.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Or Gerlitz \u003cogerlitz@mellanox.com\u003e\nCc: Haggai Eran \u003chaggaie@mellanox.com\u003e\nCc: Shachar Raindel \u003craindel@mellanox.com\u003e\nCc: Liran Liss \u003cliranl@mellanox.com\u003e\nCc: Christoph Lameter \u003ccl@linux-foundation.org\u003e\nCc: Avi Kivity \u003cavi@redhat.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": "957f822a0ab95e88b146638bad6209bbc315bedd",
      "tree": "2e1336ddc1c574f54d582c6b74dcc1d1230482f8",
      "parents": [
        "a0c5e813f087dffc0d9b173d2e7d3328b1482fd5"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Oct 08 16:33:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:56 2012 +0900"
      },
      "message": "mm, numa: reclaim from all nodes within reclaim distance\n\nRECLAIM_DISTANCE represents the distance between nodes at which it is\ndeemed too costly to allocate from; it\u0027s preferred to try to reclaim from\na local zone before falling back to allocating on a remote node with such\na distance.\n\nTo do this, zone_reclaim_mode is set if the distance between any two\nnodes on the system is greather than this distance.  This, however, ends\nup causing the page allocator to reclaim from every zone regardless of\nits affinity.\n\nWhat we really want is to reclaim only from zones that are closer than\nRECLAIM_DISTANCE.  This patch adds a nodemask to each node that\nrepresents the set of nodes that are within this distance.  During the\nzone iteration, if the bit for a zone\u0027s node is set for the local node,\nthen reclaim is attempted; otherwise, the zone is skipped.\n\n[akpm@linux-foundation.org: fix CONFIG_NUMA\u003dn build]\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\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": "a0c5e813f087dffc0d9b173d2e7d3328b1482fd5",
      "tree": "cc3fac50d76d0641722cb824fef825d5655e421e",
      "parents": [
        "e6c509f85455041d3d7c4b863bf80bc294288cc1"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Mon Oct 08 16:33:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:56 2012 +0900"
      },
      "message": "mm: remove free_page_mlock\n\nWe should not be seeing non-0 unevictable_pgs_mlockfreed any longer.  So\nremove free_page_mlock() from the page freeing paths: __PG_MLOCKED is\nalready in PAGE_FLAGS_CHECK_AT_FREE, so free_pages_check() will now be\nchecking it, reporting \"BUG: Bad page state\" if it\u0027s ever found set.\nComment UNEVICTABLE_MLOCKFREED and unevictable_pgs_mlockfreed always 0.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Ying Han \u003cyinghan@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": "39b5f29ac1f988c1615fbc9c69f6651ab0d0c3c7",
      "tree": "d8030f58d542bb3e811d83676b38c5b4b3a16c02",
      "parents": [
        "ec4d9f626d5908b6052c2973f37992f1db52e967"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Mon Oct 08 16:33:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:55 2012 +0900"
      },
      "message": "mm: remove vma arg from page_evictable\n\npage_evictable(page, vma) is an irritant: almost all its callers pass\nNULL for vma.  Remove the vma arg and use mlocked_vma_newpage(vma, page)\nexplicitly in the couple of places it\u0027s needed.  But in those places we\ndon\u0027t even need page_evictable() itself!  They\u0027re dealing with a freshly\nallocated anonymous page, which has no \"mapping\" and cannot be mlocked yet.\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Ying Han \u003cyinghan@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": "7f1290f2f2a4d2c3f1b7ce8e87256e052ca23125",
      "tree": "10328fcb468647ba678e022911d5c2005080f309",
      "parents": [
        "05106e6a54aed321191b4bb5c9ee09538cbad3b1"
      ],
      "author": {
        "name": "Jianguo Wu",
        "email": "wujianguo@huawei.com",
        "time": "Mon Oct 08 16:33:06 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:54 2012 +0900"
      },
      "message": "mm: fix-up zone present pages\n\nI think zone-\u003epresent_pages indicates pages that buddy system can management,\nit should be:\n\n\tzone-\u003epresent_pages \u003d spanned pages - absent pages - bootmem pages,\n\nbut is now:\n\tzone-\u003epresent_pages \u003d spanned pages - absent pages - memmap pages.\n\nspanned pages: total size, including holes.\nabsent pages: holes.\nbootmem pages: pages used in system boot, managed by bootmem allocator.\nmemmap pages: pages used by page structs.\n\nThis may cause zone-\u003epresent_pages less than it should be.  For example,\nnuma node 1 has ZONE_NORMAL and ZONE_MOVABLE, it\u0027s memmap and other\nbootmem will be allocated from ZONE_MOVABLE, so ZONE_NORMAL\u0027s\npresent_pages should be spanned pages - absent pages, but now it also\nminus memmap pages(free_area_init_core), which are actually allocated from\nZONE_MOVABLE.  When offlining all memory of a zone, this will cause\nzone-\u003epresent_pages less than 0, because present_pages is unsigned long\ntype, it is actually a very large integer, it indirectly caused\nzone-\u003ewatermark[WMARK_MIN] becomes a large\ninteger(setup_per_zone_wmarks()), than cause totalreserve_pages become a\nlarge integer(calculate_totalreserve_pages()), and finally cause memory\nallocating failure when fork process(__vm_enough_memory()).\n\n[root@localhost ~]# dmesg\n-bash: fork: Cannot allocate memory\n\nI think the bug described in\n\n  http://marc.info/?l\u003dlinux-mm\u0026m\u003d134502182714186\u0026w\u003d2\n\nis also caused by wrong zone present pages.\n\nThis patch intends to fix-up zone-\u003epresent_pages when memory are freed to\nbuddy system on x86_64 and IA64 platforms.\n\nSigned-off-by: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Jiang Liu \u003cjiang.liu@huawei.com\u003e\nReported-by: Petr Tesarik \u003cptesarik@suse.cz\u003e\nTested-by: Petr Tesarik \u003cptesarik@suse.cz\u003e\nCc: \"Luck, Tony\" \u003ctony.luck@intel.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nCc: Yinghai Lu \u003cyinghai@kernel.org\u003e\nCc: Minchan Kim \u003cminchan.kim@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\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": "723a0644a7255f532575fd43245f9ef976491328",
      "tree": "1dfca4e804a7031889af36dbbf2a991637333680",
      "parents": [
        "3f6d4caeb9a9d8f7e5bbf3f49f1fd71e1414ff64"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Mon Oct 08 16:32:52 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:52 2012 +0900"
      },
      "message": "mm/page_alloc: refactor out __alloc_contig_migrate_alloc()\n\n__alloc_contig_migrate_alloc() can be used by memory-hotplug so refactor\nit out (move + rename as a common name) into page_isolation.c.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Kamezawa Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Wen Congyang \u003cwency@cn.fujitsu.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": "62997027ca5b3d4618198ed8b1aba40b61b1137b",
      "tree": "cf26352e091ae10f7201d98ca774a8c0e5f8cdfd",
      "parents": [
        "c89511ab2f8fe2b47585e60da8af7fd213ec877e"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 08 16:32:47 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:51 2012 +0900"
      },
      "message": "mm: compaction: clear PG_migrate_skip based on compaction and reclaim activity\n\nCompaction caches if a pageblock was scanned and no pages were isolated so\nthat the pageblocks can be skipped in the future to reduce scanning.  This\ninformation is not cleared by the page allocator based on activity due to\nthe impact it would have to the page allocator fast paths.  Hence there is\na requirement that something clear the cache or pageblocks will be skipped\nforever.  Currently the cache is cleared if there were a number of recent\nallocation failures and it has not been cleared within the last 5 seconds.\nTime-based decisions like this are terrible as they have no relationship\nto VM activity and is basically a big hammer.\n\nUnfortunately, accurate heuristics would add cost to some hot paths so\nthis patch implements a rough heuristic.  There are two cases where the\ncache is cleared.\n\n1. If a !kswapd process completes a compaction cycle (migrate and free\n   scanner meet), the zone is marked compact_blockskip_flush. When kswapd\n   goes to sleep, it will clear the cache. This is expected to be the\n   common case where the cache is cleared. It does not really matter if\n   kswapd happens to be asleep or going to sleep when the flag is set as\n   it will be woken on the next allocation request.\n\n2. If there have been multiple failures recently and compaction just\n   finished being deferred then a process will clear the cache and start a\n   full scan.  This situation happens if there are multiple high-order\n   allocation requests under heavy memory pressure.\n\nThe clearing of the PG_migrate_skip bits and other scans is inherently\nracy but the race is harmless.  For allocations that can fail such as THP,\nthey will simply fail.  For requests that cannot fail, they will retry the\nallocation.  Tests indicated that scanning rates were roughly similar to\nwhen the time-based heuristic was used and the allocation success rates\nwere similar.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Richard Davies \u003crichard@arachsys.com\u003e\nCc: Shaohua Li \u003cshli@kernel.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Rafael Aquini \u003caquini@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": "c89511ab2f8fe2b47585e60da8af7fd213ec877e",
      "tree": "c6b04cb5335957e8409edc77ca23ef012d9d326d",
      "parents": [
        "bb13ffeb9f6bfeb301443994dfbf29f91117dfb3"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 08 16:32:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:50 2012 +0900"
      },
      "message": "mm: compaction: Restart compaction from near where it left off\n\nThis is almost entirely based on Rik\u0027s previous patches and discussions\nwith him about how this might be implemented.\n\nOrder \u003e 0 compaction stops when enough free pages of the correct page\norder have been coalesced.  When doing subsequent higher order\nallocations, it is possible for compaction to be invoked many times.\n\nHowever, the compaction code always starts out looking for things to\ncompact at the start of the zone, and for free pages to compact things to\nat the end of the zone.\n\nThis can cause quadratic behaviour, with isolate_freepages starting at the\nend of the zone each time, even though previous invocations of the\ncompaction code already filled up all free memory on that end of the zone.\n This can cause isolate_freepages to take enormous amounts of CPU with\ncertain workloads on larger memory systems.\n\nThis patch caches where the migration and free scanner should start from\non subsequent compaction invocations using the pageblock-skip information.\n When compaction starts it begins from the cached restart points and will\nupdate the cached restart points until a page is isolated or a pageblock\nis skipped that would have been scanned by synchronous compaction.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Richard Davies \u003crichard@arachsys.com\u003e\nCc: Shaohua Li \u003cshli@kernel.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nAcked-by: Rafael Aquini \u003caquini@redhat.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@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": "bb13ffeb9f6bfeb301443994dfbf29f91117dfb3",
      "tree": "45e0e6574c0165da9cdc993b3401fe3263e4761c",
      "parents": [
        "753341a4b85ff337487b9959c71c529f522004f4"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 08 16:32:41 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:50 2012 +0900"
      },
      "message": "mm: compaction: cache if a pageblock was scanned and no pages were isolated\n\nWhen compaction was implemented it was known that scanning could\npotentially be excessive.  The ideal was that a counter be maintained for\neach pageblock but maintaining this information would incur a severe\npenalty due to a shared writable cache line.  It has reached the point\nwhere the scanning costs are a serious problem, particularly on\nlong-lived systems where a large process starts and allocates a large\nnumber of THPs at the same time.\n\nInstead of using a shared counter, this patch adds another bit to the\npageblock flags called PG_migrate_skip.  If a pageblock is scanned by\neither migrate or free scanner and 0 pages were isolated, the pageblock is\nmarked to be skipped in the future.  When scanning, this bit is checked\nbefore any scanning takes place and the block skipped if set.\n\nThe main difficulty with a patch like this is \"when to ignore the cached\ninformation?\" If it\u0027s ignored too often, the scanning rates will still be\nexcessive.  If the information is too stale then allocations will fail\nthat might have otherwise succeeded.  In this patch\n\no CMA always ignores the information\no If the migrate and free scanner meet then the cached information will\n  be discarded if it\u0027s at least 5 seconds since the last time the cache\n  was discarded\no If there are a large number of allocation failures, discard the cache.\n\nThe time-based heuristic is very clumsy but there are few choices for a\nbetter event.  Depending solely on multiple allocation failures still\nallows excessive scanning when THP allocations are failing in quick\nsuccession due to memory pressure.  Waiting until memory pressure is\nrelieved would cause compaction to continually fail instead of using\nreclaim/compaction to try allocate the page.  The time-based mechanism is\nclumsy but a better option is not obvious.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Richard Davies \u003crichard@arachsys.com\u003e\nCc: Shaohua Li \u003cshli@kernel.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nAcked-by: Rafael Aquini \u003caquini@redhat.com\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nCc: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Mark Brown \u003cbroonie@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "753341a4b85ff337487b9959c71c529f522004f4",
      "tree": "6a705fd73dd599e7eeb58cb06e84c86c07c03a64",
      "parents": [
        "f40d1e42bb988d2a26e8e111ea4c4c7bac819b7e"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 08 16:32:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:50 2012 +0900"
      },
      "message": "revert \"mm: have order \u003e 0 compaction start off where it left\"\n\nThis reverts commit 7db8889ab05b (\"mm: have order \u003e 0 compaction start\noff where it left\") and commit de74f1cc (\"mm: have order \u003e 0 compaction\nstart near a pageblock with free pages\").  These patches were a good\nidea and tests confirmed that they massively reduced the amount of\nscanning but the implementation is complex and tricky to understand.  A\nlater patch will cache what pageblocks should be skipped and\nreimplements the concept of compact_cached_free_pfn on top for both\nmigration and free scanners.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Richard Davies \u003crichard@arachsys.com\u003e\nCc: Shaohua Li \u003cshli@kernel.org\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nAcked-by: Rafael Aquini \u003caquini@redhat.com\u003e\nAcked-by: Minchan Kim \u003cminchan@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": "f2d52fe51c8c0a18cf5fbe583bad51090d12c146",
      "tree": "ab7ffa1804c4d97f6aed88e02cb5fa7a19021e75",
      "parents": [
        "e9d24ad30fc5c4c601824fb39712350b053ca812"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "liwanp@linux.vnet.ibm.com",
        "time": "Mon Oct 08 16:32:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:47 2012 +0900"
      },
      "message": "mm/memblock: cleanup early_node_map[] related comments\n\nCommit 0ee332c14518 (\"memblock: Kill early_node_map[]\") removed\nearly_node_map[].  Clean up the comments to comply with that change.\n\nSigned-off-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Gavin Shan \u003cshangw@linux.vnet.ibm.com\u003e\nCc: Yinghai Lu \u003cyinghai@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": "45cac65b0fcd287ebb877b141d40ba9bbe8e5da7",
      "tree": "30ed25c91aaeed153de51a78d171cb14582e383f",
      "parents": [
        "e79bee24fd6134f90af4228cfebd010136d67631"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Mon Oct 08 16:32:19 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:47 2012 +0900"
      },
      "message": "readahead: fault retry breaks mmap file read random detection\n\n.fault now can retry.  The retry can break state machine of .fault.  In\nfilemap_fault, if page is miss, ra-\u003emmap_miss is increased.  In the second\ntry, since the page is in page cache now, ra-\u003emmap_miss is decreased.  And\nthese are done in one fault, so we can\u0027t detect random mmap file access.\n\nAdd a new flag to indicate .fault is tried once.  In the second try, skip\nra-\u003emmap_miss decreasing.  The filemap_fault state machine is ok with it.\n\nI only tested x86, didn\u0027t test other archs, but looks the change for other\narchs is obvious, but who knows :)\n\nSigned-off-by: Shaohua Li \u003cshaohua.li@fusionio.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Wu Fengguang \u003cfengguang.wu@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": "e79bee24fd6134f90af4228cfebd010136d67631",
      "tree": "ecc678106bbf4672becca8f798aaf94276eaa2c4",
      "parents": [
        "435b405c06119d93333738172b8060b0ed12af41"
      ],
      "author": {
        "name": "Shaohua Li",
        "email": "shli@kernel.org",
        "time": "Mon Oct 08 16:32:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:46 2012 +0900"
      },
      "message": "atomic: implement generic atomic_dec_if_positive()\n\nThe x86 implementation of atomic_dec_if_positive is quite generic, so make\nit available to all architectures.\n\nThis is needed for \"swap: add a simple detector for inappropriate swapin\nreadahead\".\n\n[akpm@linux-foundation.org: do the \"#define foo foo\" trick in the conventional manner]\nSigned-off-by: Shaohua Li \u003cshli@fusionio.com\u003e\nCc: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Michal Simek \u003cmonstr@monstr.eu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "435b405c06119d93333738172b8060b0ed12af41",
      "tree": "a87f9a493f5c677ab23eeab1eab2e45caeb79bc3",
      "parents": [
        "41d575ad4a511b71a4a41c8313004212f5c229b1"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Mon Oct 08 16:32:16 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:46 2012 +0900"
      },
      "message": "memory-hotplug: fix pages missed by race rather than failing\n\nIf race between allocation and isolation in memory-hotplug offline\nhappens, some pages could be in MIGRATE_MOVABLE of free_list although the\npageblock\u0027s migratetype of the page is MIGRATE_ISOLATE.\n\nThe race could be detected by get_freepage_migratetype in\n__test_page_isolated_in_pageblock.  If it is detected, now EBUSY gets\nbubbled all the way up and the hotplug operations fails.\n\nBut better idea is instead of returning and failing memory-hotremove, move\nthe free page to the correct list at the time it is detected.  It could\nenhance memory-hotremove operation success ratio although the race is\nreally rare.\n\nSuggested by Mel Gorman.\n\n[akpm@linux-foundation.org: small cleanup]\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nCc: Wen Congyang \u003cwency@cn.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": "95e3441248053fc06bbb1dbbd34409a84211619e",
      "tree": "8c8312184b515826ca4343fa81b77d703d291398",
      "parents": [
        "b12c4ad14ee0232ad47c2bef404b6d42a3578332"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Mon Oct 08 16:32:11 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:45 2012 +0900"
      },
      "message": "mm: remain migratetype in freed page\n\nThe page allocator caches the pageblock information in page-\u003eprivate while\nit is in the PCP freelists but this is overwritten with the order of the\npage when freed to the buddy allocator.  This patch stores the migratetype\nof the page in the page-\u003eindex field so that it is available at all times\nwhen the page remain in free_list.\n\nThis patch adds a new call site in __free_pages_ok so it might be overhead\na bit but it\u0027s for high order allocation.  So I believe damage isn\u0027t hurt.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nCc: Wen Congyang \u003cwency@cn.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": "b12c4ad14ee0232ad47c2bef404b6d42a3578332",
      "tree": "9fc0d3fa799b7aef83f824eb538f0b75c3af0683",
      "parents": [
        "d95ea5d18e699515468368415c93ed49b1a3221b"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Mon Oct 08 16:32:08 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:45 2012 +0900"
      },
      "message": "mm: page_alloc: use get_freepage_migratetype() instead of page_private()\n\nThe page allocator uses set_page_private and page_private for handling\nmigratetype when it frees page.  Let\u0027s replace them with [set|get]\n_freepage_migratetype to make it more clear.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nCc: Wen Congyang \u003cwency@cn.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": "d1ce749a0db12202b711d1aba1d29e823034648d",
      "tree": "b9b1f0e1d4fcda9ab900575f42f5ddc155d28648",
      "parents": [
        "2139cbe627b8910ded55148f87ee10f7485408ed"
      ],
      "author": {
        "name": "Bartlomiej Zolnierkiewicz",
        "email": "b.zolnierkie@samsung.com",
        "time": "Mon Oct 08 16:32:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:44 2012 +0900"
      },
      "message": "cma: count free CMA pages\n\nAdd NR_FREE_CMA_PAGES counter to be later used for checking watermark in\n__zone_watermark_ok().  For simplicity and to avoid #ifdef hell make this\ncounter always available (not only when CONFIG_CMA\u003dy).\n\n[akpm@linux-foundation.org: use conventional migratetype naming]\nSigned-off-by: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\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": "02c6de8d757cb32c0829a45d81c3dfcbcafd998b",
      "tree": "0d8f0d182a44ba4ec4af0c909d01eb663e03e254",
      "parents": [
        "70400303ce0c4ced3139499c676d5c79636b0c72"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Mon Oct 08 16:31:55 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:43 2012 +0900"
      },
      "message": "mm: cma: discard clean pages during contiguous allocation instead of migration\n\nDrop clean cache pages instead of migration during alloc_contig_range() to\nminimise allocation latency by reducing the amount of migration that is\nnecessary.  It\u0027s useful for CMA because latency of migration is more\nimportant than evicting the background process\u0027s working set.  In\naddition, as pages are reclaimed then fewer free pages for migration\ntargets are required so it avoids memory reclaiming to get free pages,\nwhich is a contributory factor to increased latency.\n\nI measured elapsed time of __alloc_contig_migrate_range() which migrates\n10M in 40M movable zone in QEMU machine.\n\nBefore - 146ms, After - 7ms\n\n[akpm@linux-foundation.org: fix nommu build]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nReviewed-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nTested-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38a76013ad809beb0b52f60d365c960d035bd83c",
      "tree": "c63ba707ab17dd1ff1e90650faf74570daa3cf9f",
      "parents": [
        "523d4e2008fd4a68b1a164e63e8c75b7b20f07e0"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:50 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:42 2012 +0900"
      },
      "message": "mm: avoid taking rmap locks in move_ptes()\n\nDuring mremap(), the destination VMA is generally placed after the\noriginal vma in rmap traversal order: in move_vma(), we always have\nnew_pgoff \u003e\u003d vma-\u003evm_pgoff, and as a result new_vma-\u003evm_pgoff \u003e\u003d\nvma-\u003evm_pgoff unless vma_merge() merged the new vma with an adjacent one.\n\nWhen the destination VMA is placed after the original in rmap traversal\norder, we can avoid taking the rmap locks in move_ptes().\n\nEssentially, this reintroduces the optimization that had been disabled in\n\"mm anon rmap: remove anon_vma_moveto_tail\".  The difference is that we\ndon\u0027t try to impose the rmap traversal order; instead we just rely on\nthings being in the desired order in the common case and fall back to\ntaking locks in the uncommon case.  Also we skip the i_mmap_mutex in\naddition to the anon_vma lock: in both cases, the vmas are traversed in\nincreasing vm_pgoff order with ties resolved in tree insertion order.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.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": "ed8ea8150182f8d715fceb3b175ef0a9ebacd872",
      "tree": "3af48f3a947df4dc5a0df660988f61d454a88cf2",
      "parents": [
        "86c2ad19956f84f2191e062fcb979367b6365871"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:45 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:42 2012 +0900"
      },
      "message": "mm: add CONFIG_DEBUG_VM_RB build option\n\nAdd a CONFIG_DEBUG_VM_RB build option for the previously existing\nDEBUG_MM_RB code.  Now that Andi Kleen modified it to avoid using\nrecursive algorithms, we can expose it a bit more.\n\nAlso extend this code to validate_mm() after stack expansion, and to check\nthat the vma\u0027s start and last pgoffs have not changed since the nodes were\ninserted on the anon vma interval tree (as it is important that the nodes\nbe reindexed after each such update).\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.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": "bf181b9f9d8dfbba58b23441ad60d0bc33806d64",
      "tree": "7ad0caaf8998f31c5d910dcbb768f5a1d381b5f4",
      "parents": [
        "108d6642ad81bb1d62b401490a334d2c12397517"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:41 2012 +0900"
      },
      "message": "mm anon rmap: replace same_anon_vma linked list with an interval tree.\n\nWhen a large VMA (anon or private file mapping) is first touched, which\nwill populate its anon_vma field, and then split into many regions through\nthe use of mprotect(), the original anon_vma ends up linking all of the\nvmas on a linked list.  This can cause rmap to become inefficient, as we\nhave to walk potentially thousands of irrelevent vmas before finding the\none a given anon page might fall into.\n\nBy replacing the same_anon_vma linked list with an interval tree (where\neach avc\u0027s interval is determined by its vma\u0027s start and last pgoffs), we\ncan make rmap efficient for this use case again.\n\nWhile the change is large, all of its pieces are fairly simple.\n\nMost places that were walking the same_anon_vma list were looking for a\nknown pgoff, so they can just use the anon_vma_interval_tree_foreach()\ninterval tree iterator instead.  The exception here is ksm, where the\npage\u0027s index is not known.  It would probably be possible to rework ksm so\nthat the index would be known, but for now I have decided to keep things\nsimple and just walk the entirety of the interval tree there.\n\nWhen updating vma\u0027s that already have an anon_vma assigned, we must take\ncare to re-index the corresponding avc\u0027s on their interval tree.  This is\ndone through the use of anon_vma_interval_tree_pre_update_vma() and\nanon_vma_interval_tree_post_update_vma(), which remove the avc\u0027s from\ntheir interval tree before the update and re-insert them after the update.\n The anon_vma stays locked during the update, so there is no chance that\nrmap would miss the vmas that are being updated.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.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": "108d6642ad81bb1d62b401490a334d2c12397517",
      "tree": "27df7d1777d80b9dddeaefaac928b726ff82a816",
      "parents": [
        "9826a516ff77c5820e591211e4f3e58ff36f46be"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:36 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:41 2012 +0900"
      },
      "message": "mm anon rmap: remove anon_vma_moveto_tail\n\nmremap() had a clever optimization where move_ptes() did not take the\nanon_vma lock to avoid a race with anon rmap users such as page migration.\n Instead, the avc\u0027s were ordered in such a way that the origin vma was\nalways visited by rmap before the destination.  This ordering and the use\nof page table locks rmap usage safe.  However, we want to replace the use\nof linked lists in anon rmap with an interval tree, and this will make it\nharder to impose such ordering as the interval tree will always be sorted\nby the avc-\u003evma-\u003evm_pgoff value.  For now, let\u0027s replace the\nanon_vma_moveto_tail() ordering function with proper anon_vma locking in\nmove_ptes().  Once we have the anon interval tree in place, we will\nre-introduce an optimization to avoid taking these locks in the most\ncommon cases.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.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": "9826a516ff77c5820e591211e4f3e58ff36f46be",
      "tree": "bdec1e2fe5ff95569795069bac73977faba17d57",
      "parents": [
        "9c079add0d0f45220f4bb37febf0621137ec2d38"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:35 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:40 2012 +0900"
      },
      "message": "mm: interval tree updates\n\nUpdate the generic interval tree code that was introduced in \"mm: replace\nvma prio_tree with an interval tree\".\n\nChanges:\n\n- fixed \u0027endpoing\u0027 typo noticed by Andrew Morton\n\n- replaced include/linux/interval_tree_tmpl.h, which was used as a\n  template (including it automatically defined the interval tree\n  functions) with include/linux/interval_tree_generic.h, which only\n  defines a preprocessor macro INTERVAL_TREE_DEFINE(), which itself\n  defines the interval tree functions when invoked. Now that is a very\n  long macro which is unfortunate, but it does make the usage sites\n  (lib/interval_tree.c and mm/interval_tree.c) a bit nicer than previously.\n\n- make use of RB_DECLARE_CALLBACKS() in the INTERVAL_TREE_DEFINE() macro,\n  instead of duplicating that code in the interval tree template.\n\n- replaced vma_interval_tree_add(), which was actually handling the\n  nonlinear and interval tree cases, with vma_interval_tree_insert_after()\n  which handles only the interval tree case and has an API that is more\n  consistent with the other interval tree handling functions.\n  The nonlinear case is now handled explicitly in kernel/fork.c dup_mmap().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.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": "9c079add0d0f45220f4bb37febf0621137ec2d38",
      "tree": "ce6ba6d7e2d517a2004de856c882f2a08af12be2",
      "parents": [
        "147e615f83c2c36caf89e7a3bf78090ade6f266c"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:33 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:40 2012 +0900"
      },
      "message": "rbtree: move augmented rbtree functionality to rbtree_augmented.h\n\nProvide rb_insert_augmented() and rb_erase_augmented() through a new\nrbtree_augmented.h include file.  rb_erase_augmented() is defined there as\nan __always_inline function, in order to allow inlining of augmented\nrbtree callbacks into it.  Since this generates a relatively large\nfunction, each augmented rbtree user should make sure to have a single\ncall site.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "147e615f83c2c36caf89e7a3bf78090ade6f266c",
      "tree": "0cd64fd67f4b55bbe364217911a8100827c8b04f",
      "parents": [
        "85d3a316c714197f94e75c1e5b2d37607d66e5de"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:40 2012 +0900"
      },
      "message": "prio_tree: remove\n\nAfter both prio_tree users have been converted to use red-black trees,\nthere is no need to keep around the prio tree library anymore.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6b2dbba8b6ac4df26f72eda1e5ea7bab9f950e08",
      "tree": "422ed8d7ac2fe45069f20cfba84a9a097bf444af",
      "parents": [
        "fff3fd8a1210a165252cd7cd01206da7a90d3a06"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:39 2012 +0900"
      },
      "message": "mm: replace vma prio_tree with an interval tree\n\nImplement an interval tree as a replacement for the VMA prio_tree.  The\nalgorithms are similar to lib/interval_tree.c; however that code can\u0027t be\ndirectly reused as the interval endpoints are not explicitly stored in the\nVMA.  So instead, the common algorithm is moved into a template and the\ndetails (node type, how to get interval endpoints from the node, etc) are\nfilled in using the C preprocessor.\n\nOnce the interval tree functions are available, using them as a\nreplacement to the VMA prio tree is a relatively simple, mechanical job.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fff3fd8a1210a165252cd7cd01206da7a90d3a06",
      "tree": "3db89d48720ba726999e9d8486d8e991c7664123",
      "parents": [
        "3908836aa77e3621aaf2101f2920e01d7c8460d6"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:39 2012 +0900"
      },
      "message": "rbtree: add prio tree and interval tree tests\n\nPatch 1 implements support for interval trees, on top of the augmented\nrbtree API. It also adds synthetic tests to compare the performance of\ninterval trees vs prio trees. Short answers is that interval trees are\nslightly faster (~25%) on insert/erase, and much faster (~2.4 - 3x)\non search. It is debatable how realistic the synthetic test is, and I have\nnot made such measurements yet, but my impression is that interval trees\nwould still come out faster.\n\nPatch 2 uses a preprocessor template to make the interval tree generic,\nand uses it as a replacement for the vma prio_tree.\n\nPatch 3 takes the other prio_tree user, kmemleak, and converts it to use\na basic rbtree. We don\u0027t actually need the augmented rbtree support here\nbecause the intervals are always non-overlapping.\n\nPatch 4 removes the now-unused prio tree library.\n\nPatch 5 proposes an additional optimization to rb_erase_augmented, now\nproviding it as an inline function so that the augmented callbacks can be\ninlined in. This provides an additional 5-10% performance improvement\nfor the interval tree insert/erase benchmark. There is a maintainance cost\nas it exposes augmented rbtree users to some of the rbtree library internals;\nhowever I think this cost shouldn\u0027t be too high as I expect the augmented\nrbtree will always have much less users than the base rbtree.\n\nI should probably add a quick summary of why I think it makes sense to\nreplace prio trees with augmented rbtree based interval trees now.  One of\nthe drivers is that we need augmented rbtrees for Rik\u0027s vma gap finding\ncode, and once you have them, it just makes sense to use them for interval\ntrees as well, as this is the simpler and more well known algorithm.  prio\ntrees, in comparison, seem *too* clever: they impose an additional \u0027heap\u0027\nconstraint on the tree, which they use to guarantee a faster worst-case\ncomplexity of O(k+log N) for stabbing queries in a well-balanced prio\ntree, vs O(k*log N) for interval trees (where k\u003dnumber of matches,\nN\u003dnumber of intervals).  Now this sounds great, but in practice prio trees\ndon\u0027t realize this theorical benefit.  First, the additional constraint\nmakes them harder to update, so that the kernel implementation has to\nsimplify things by balancing them like a radix tree, which is not always\nideal.  Second, the fact that there are both index and heap properties\nmakes both tree manipulation and search more complex, which results in a\nhigher multiplicative time constant.  As it turns out, the simple interval\ntree algorithm ends up running faster than the more clever prio tree.\n\nThis patch:\n\nAdd two test modules:\n\n- prio_tree_test measures the performance of lib/prio_tree.c, both for\n  insertion/removal and for stabbing searches\n\n- interval_tree_test measures the performance of a library of equivalent\n  functionality, built using the augmented rbtree support.\n\nIn order to support the second test module, lib/interval_tree.c is\nintroduced. It is kept separate from the interval_tree_test main file\nfor two reasons: first we don\u0027t want to provide an unfair advantage\nover prio_tree_test by having everything in a single compilation unit,\nand second there is the possibility that the interval tree functionality\ncould get some non-test users in kernel over time.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3908836aa77e3621aaf2101f2920e01d7c8460d6",
      "tree": "3e8f5b619f9e093d9d53180bb6f496319ddeb946",
      "parents": [
        "9d9e6f9703bbd642f3f2f807e6aaa642a4cbcec9"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:38 2012 +0900"
      },
      "message": "rbtree: add RB_DECLARE_CALLBACKS() macro\n\nAs proposed by Peter Zijlstra, this makes it easier to define the augmented\nrbtree callbacks.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9d9e6f9703bbd642f3f2f807e6aaa642a4cbcec9",
      "tree": "6d0061d6c1369bb006da753cc2cea55df60efe0f",
      "parents": [
        "14b94af0b251a2c80885b60538166fb7d04a642e"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:20 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:38 2012 +0900"
      },
      "message": "rbtree: remove prior augmented rbtree implementation\n\nconvert arch/x86/mm/pat_rbtree.c to the proposed augmented rbtree api\nand remove the old augmented rbtree implementation.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "14b94af0b251a2c80885b60538166fb7d04a642e",
      "tree": "ef447d340435c441f8c3e54eb8f26f747aa73108",
      "parents": [
        "dadf93534f125b9eda486b471446a8456a603d27"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:31:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:37 2012 +0900"
      },
      "message": "rbtree: faster augmented rbtree manipulation\n\nIntroduce new augmented rbtree APIs that allow minimal recalculation of\naugmented node information.\n\nA new callback is added to the rbtree insertion and erase rebalancing\nfunctions, to be called on each tree rotations. Such rotations preserve\nthe subtree\u0027s root augmented value, but require recalculation of the one\nchild that was previously located at the subtree root.\n\nIn the insertion case, the handcoded search phase must be updated to\nmaintain the augmented information on insertion, and then the rbtree\ncoloring/rebalancing algorithms keep it up to date.\n\nIn the erase case, things are more complicated since it is library\ncode that manipulates the rbtree in order to remove internal nodes.\nThis requires a couple additional callbacks to copy a subtree\u0027s\naugmented value when a new root is stitched in, and to recompute\naugmented values down the ancestry path when a node is removed from\nthe tree.\n\nIn order to preserve maximum speed for the non-augmented case,\nwe provide two versions of each tree manipulation function.\nrb_insert_augmented() is the augmented equivalent of rb_insert_color(),\nand rb_erase_augmented() is the augmented equivalent of rb_erase().\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: David Woodhouse \u003cdwmw2@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bf7ad8eeab995710c766df49c9c69a8592ca0216",
      "tree": "737988d677b8ea408a44a58a949cc0e8eda02440",
      "parents": [
        "ea5272f5c94fb2ee62f4f15a5b88eef6184cd506"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:32 2012 +0900"
      },
      "message": "rbtree: move some implementation details from rbtree.h to rbtree.c\n\nrbtree users must use the documented APIs to manipulate the tree\nstructure.  Low-level helpers to manipulate node colors and parenthood are\nnot part of that API, so move them to lib/rbtree.c\n\n[dwmw2@infradead.org: fix jffs2 build issue due to renamed __rb_parent_color field]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: David Woodhouse \u003cDavid.Woodhouse@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": "4c199a93a2d36b277a9fd209a0f2793f8460a215",
      "tree": "b7d6af9220ef445eb4a9f5f0966a3bc5306fe513",
      "parents": [
        "1457d2877864d918c546735bd89c29d5e2a542f1"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:32 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:32 2012 +0900"
      },
      "message": "rbtree: empty nodes have no color\n\nEmpty nodes have no color.  We can make use of this property to simplify\nthe code emitted by the RB_EMPTY_NODE and RB_CLEAR_NODE macros.  Also,\nwe can get rid of the rb_init_node function which had been introduced by\ncommit 88d19cf37952 (\"timers: Add rb_init_node() to allow for stack\nallocated rb nodes\") to avoid some issue with the empty node\u0027s color not\nbeing initialized.\n\nI\u0027m not sure what the RB_EMPTY_NODE checks in rb_prev() / rb_next() are\ndoing there, though.  axboe introduced them in commit 10fd48f2376d\n(\"rbtree: fixed reversed RB_EMPTY_NODE and rb_next/prev\").  The way I\nsee it, the \u0027empty node\u0027 abstraction is only used by rbtree users to\nflag nodes that they haven\u0027t inserted in any rbtree, so asking the\npredecessor or successor of such nodes doesn\u0027t make any sense.\n\nOne final rb_init_node() caller was recently added in sysctl code to\nimplement faster sysctl name lookups.  This code doesn\u0027t make use of\nRB_EMPTY_NODE at all, and from what I could see it only called\nrb_init_node() under the mistaken assumption that such initialization was\nrequired before node insertion.\n\n[sfr@canb.auug.org.au: fix net/ceph/osd_client.c build]\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Stephen Rothwell \u003csfr@canb.auug.org.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1457d2877864d918c546735bd89c29d5e2a542f1",
      "tree": "e15204c2fe46d359b357f963e99a3906ed7eb2e5",
      "parents": [
        "1638113d9d8b7e04c1eeae9014d43f6381a74040"
      ],
      "author": {
        "name": "Michel Lespinasse",
        "email": "walken@google.com",
        "time": "Mon Oct 08 16:30:28 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:31 2012 +0900"
      },
      "message": "rbtree: reference Documentation/rbtree.txt for usage instructions\n\nI recently started looking at the rbtree code (with an eye towards\nimproving the augmented rbtree support, but I haven\u0027t gotten there yet).\nI noticed a lot of possible speed improvements, which I am now proposing\nin this patch set.\n\nPatches 1-4 are preparatory: remove internal functions from rbtree.h so\nthat users won\u0027t be tempted to use them instead of the documented APIs,\nclean up some incorrect usages I\u0027ve noticed (in particular, with the\nrecently added fs/proc/proc_sysctl.c rbtree usage), reference the\ndocumentation so that people have one less excuse to miss it, etc.\n\nPatch 5 is a small module I wrote to check the rbtree performance.  It\ncreates 100 nodes with random keys and repeatedly inserts and erases them\nfrom an rbtree.  Additionally, it has code to check for rbtree invariants\nafter each insert or erase operation.\n\nPatches 6-12 is where the rbtree optimizations are done, and they touch\nonly that one file, lib/rbtree.c .  I am getting good results out of these\n- in my small benchmark doing rbtree insertion (including search) and\nerase, I\u0027m seeing a 30% runtime reduction on Sandybridge E5, which is more\nthan I initially thought would be possible.  (the results aren\u0027t as\nimpressive on my two other test hosts though, AMD barcelona and Intel\nWestmere, where I am seeing 14% runtime reduction only).  The code size -\nboth source (ommiting comments) and compiled - is also shorter after these\nchanges.  However, I do admit that the updated code is more arduous to\nread - one big reason for that is the removal of the tree rotation\nhelpers, which added some overhead but also made it easier to reason about\nthings locally.  Overall, I believe this is an acceptable compromise,\ngiven that this code doesn\u0027t get modified very often, and that I have good\ntests for it.\n\nUpon Peter\u0027s suggestion, I added comments showing the rtree configuration\nbefore every rotation.  I think they help; however it\u0027s still best to have\na copy of the cormen/leiserson/rivest book when digging into this code.\n\nThis patch: reference Documentation/rbtree.txt for usage instructions\n\ninclude/linux/rbtree.h included some basic usage instructions, while\nDocumentation/rbtree.txt had some more complete and easier to follow\ninstructions.  Replacing the former with a reference to the latter.\n\nSigned-off-by: Michel Lespinasse \u003cwalken@google.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: David Woodhouse \u003cDavid.Woodhouse@intel.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Daniel Santos \u003cdaniel.santos@pobox.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3ebcf64381188a2744a9829a4eb5c2b60f1974c",
      "tree": "6c2bc18729bd6fc12b93d82403fad6afec319c3b",
      "parents": [
        "15626062f4a98279c59a2a5208c496cf65cbf8c0"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Mon Oct 08 16:30:07 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:29 2012 +0900"
      },
      "message": "thp: remove assumptions on pgtable_t type\n\nThe thp page table pre-allocation code currently assumes that pgtable_t is\nof type \"struct page *\".  This may not be true for all architectures, so\nthis patch removes that assumption by replacing the functions\nprepare_pmd_huge_pte() and get_pmd_huge_pte() with two new functions that\ncan be defined architecture-specific.\n\nIt also removes two VM_BUG_ON checks for page_count() and page_mapcount()\noperating on a pgtable_t.  Apart from the VM_BUG_ON removal, there will be\nno functional change introduced by this patch.\n\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Hillf Danton \u003cdhillf@gmail.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01dc52ebdf472f77cca623ca693ca24cfc0f1bbe",
      "tree": "2d0f35f2aff418d52a84fb50974ad3bacf68d4bd",
      "parents": [
        "d5dc0ad928fb9e972001e552597fd0b794863f34"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Mon Oct 08 16:29:30 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:24 2012 +0900"
      },
      "message": "oom: remove deprecated oom_adj\n\nThe deprecated /proc/\u003cpid\u003e/oom_adj is scheduled for removal this month.\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "21a92735f660eaecf69a6f2e777f18463760ec32",
      "tree": "15299bab0280cfccfce1d97168234411cb4799b8",
      "parents": [
        "48af0d7cb3c87fae2ff38af372821dcb0b019c9e"
      ],
      "author": {
        "name": "Sagi Grimberg",
        "email": "sagig@mellanox.co.il",
        "time": "Mon Oct 08 16:29:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:23 2012 +0900"
      },
      "message": "mm: mmu_notifier: have mmu_notifiers use a global SRCU so they may safely schedule\n\nWith an RCU based mmu_notifier implementation, any callout to\nmmu_notifier_invalidate_range_{start,end}() or\nmmu_notifier_invalidate_page() would not be allowed to call schedule()\nas that could potentially allow a modification to the mmu_notifier\nstructure while it is currently being used.\n\nSince srcu allocs 4 machine words per instance per cpu, we may end up\nwith memory exhaustion if we use srcu per mm.  So all mms share a global\nsrcu.  Note that during large mmu_notifier activity exit \u0026 unregister\npaths might hang for longer periods, but it is tolerable for current\nmmu_notifier clients.\n\nSigned-off-by: Sagi Grimberg \u003csagig@mellanox.co.il\u003e\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Haggai Eran \u003chaggaie@mellanox.com\u003e\nCc: \"Paul E. McKenney\" \u003cpaulmck@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "48af0d7cb3c87fae2ff38af372821dcb0b019c9e",
      "tree": "13e7cee9d6b2ed1a69cf7ef322d4697a2085d5ea",
      "parents": [
        "00442ad04a5eac08a98255697c510e708f6082e2"
      ],
      "author": {
        "name": "Xiao Guangrong",
        "email": "xiaoguangrong@linux.vnet.ibm.com",
        "time": "Mon Oct 08 16:29:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:22 2012 +0900"
      },
      "message": "mm: mmu_notifier: fix inconsistent memory between secondary MMU and host\n\nThere is a bug in set_pte_at_notify() which always sets the pte to the\nnew page before releasing the old page in the secondary MMU.  At this\ntime, the process will access on the new page, but the secondary MMU\nstill access on the old page, the memory is inconsistent between them\n\nThe below scenario shows the bug more clearly:\n\nat the beginning: *p \u003d 0, and p is write-protected by KSM or shared with\nparent process\n\nCPU 0                                       CPU 1\nwrite 1 to p to trigger COW,\nset_pte_at_notify will be called:\n  *pte \u003d new_page + W; /* The W bit of pte is set */\n\n                                     *p \u003d 1; /* pte is valid, so no #PF */\n\n                                     return back to secondary MMU, then\n                                     the secondary MMU read p, but get:\n                                     *p \u003d\u003d 0;\n\n                         /*\n                          * !!!!!!\n                          * the host has already set p to 1, but the secondary\n                          * MMU still get the old value 0\n                          */\n\n  call mmu_notifier_change_pte to release\n  old page in secondary MMU\n\nWe can fix it by release old page first, then set the pte to the new\npage.\n\nNote, the new page will be firstly used in secondary MMU before it is\nmapped into the page table of the process, but this is safe because it\nis protected by the page table lock, there is no race to change the pte\n\n[akpm@linux-foundation.org: add comment from Andrea]\nSigned-off-by: Xiao Guangrong \u003cxiaoguangrong@linux.vnet.ibm.com\u003e\nCc: Avi Kivity \u003cavi@redhat.com\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.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": "b22d127a39ddd10d93deee3d96e643657ad53a49",
      "tree": "9a16e3d3a53a230dba611c85e9f892dda2b6c202",
      "parents": [
        "869833f2c5c6e4dd09a5378cfc665ffb4615e5d2"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 08 16:29:17 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:22 2012 +0900"
      },
      "message": "mempolicy: fix a race in shared_policy_replace()\n\nshared_policy_replace() use of sp_alloc() is unsafe.  1) sp_node cannot\nbe dereferenced if sp-\u003elock is not held and 2) another thread can modify\nsp_node between spin_unlock for allocating a new sp node and next\nspin_lock.  The bug was introduced before 2.6.12-rc2.\n\nKosaki\u0027s original patch for this problem was to allocate an sp node and\npolicy within shared_policy_replace and initialise it when the lock is\nreacquired.  I was not keen on this approach because it partially\nduplicates sp_alloc().  As the paths were sp-\u003elock is taken are not that\nperformance critical this patch converts sp-\u003elock to sp-\u003emutex so it can\nsleep when calling sp_alloc().\n\n[kosaki.motohiro@jp.fujitsu.com: Original patch]\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nReviewed-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Josh Boyer \u003cjwboyer@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": "1fb3f8ca0e9222535a39b884cb67a34628411b9f",
      "tree": "5e72498f44d4fcae18f29eb87dd05a849a7a23c9",
      "parents": [
        "83fde0f22872aa8c1d46f775cc7bdfa864499e65"
      ],
      "author": {
        "name": "Mel Gorman",
        "email": "mgorman@suse.de",
        "time": "Mon Oct 08 16:29:12 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:21 2012 +0900"
      },
      "message": "mm: compaction: capture a suitable high-order page immediately when it is made available\n\nWhile compaction is migrating pages to free up large contiguous blocks\nfor allocation it races with other allocation requests that may steal\nthese blocks or break them up.  This patch alters direct compaction to\ncapture a suitable free page as soon as it becomes available to reduce\nthis race.  It uses similar logic to split_free_page() to ensure that\nwatermarks are still obeyed.\n\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nReviewed-by: Minchan Kim \u003cminchan@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": "314e51b9851b4f4e8ab302243ff5a6fc6147f379",
      "tree": "f757b89206355fd129830782566768693eed23ce",
      "parents": [
        "0103bd16fb90bc741c7a03fd1ea4e8a505abad23"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:29:02 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:19 2012 +0900"
      },
      "message": "mm: kill vma flag VM_RESERVED and mm-\u003ereserved_vm counter\n\nA long time ago, in v2.4, VM_RESERVED kept swapout process off VMA,\ncurrently it lost original meaning but still has some effects:\n\n | effect                 | alternative flags\n-+------------------------+---------------------------------------------\n1| account as reserved_vm | VM_IO\n2| skip in core dump      | VM_IO, VM_DONTDUMP\n3| do not merge or expand | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP\n4| do not mlock           | VM_IO, VM_DONTEXPAND, VM_HUGETLB, VM_PFNMAP\n\nThis patch removes reserved_vm counter from mm_struct.  Seems like nobody\ncares about it, it does not exported into userspace directly, it only\nreduces total_vm showed in proc.\n\nThus VM_RESERVED can be replaced with VM_IO or pair VM_DONTEXPAND | VM_DONTDUMP.\n\nremap_pfn_range() and io_remap_pfn_range() set VM_IO|VM_DONTEXPAND|VM_DONTDUMP.\nremap_vmalloc_range() set VM_DONTEXPAND | VM_DONTDUMP.\n\n[akpm@linux-foundation.org: drivers/vfio/pci/vfio_pci.c fixup]\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0103bd16fb90bc741c7a03fd1ea4e8a505abad23",
      "tree": "720cb5bf0734fcae36d9af584023c086de0a7ea2",
      "parents": [
        "e9714acf8c439688884234dcac2bfc38bb607d38"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:59 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:18 2012 +0900"
      },
      "message": "mm: prepare VM_DONTDUMP for using in drivers\n\nRename VM_NODUMP into VM_DONTDUMP: this name matches other negative flags:\nVM_DONTEXPAND, VM_DONTCOPY.  Currently this flag used only for\nsys_madvise.  The next patch will use it for replacing the outdated flag\nVM_RESERVED.\n\nAlso forbid madvise(MADV_DODUMP) for special kernel mappings VM_SPECIAL\n(VM_IO | VM_DONTEXPAND | VM_RESERVED | VM_PFNMAP)\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e9714acf8c439688884234dcac2bfc38bb607d38",
      "tree": "2e21c88f855a9f5168a143fa9948141140ff02a2",
      "parents": [
        "2dd8ad81e31d0d36a5d448329c646ab43eb17788"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:18 2012 +0900"
      },
      "message": "mm: kill vma flag VM_EXECUTABLE and mm-\u003enum_exe_file_vmas\n\nCurrently the kernel sets mm-\u003eexe_file during sys_execve() and then tracks\nnumber of vmas with VM_EXECUTABLE flag in mm-\u003enum_exe_file_vmas, as soon\nas this counter drops to zero kernel resets mm-\u003eexe_file to NULL.  Plus it\nresets mm-\u003eexe_file at last mmput() when mm-\u003emm_users drops to zero.\n\nVMA with VM_EXECUTABLE flag appears after mapping file with flag\nMAP_EXECUTABLE, such vmas can appears only at sys_execve() or after vma\nsplitting, because sys_mmap ignores this flag.  Usually binfmt module sets\nmm-\u003eexe_file and mmaps executable vmas with this file, they hold\nmm-\u003eexe_file while task is running.\n\ncomment from v2.6.25-6245-g925d1c4 (\"procfs task exe symlink\"),\nwhere all this stuff was introduced:\n\n\u003e The kernel implements readlink of /proc/pid/exe by getting the file from\n\u003e the first executable VMA.  Then the path to the file is reconstructed and\n\u003e reported as the result.\n\u003e\n\u003e Because of the VMA walk the code is slightly different on nommu systems.\n\u003e This patch avoids separate /proc/pid/exe code on nommu systems.  Instead of\n\u003e walking the VMAs to find the first executable file-backed VMA we store a\n\u003e reference to the exec\u0027d file in the mm_struct.\n\u003e\n\u003e That reference would prevent the filesystem holding the executable file\n\u003e from being unmounted even after unmapping the VMAs.  So we track the number\n\u003e of VM_EXECUTABLE VMAs and drop the new reference when the last one is\n\u003e unmapped.  This avoids pinning the mounted filesystem.\n\nexe_file\u0027s vma accounting is hooked into every file mmap/unmmap and vma\nsplit/merge just to fix some hypothetical pinning fs from umounting by mm,\nwhich already unmapped all its executable files, but still alive.\n\nSeems like currently nobody depends on this behaviour.  We can try to\nremove this logic and keep mm-\u003eexe_file until final mmput().\n\nmm-\u003eexe_file is still protected with mm-\u003emmap_sem, because we want to\nchange it via new sys_prctl(PR_SET_MM_EXE_FILE).  Also via this syscall\ntask can change its mm-\u003eexe_file and unpin mountpoint explicitly.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b173bc4daa8f8ec03a85abf5e47b23502ff80af",
      "tree": "173d0523555e02a077e0af4563bd4cadea46cb23",
      "parents": [
        "4b6e1e37026ec7dae9b23d78ffcebdd5ddb1bfa1"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:17 2012 +0900"
      },
      "message": "mm: kill vma flag VM_CAN_NONLINEAR\n\nMove actual pte filling for non-linear file mappings into the new special\nvma operation: -\u003eremap_pages().\n\nFilesystems must implement this method to get non-linear mapping support,\nif it uses filemap_fault() then generic_file_remap_pages() can be used.\n\nNow device drivers can implement this method and obtain nonlinear vma support.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\t#arch/tile\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b6e1e37026ec7dae9b23d78ffcebdd5ddb1bfa1",
      "tree": "10200483a705005f41f543ed433581409cf2bf5f",
      "parents": [
        "cc2383ec06be093789469852e1fe96e1148e9a2c"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:40 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:17 2012 +0900"
      },
      "message": "mm: kill vma flag VM_INSERTPAGE\n\nMerge VM_INSERTPAGE into VM_MIXEDMAP.  VM_MIXEDMAP VMA can mix pure-pfn\nptes, special ptes and normal ptes.\n\nNow copy_page_range() always copies VM_MIXEDMAP VMA on fork like\nVM_PFNMAP.  If driver populates whole VMA at mmap() it probably not\nexpects page-faults.\n\nThis patch removes special check from vma_wants_writenotify() which\ndisables pages write tracking for VMA populated via vm_instert_page().\nBDI below mapped file should not use dirty-accounting, moreover\ndo_wp_page() can handle this.\n\nvm_insert_page() still marks vma after first usage.  Usually it is called\nfrom f_op-\u003emmap() handler under mm-\u003emmap_sem write-lock, so it able to\nchange vma-\u003evm_flags.  Caller must set VM_MIXEDMAP at mmap time if it\nwants to call this function from other places, for example from page-fault\nhandler.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc2383ec06be093789469852e1fe96e1148e9a2c",
      "tree": "ea65c486104507000cdc5c2957015f2895dda7a2",
      "parents": [
        "b3b9c2932c32e0692018ed5f12f3fd8c70eea8ce"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:37 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:16 2012 +0900"
      },
      "message": "mm: introduce arch-specific vma flag VM_ARCH_1\n\nCombine several arch-specific vma flags into one.\n\nbefore patch:\n\n        0x00000200      0x01000000      0x20000000      0x40000000\nx86     VM_NOHUGEPAGE   VM_HUGEPAGE     -               VM_PAT\npowerpc -               -               VM_SAO          -\nparisc  VM_GROWSUP      -               -               -\nia64    VM_GROWSUP      -               -               -\nnommu   -               VM_MAPPED_COPY  -               -\nothers  -               -               -               -\n\nafter patch:\n\n        0x00000200      0x01000000      0x20000000      0x40000000\nx86     -               VM_PAT          VM_HUGEPAGE     VM_NOHUGEPAGE\npowerpc -               VM_SAO          -               -\nparisc  -               VM_GROWSUP      -               -\nia64    -               VM_GROWSUP      -               -\nnommu   -               VM_MAPPED_COPY  -               -\nothers  -               VM_ARCH_1       -               -\n\nAnd voila! One completely free bit.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b3b9c2932c32e0692018ed5f12f3fd8c70eea8ce",
      "tree": "bca2431f0b0bd2d364f041f0344836cd39b1822c",
      "parents": [
        "5180da410db6369d1f95c9014da1c9bc33fb043e"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Mon Oct 08 16:28:34 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:16 2012 +0900"
      },
      "message": "mm, x86, pat: rework linear pfn-mmap tracking\n\nReplace the generic vma-flag VM_PFN_AT_MMAP with x86-only VM_PAT.\n\nWe can toss mapping address from remap_pfn_range() into\ntrack_pfn_vma_new(), and collect all PAT-related logic together in\narch/x86/.\n\nThis patch also restores orignal frustration-free is_cow_mapping() check\nin remap_pfn_range(), as it was before commit v2.6.28-rc8-88-g3c8bb73\n(\"x86: PAT: store vm_pgoff for all linear_over_vma_region mappings - v3\")\n\nis_linear_pfn_mapping() checks can be removed from mm/huge_memory.c,\nbecause it already handled by VM_PFNMAP in VM_NO_THP bit-mask.\n\n[suresh.b.siddha@intel.com: Reset the VM_PAT flag as part of untrack_pfn_vma()]\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Carsten Otte \u003ccotte@de.ibm.com\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Eric Paris \u003ceparis@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nCc: Jason Baron \u003cjbaron@redhat.com\u003e\nCc: Kentaro Takeda \u003ctakedakn@nttdata.co.jp\u003e\nCc: Matt Helsley \u003cmatthltc@us.ibm.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Robert Richter \u003crobert.richter@amd.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nAcked-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c654345924f7cce87bb221b89db91cba890421ba",
      "tree": "980c9a496ac0e2497ef156ff5b83701295d1ecf8",
      "parents": [
        "075663d19885eb3738fd2d7dbdb8947e12563b68"
      ],
      "author": {
        "name": "Rik van Riel",
        "email": "riel@redhat.com",
        "time": "Mon Oct 08 16:28:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 16:22:15 2012 +0900"
      },
      "message": "mm: remove __GFP_NO_KSWAPD\n\nWhen transparent huge pages were introduced, memory compaction and swap\nstorms were an issue, and the kernel had to be careful to not make THP\nallocations cause pageout or compaction.\n\nNow that we have working compaction deferral, kswapd is smart enough to\ninvoke compaction and the quadratic behaviour around isolate_free_pages\nhas been fixed, it should be safe to remove __GFP_NO_KSWAPD.\n\n[minchan@kernel.org: Comment fix]\n[mgorman@suse.de: Avoid direct reclaim for deferred compaction]\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Mel Gorman \u003cmgorman@suse.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8711798772641b2f593beebebcab5b1ec2309f0c",
      "tree": "3d2c9697a67009b990f10f0bd7f2ae56d43961a5",
      "parents": [
        "121977187ca0a7f20b848530deb04cc56167769b",
        "7f8d145d43ebfe4526e12021324ffd9f24e1ee81"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 15:54:27 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 15:54:27 2012 +0900"
      },
      "message": "Merge branch \u0027linux-next\u0027 of git://git.open-osd.org/linux-open-osd\n\nPull exofs update from Boaz Harrosh:\n \"Just three one liners\"\n\n* \u0027linux-next\u0027 of git://git.open-osd.org/linux-open-osd:\n  pnfs_osd_xdr: Remove unused #include from pnfs_osd_xdr.h\n  ore: signedness bug in _sp2d_min_pg()\n  exofs: check for allocation failure in uri_store()\n"
    },
    {
      "commit": "f5a246eab9a268f51ba8189ea5b098a1bfff200e",
      "tree": "a6ff7169e0bcaca498d9aec8b0624de1b74eaecb",
      "parents": [
        "d5bbd43d5f450c3fca058f5b85f3dfb4e8cc88c9",
        "7ff34ad80b7080fafaac8efa9ef0061708eddd51"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 07:07:14 2012 +0900"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Oct 09 07:07:14 2012 +0900"
      },
      "message": "Merge tag \u0027sound-3.7\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound\n\nPull sound updates from Takashi Iwai:\n \"This contains pretty many small commits covering fairly large range of\n  files in sound/ directory.  Partly because of additional API support\n  and partly because of constantly developed ASoC and ARM stuff.\n\n  Some highlights:\n\n   - Introduced the helper function and documentation for exposing the\n     channel map via control API, as discussed in Plumbers; most of PCI\n     drivers are covered, will follow more drivers later\n\n   - Most of drivers have been replaced with the new PM callbacks (if\n     the bus is supported)\n\n   - HD-audio controller got the support of runtime PM and the support\n     of D3 clock-stop.  Also changing the power_save option in sysfs\n     kicks off immediately to enable / disable the power-save mode.\n\n   - Another significant code change in HD-audio is the rewrite of\n     firmware loading code.  Other than that, most of changes in\n     HD-audio are continued cleanups and standardization for the generic\n     auto parser and bug fixes (HBR, device-specific fixups), in\n     addition to the support of channel-map API.\n\n   - Addition of ASoC bindings for the compressed API, used by the\n     mid-x86 drivers.\n\n   - Lots of cleanups and API refreshes for ASoC codec drivers and\n     DaVinci.\n\n   - Conversion of OMAP to dmaengine.\n\n   - New machine driver for Wolfson Microelectronics Bells.\n\n   - New CODEC driver for Wolfson Microelectronics WM0010.\n\n   - Enhancements to the ux500 and wm2000 drivers\n\n   - A new driver for DA9055 and the support for regulator bypass mode.\"\n\nFix up various arm soc header file reorg conflicts.\n\n* tag \u0027sound-3.7\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (339 commits)\n  ALSA: hda - Add new codec ALC283 ALC290 support\n  ALSA: hda - avoid unneccesary indices on \"Headphone Jack\" controls\n  ALSA: hda - fix indices on boost volume on Conexant\n  ALSA: aloop - add locking to timer access\n  ALSA: hda - Fix hang caused by race during suspend.\n  sound: Remove unnecessary semicolon\n  ALSA: hda/realtek - Fix detection of ALC271X codec\n  ALSA: hda - Add inverted internal mic quirk for Lenovo IdeaPad U310\n  ALSA: hda - make Realtek/Sigmatel/Conexant use the generic unsol event\n  ALSA: hda - make a generic unsol event handler\n  ASoC: codecs: Add DA9055 codec driver\n  ASoC: eukrea-tlv320: Convert it to platform driver\n  ALSA: ASoC: add DT bindings for CS4271\n  ASoC: wm_hubs: Ensure volume updates are handled during class W startup\n  ASoC: wm5110: Adding missing volume update bits\n  ASoC: wm5110: Add OUT3R support\n  ASoC: wm5110: Add AEC loopback support\n  ASoC: wm5110: Rename EPOUT to HPOUT3\n  ASoC: arizona: Add more clock rates\n  ASoC: arizona: Add more DSP options for mixer input muxes\n  ...\n"
    },
    {
      "commit": "863472454ce50d4ef0929c6aa738cc5d64b84679",
      "tree": "10a938801074b41e53c8237c92390e745b47a521",
      "parents": [
        "48cc32d38a52d0b68f91a171a8d00531edc6a46e"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Mon Oct 08 21:38:50 2012 +0200"
      },
      "committer": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Mon Oct 08 15:40:43 2012 -0400"
      },
      "message": "ipv6: gro: fix PV6_GRO_CB(skb)-\u003eproto problem\n\nIt seems IPV6_GRO_CB(skb)-\u003eproto can be destroyed in skb_gro_receive()\nif a new skb is allocated (to serve as an anchor for frag_list)\n\nWe copy NAPI_GRO_CB() only (not the IPV6 specific part) in :\n\n*NAPI_GRO_CB(nskb) \u003d *NAPI_GRO_CB(p);\n\nSo we leave IPV6_GRO_CB(nskb)-\u003eproto to 0 (fresh skb allocation) instead\nof IPPROTO_TCP (6)\n\nipv6_gro_complete() isnt able to call ops-\u003egro_complete()\n[ tcp6_gro_complete() ]\n\nFix this by moving proto in NAPI_GRO_CB() and getting rid of\nIPV6_GRO_CB\n\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    }
  ],
  "next": "48cc32d38a52d0b68f91a171a8d00531edc6a46e"
}
