)]}'
{
  "log": [
    {
      "commit": "b8889c4fc6ba03e289cec6a4d692f6f080a55e53",
      "tree": "45078625e0bfd865489b297d84eed17983d6d538",
      "parents": [
        "fac33bfdb0a54e149f8d1c2f002de5b57770b84c",
        "0de6cfb9f314db230c47b2158e7725208b3b4728"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 11:27:01 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 11:27:01 2015 -0700"
      },
      "message": "Merge tag \u0027tty-4.3-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty\n\nPull tty driver reverts from Greg KH:\n \"Here are some reverts for some tty patches (specifically the pl011\n  driver) that ended up breaking a bunch of machines (i.e. almost all\n  of the ones with this chip).\n\n  People are working on a fix for this, but in the meantime, it\u0027s best\n  to just revert all 5 patches to restore people\u0027s serial consoles.\n\n  These reverts have been in linux-next for many days now\"\n\n* tag \u0027tty-4.3-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:\n  Revert \"uart: pl011: Rename regs with enumeration\"\n  Revert \"uart: pl011: Introduce register accessor\"\n  Revert \"uart: pl011: Introduce register look up table\"\n  Revert \"uart: pl011: Improve LCRH register access decision\"\n  Revert \"uart: pl011: Add support to ZTE ZX296702 uart\"\n"
    },
    {
      "commit": "fac33bfdb0a54e149f8d1c2f002de5b57770b84c",
      "tree": "377ec6daf15f0139ac3b14198ae7277f950a4615",
      "parents": [
        "82278fc079542a04e076da34546a7d6dc649b0cc",
        "2ff46e6fea6254ac8fa97aeb9c14e51436ab95f6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 11:17:33 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 11:17:33 2015 -0700"
      },
      "message": "Merge tag \u0027for-linus-20150909\u0027 of git://git.infradead.org/linux-mtd\n\nPull more MTD updates from Brian Norris:\n \"There was one significant bug in my first pull request, fixed here.  I\n  also threw in a few trivial ID additions and a small module rename.\n\n  Details:\n\n   - SPI NOR: bug fix for a \"end of table\" check that resulted in a NULL\n     dereference in some cases\n\n   - SPI NOR: a few new IDs / feature flags\n\n   - OMAP2 NAND: rename module so it doesn\u0027t conflict with onenand\n     omap2.ko\"\n\n* tag \u0027for-linus-20150909\u0027 of git://git.infradead.org/linux-mtd:\n  mtd: spi-nor: fix NULL dereference when no match found in spi_nor_ids[]\n  mtd: spi-nor: s25sl064p supports both dual and quad I/O\n  mtd: spi-nor: allow dual/quad reads on S25FL129P\n  mtd: nand: omap2: Rename shippable module to omap2_nand\n  mtd: spi-nor: Add support for sst25wf020a\n  mtd: spi-nor: Add support for Micron n25q064a serial flash\n"
    },
    {
      "commit": "82278fc079542a04e076da34546a7d6dc649b0cc",
      "tree": "96d32ea11f41ee6623190f31f4f6a9263f0c9ddc",
      "parents": [
        "bd2843fe1f29f6145c623ae9390f144cefaa611d",
        "7a5938201834a9c25155176d0f5942d48336b244"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 10:55:32 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 10:55:32 2015 -0700"
      },
      "message": "Merge tag \u0027pwm/for-4.3-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm\n\nPull pwm updates from Thierry Reding:\n \"This set of changes introduces the beginnings of a new API that\u0027s\n  based around the concept of states that can be atomically applied.\n  Drivers go to various lengths to implement something similar, which\n  indicates that the core should really be providing the necessary\n  framework.\n\n  On top of that, there is a bit of cleanup as well as improved\n  kerneldoc and integration into the device-drivers DocBook.\n\n  Regarding drivers there is a new one for the NXP LPC18xx family of\n  SoCs and a couple of fixes for existing drivers (pca9685, Broadcom\n  Kona and Atmel HLCDC)\"\n\n* tag \u0027pwm/for-4.3-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:\n  ARM: at91: pwm: atmel-hlcdc: Add at91sam9n12 errata\n  pwm: Add NXP LPC18xx PWM/SCT DT binding documentation\n  pwm: NXP LPC18xx PWM/SCT driver\n  pwm-pca9685: Support changing the output frequency\n  pwm-pca9685: Fix several driver bugs\n  pwm: kona: Modify settings application sequence\n  pwm: pca9685: Drop owner assignment\n  pwm: Add to device-drivers documentation\n  pwm: Clean up kerneldoc\n  pwm: Remove useless whitespace\n  pwm: sysfs: Remove unnecessary padding\n  pwm: sysfs: Properly convert from enum to string\n  pwm: Make use of pwm_get_xxx() helpers where appropriate\n  pwm: Add pwm_get_polarity() helper function\n  pwm: Constify PWM device where possible\n  pwm: Add the pwm_is_enabled() helper\n"
    },
    {
      "commit": "bd2843fe1f29f6145c623ae9390f144cefaa611d",
      "tree": "78627367006fa23ea40a53adc0ddb6c528b43005",
      "parents": [
        "daf0e1ed578f65e8395102549e135887e6661860"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Wed Sep 09 10:16:39 2015 +0100"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 10:43:12 2015 -0700"
      },
      "message": "fix ufs write vs readpage race when writing into a hole\n\nFollowup to the UFS series - with the way we clear the new blocks (via\nbuffer cache, possibly on more than a page worth of file) we really\nshould not insert a reference to new block into inode block tree until\nafter we\u0027d cleared it.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "daf0e1ed578f65e8395102549e135887e6661860",
      "tree": "72d0a515fcbc0f8f5039a30139edf738e11b6063",
      "parents": [
        "065d80b4bf314df143aa9f260a154a24e33b4fbe",
        "997e120843e82609c8d99a9d5714e6cf91e14cbe"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 10:37:41 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 10:37:41 2015 -0700"
      },
      "message": "Merge tag \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost\n\nPull virtio updates from Michael Tsirkin:\n \"Virtio fixes and features for 4.3:\n\n   - virtio-mmio can now be auto-loaded through acpi.\n   - virtio blk supports extended partitions.\n   - total memory is better reported when using virtio balloon with\n     auto-deflate.\n   - cache control is re-enabled when using virtio-blk in modern mode\"\n\n* tag \u0027for_linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:\n  virtio_balloon: do not change memory amount visible via /proc/meminfo\n  virtio_ballon: change stub of release_pages_by_pfn\n  virtio-blk: Allow extended partitions\n  virtio_mmio: add ACPI probing\n  virtio-blk: use VIRTIO_BLK_F_WCE and VIRTIO_BLK_F_CONFIG_WCE in virtio1\n"
    },
    {
      "commit": "065d80b4bf314df143aa9f260a154a24e33b4fbe",
      "tree": "51558ec7a9e760f7f9798979586e4a65c76cefa4",
      "parents": [
        "949feacb8af3659037dd34ef177e9bc727627859",
        "e7e98d76777ffba334bbf7a61939c5de48acc5a0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 10:27:59 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 10:27:59 2015 -0700"
      },
      "message": "Merge tag \u0027metag-for-v4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag\n\nPull metag updates from James Hogan:\n \"Metag architecture changes for v4.3.\n\n  Just a couple of changes for v4.3-rc1.  A preparatory IRQ patch to\n  prepare for moving irq_data struct members, and a tweak to\n  Documentation/features since Meta2 could support THP\"\n\n* tag \u0027metag-for-v4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jhogan/metag:\n  Documentation/features/vm: Meta2 is capable of THP\n  metag/irq: Use access helper irq_data_get_affinity_mask()\n"
    },
    {
      "commit": "949feacb8af3659037dd34ef177e9bc727627859",
      "tree": "8041ce2291e7add8f416db38de23c5301501abb4",
      "parents": [
        "384989b58d45e5478d555cdb4ac79336a88a45cc",
        "08441d462ebdc64df79b392f877e26522616bad5"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 10:07:32 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 10:07:32 2015 -0700"
      },
      "message": "Merge tag \u0027nios2-v4.3-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2\n\nPull nios2 updates from Ley Foon Tan:\n\n - add defconfig and device tree for max 10 support\n - migrate to new \u0027set-state\u0027 interface for timer\n - fix unaligned handler\n - MAINTAINERS: update nios2 git repo\n\n* tag \u0027nios2-v4.3-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2:\n  nios2: add Max10 defconfig\n  nios2: Add Max10 device tree\n  MAINTAINERS: update nios2 git repo\n  nios2: remove unused statistic counters\n  nios2: fixed variable imm16 to s16\n  nios2/time: Migrate to new \u0027set-state\u0027 interface\n"
    },
    {
      "commit": "384989b58d45e5478d555cdb4ac79336a88a45cc",
      "tree": "ef5cd02bb97d72d02538975620cdd668169558f0",
      "parents": [
        "d77e92e270edd79a2218ce0ba5b6179ad0c93175",
        "5fb4e288a025af1abc5c67ecebf30fbf6b3edad1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 09:59:35 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 09:59:35 2015 -0700"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull cifs updates from Steve French:\n \"Small cifs fix and a patch for improved debugging\"\n\n* \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6:\n  cifs: Fix use-after-free on mid_q_entry\n  Update cifs version number\n  Add way to query server fs info for smb3\n"
    },
    {
      "commit": "d77e92e270edd79a2218ce0ba5b6179ad0c93175",
      "tree": "0d78eb591d71929df4ba28b302227c32ef525131",
      "parents": [
        "26d2177e977c912863ac04f6c1a967e793ca3a56"
      ],
      "author": {
        "name": "Ross Zwisler",
        "email": "ross.zwisler@linux.intel.com",
        "time": "Wed Sep 09 10:29:40 2015 -0600"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 09:47:57 2015 -0700"
      },
      "message": "dax: update PMD fault handler with PMEM API\n\nAs part of the v4.3 merge window the DAX code was updated by Matthew and\nKirill to handle PMD pages.  Also as part of the v4.3 merge window we\nupdated the DAX code to do proper PMEM flushing (commit 2765cfbb342c:\n\"dax: update I/O path to do proper PMEM flushing\").\n\nThe additional code added by the DAX PMD patches also needs to be\nupdated to properly use the PMEM API.  This ensures that after a PMD\nfault is handled the zeros written to the newly allocated pages are\ndurable on the DIMMs.\n\nlinux/dax.h is included to get rid of a bunch of sparse warnings.\n\nSigned-off-by: Ross Zwisler \u003cross.zwisler@linux.intel.com\u003e\nCc: Matthew Wilcox \u003cwilly@linux.intel.com\u003e,\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Kirill Shutemov \u003ckirill@shutemov.name\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26d2177e977c912863ac04f6c1a967e793ca3a56",
      "tree": "48da04fb0b947cfa404747690d7081b657e33221",
      "parents": [
        "a794b4f3292160bb3fd0f1f90ec8df454e3b17b3",
        "d1178cbcdcf91900ccf10a177350d7945703c151"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 08:33:31 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Sep 09 08:33:31 2015 -0700"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma\n\nPull inifiniband/rdma updates from Doug Ledford:\n \"This is a fairly sizeable set of changes.  I\u0027ve put them through a\n  decent amount of testing prior to sending the pull request due to\n  that.\n\n  There are still a few fixups that I know are coming, but I wanted to\n  go ahead and get the big, sizable chunk into your hands sooner rather\n  than waiting for those last few fixups.\n\n  Of note is the fact that this creates what is intended to be a\n  temporary area in the drivers/staging tree specifically for some\n  cleanups and additions that are coming for the RDMA stack.  We\n  deprecated two drivers (ipath and amso1100) and are waiting to hear\n  back if we can deprecate another one (ehca).  We also put Intel\u0027s new\n  hfi1 driver into this area because it needs to be refactored and a\n  transfer library created out of the factored out code, and then it and\n  the qib driver and the soft-roce driver should all be modified to use\n  that library.\n\n  I expect drivers/staging/rdma to be around for three or four kernel\n  releases and then to go away as all of the work is completed and final\n  deletions of deprecated drivers are done.\n\n  Summary of changes for 4.3:\n\n   - Create drivers/staging/rdma\n   - Move amso1100 driver to staging/rdma and schedule for deletion\n   - Move ipath driver to staging/rdma and schedule for deletion\n   - Add hfi1 driver to staging/rdma and set TODO for move to regular\n     tree\n   - Initial support for namespaces to be used on RDMA devices\n   - Add RoCE GID table handling to the RDMA core caching code\n   - Infrastructure to support handling of devices with differing read\n     and write scatter gather capabilities\n   - Various iSER updates\n   - Kill off unsafe usage of global mr registrations\n   - Update SRP driver\n   - Misc  mlx4 driver updates\n   - Support for the mr_alloc verb\n   - Support for a netlink interface between kernel and user space cache\n     daemon to speed path record queries and route resolution\n   - Ininitial support for safe hot removal of verbs devices\"\n\n* tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (136 commits)\n  IB/ipoib: Suppress warning for send only join failures\n  IB/ipoib: Clean up send-only multicast joins\n  IB/srp: Fix possible protection fault\n  IB/core: Move SM class defines from ib_mad.h to ib_smi.h\n  IB/core: Remove unnecessary defines from ib_mad.h\n  IB/hfi1: Add PSM2 user space header to header_install\n  IB/hfi1: Add CSRs for CONFIG_SDMA_VERBOSITY\n  mlx5: Fix incorrect wc pkey_index assignment for GSI messages\n  IB/mlx5: avoid destroying a NULL mr in reg_user_mr error flow\n  IB/uverbs: reject invalid or unknown opcodes\n  IB/cxgb4: Fix if statement in pick_local_ip6adddrs\n  IB/sa: Fix rdma netlink message flags\n  IB/ucma: HW Device hot-removal support\n  IB/mlx4_ib: Disassociate support\n  IB/uverbs: Enable device removal when there are active user space applications\n  IB/uverbs: Explicitly pass ib_dev to uverbs commands\n  IB/uverbs: Fix race between ib_uverbs_open and remove_one\n  IB/uverbs: Fix reference counting usage of event files\n  IB/core: Make ib_dealloc_pd return void\n  IB/srp: Create an insecure all physical rkey only if needed\n  ...\n"
    },
    {
      "commit": "7a5938201834a9c25155176d0f5942d48336b244",
      "tree": "03a472e32ba854c9a4db19612aa8277dd68564ec",
      "parents": [
        "b0dabcc6f8b7cb08d5c81ecbc642105d67a4c1d2"
      ],
      "author": {
        "name": "Josh Wu",
        "email": "josh.wu@atmel.com",
        "time": "Fri Jul 31 18:51:20 2015 +0200"
      },
      "committer": {
        "name": "Thierry Reding",
        "email": "thierry.reding@gmail.com",
        "time": "Wed Sep 09 15:16:01 2015 +0200"
      },
      "message": "ARM: at91: pwm: atmel-hlcdc: Add at91sam9n12 errata\n\nThe errata for HLCDC PWM of at91sam9n12 are the same as for at91sam9x5.\n\nSigned-off-by: Josh Wu \u003cjosh.wu@atmel.com\u003e\nAcked-by: Alexandre Belloni \u003calexandre.belloni@free-electrons.com\u003e\nSigned-off-by: Thierry Reding \u003cthierry.reding@gmail.com\u003e\n"
    },
    {
      "commit": "b0dabcc6f8b7cb08d5c81ecbc642105d67a4c1d2",
      "tree": "b4107d6e7a0d3a53b12d32b6a67aef4cc83c3bf6",
      "parents": [
        "841e6f90bb789a1372087b22c39f3a9ef2e02758"
      ],
      "author": {
        "name": "Ariel D\u0027Alessandro",
        "email": "ariel@vanguardiasur.com.ar",
        "time": "Wed Aug 05 23:31:47 2015 -0300"
      },
      "committer": {
        "name": "Thierry Reding",
        "email": "thierry.reding@gmail.com",
        "time": "Wed Sep 09 15:01:41 2015 +0200"
      },
      "message": "pwm: Add NXP LPC18xx PWM/SCT DT binding documentation\n\nAdd the devicetree binding document for NXP LPC18xx PWM/SCT.\n\nSigned-off-by: Ariel D\u0027Alessandro \u003cariel@vanguardiasur.com.ar\u003e\nSigned-off-by: Thierry Reding \u003cthierry.reding@gmail.com\u003e\n"
    },
    {
      "commit": "841e6f90bb789a1372087b22c39f3a9ef2e02758",
      "tree": "f1c95b80f47c307f4263aa79c9578a3ea449231e",
      "parents": [
        "01ec8472009c973413d4dc6fb198f0cc40abb9b4"
      ],
      "author": {
        "name": "Ariel D\u0027Alessandro",
        "email": "ariel@vanguardiasur.com.ar",
        "time": "Wed Aug 05 23:31:46 2015 -0300"
      },
      "committer": {
        "name": "Thierry Reding",
        "email": "thierry.reding@gmail.com",
        "time": "Wed Sep 09 15:00:33 2015 +0200"
      },
      "message": "pwm: NXP LPC18xx PWM/SCT driver\n\nThis commit adds support for NXP LPC18xx PWM/SCT.\n\nNXP LPC SoCs family, which includes LPC18xx/LPC43xx, provides a State\nConfigurable Timer (SCT) which can be configured as a Pulse Width\nModulator. Other SoCs in that family may share the same hardware.\n\nThe PWM supports a total of 16 channels, but only 15 can be simultaneously\nrequested. There\u0027s only one period, global to all the channels, thus PWM\ndriver will refuse setting different values to it, unless there\u0027s only one\nchannel requested.\n\nSigned-off-by: Ariel D\u0027Alessandro \u003cariel@vanguardiasur.com.ar\u003e\n[thierry.reding@gmail.com: remove excessive padding of fields]\nSigned-off-by: Thierry Reding \u003cthierry.reding@gmail.com\u003e\n"
    },
    {
      "commit": "a794b4f3292160bb3fd0f1f90ec8df454e3b17b3",
      "tree": "113c5240f407cf25998b3d564fd97f58980bb803",
      "parents": [
        "f6f7a6369203fa3e07efb7f35cfd81efe9f25b07",
        "bf2d087749d91e1fa2826edde1e2fd650d3053ca"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 18:19:17 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 18:19:17 2015 -0700"
      },
      "message": "Merge tag \u0027for-linus-4.3\u0027 of git://git.code.sf.net/p/openipmi/linux-ipmi\n\nPull IPMI updates from Corey Minyard:\n \"Most of these have been sitting in linux-next for more than a release,\n  particularly commit 0fbcf4af7c83 (\"ipmi: Convert the IPMI SI ACPI\n  handling to a platform device\") which is probably the most complex\n  patch.\n\n  That is also the one that changes drivers/acpi/acpi_pnp.c.  The change\n  in that file is only removing IPMI from a \"special platform devices\"\n  list, since I convert it to the standard PNP interface.  I posted this\n  one to the ACPI list twice and got no response, and it seems to work\n  well in my testing, so I\u0027m hoping it\u0027s good.\n\n  Hidehiro Kawai posted a set of changes that improves the panic time\n  handling in the IPMI driver.\n\n  The rest of the changes are minor bug fixes or cleanups and some\n  documentation\"\n\n* tag \u0027for-linus-4.3\u0027 of git://git.code.sf.net/p/openipmi/linux-ipmi:\n  ipmi:ssif: Add a module parm to specify that SMBus alerts don\u0027t work\n  ipmi: add of_device_id in MODULE_DEVICE_TABLE\n  ipmi: Compensate for BMCs that wont set the irq enable bit\n  ipmi: Don\u0027t call receive handler in the panic context\n  ipmi: Avoid touching possible corrupted lists in the panic context\n  ipmi: Don\u0027t flush messages in sender() in run-to-completion mode\n  ipmi: Factor out message flushing procedure\n  ipmi: Remove unneeded set_run_to_completion call\n  ipmi: Make some data const that was only read\n  ipmi: constify SSIF ACPI device ids\n  ipmi: Delete an unnecessary check before the function call \"cleanup_one_si\"\n  char:ipmi - Change 1 to true for bool type variables during initialization.\n  impi:Remove unneeded setting of module owner to THIS_MODULE in the platform structure, powernv_ipmi_driver\n  ipmi: Add a comment in how messages are delivered from the lower layer\n  ipmi/powernv: Fix potential invalid pointer dereference\n  ipmi: Convert the IPMI SI ACPI handling to a platform device\n  ipmi: Add device tree bindings information\n"
    },
    {
      "commit": "f6f7a6369203fa3e07efb7f35cfd81efe9f25b07",
      "tree": "97bec9ddd999040822acf314647eaf4208213589",
      "parents": [
        "839fe9156fbe89c3157aa6146d22090f8cffddd8",
        "df69f52d990bd85159727bd26e819d3a6e49c666"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 17:52:23 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 17:52:23 2015 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew)\n\nMerge second patch-bomb from Andrew Morton:\n \"Almost all of the rest of MM.  There was an unusually large amount of\n  MM material this time\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (141 commits)\n  zpool: remove no-op module init/exit\n  mm: zbud: constify the zbud_ops\n  mm: zpool: constify the zpool_ops\n  mm: swap: zswap: maybe_preload \u0026 refactoring\n  zram: unify error reporting\n  zsmalloc: remove null check from destroy_handle_cache()\n  zsmalloc: do not take class lock in zs_shrinker_count()\n  zsmalloc: use class-\u003epages_per_zspage\n  zsmalloc: consider ZS_ALMOST_FULL as migrate source\n  zsmalloc: partial page ordering within a fullness_list\n  zsmalloc: use shrinker to trigger auto-compaction\n  zsmalloc: account the number of compacted pages\n  zsmalloc/zram: introduce zs_pool_stats api\n  zsmalloc: cosmetic compaction code adjustments\n  zsmalloc: introduce zs_can_compact() function\n  zsmalloc: always keep per-class stats\n  zsmalloc: drop unused variable `nr_to_migrate\u0027\n  mm/memblock.c: fix comment in __next_mem_range()\n  mm/page_alloc.c: fix type information of memoryless node\n  memory-hotplug: fix comments in zone_spanned_pages_in_node() and zone_spanned_pages_in_node()\n  ...\n"
    },
    {
      "commit": "839fe9156fbe89c3157aa6146d22090f8cffddd8",
      "tree": "4b47aa216c0a269ad002ee0f9f0681b44d0a80e7",
      "parents": [
        "54283aed90c3cf353e2c01a1d1ca853f5eedf92a",
        "6dc0dcde406bb0e40ad6a6f45f44534d3a094205"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 17:45:05 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 17:45:05 2015 -0700"
      },
      "message": "Merge branch \u0027parisc-4.3-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux\n\nPull parisc updates from Helge Deller:\n \"The most important changes in this patchset are:\n\n   - re-enable 64bit PCI bus addresses which were temporarily disabled\n     for PA-RISC in kernel 4.2\n\n   - fix the 64bit CAS operation in the LWS path which now enables us to\n     enable the 64bit gcc atomic builtins even on 32bit userspace with\n     64bit kernel\n\n   - fix a long-standing bug which sometimes crashed kernel at bootup\n     while serial interrupt wasn\u0027t registered yet\"\n\n* \u0027parisc-4.3-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:\n  parisc: Use platform_device_register_simple(\"rtc-generic\")\n  parisc: Drop CONFIG_SMP around update_cr16_clocksource()\n  parisc: Use double word condition in 64bit CAS operation\n  parisc: Filter out spurious interrupts in PA-RISC irq handler\n  parisc: Additionally check for in_atomic() in page fault handler\n  PCI,parisc: Enable 64-bit bus addresses on PA-RISC\n  parisc: Define ioremap_uc and ioremap_wc\n"
    },
    {
      "commit": "54283aed90c3cf353e2c01a1d1ca853f5eedf92a",
      "tree": "5886bf38f7a234f34044a95a43886cfd54376ed2",
      "parents": [
        "9a9952bbd76a13fc2c95c28f09ba1801a3664929",
        "7eba7d90d48217a97afc171a311b386bde965f39"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 17:39:10 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 17:39:10 2015 -0700"
      },
      "message": "Merge tag \u0027linux-kselftest-4.3-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest\n\nPull kselftest update from Shuah Khan:\n \"This update adds new zram test and fixes to problems found during\n  testing this new zram test.  In addition, there are a few bug fixes\n  and ksefltest improvement patches from Linaro developers.\n\n  I will send another update later on this week to fix kselftest\n  breakage due to commit 2bf9e0ab08c6 (\"locking/static_keys: Provide a\n  selftest\") after the fix soaks in next for a couple of days\"\n\n* tag \u0027linux-kselftest-4.3-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:\n  selftests/zram: Makefile fix\n  selftests/zram: must be run as root\n  selftests: breakpoints: fix installing error on the architecture except x86\n  selftests: check before install\n  selftests/zram: Adding zram tests\n"
    },
    {
      "commit": "9a9952bbd76a13fc2c95c28f09ba1801a3664929",
      "tree": "8ec6955ec8706dd28cc43161821b4350ebd80424",
      "parents": [
        "e81b594cdae73f341ea13bc9fb2b57a5b739c1a3",
        "4ad79562577a3936b08365260f86eeb83156479f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 17:22:35 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 17:22:35 2015 -0700"
      },
      "message": "Merge tag \u0027iommu-updates-v4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu\n\nPull iommu updates for from Joerg Roedel:\n \"This time the IOMMU updates are mostly cleanups or fixes.  No big new\n  features or drivers this time.  In particular the changes include:\n\n   - Bigger cleanup of the Domain\u003c-\u003eIOMMU data structures and the code\n     that manages them in the Intel VT-d driver.  This makes the code\n     easier to understand and maintain, and also easier to keep the data\n     structures in sync.  It is also a preparation step to make use of\n     default domains from the IOMMU core in the Intel VT-d driver.\n\n   - Fixes for a couple of DMA-API misuses in ARM IOMMU drivers, namely\n     in the ARM and Tegra SMMU drivers.\n\n   - Fix for a potential buffer overflow in the OMAP iommu driver\u0027s\n     debug code\n\n   - A couple of smaller fixes and cleanups in various drivers\n\n   - One small new feature: Report domain-id usage in the Intel VT-d\n     driver to easier detect bugs where these are leaked\"\n\n* tag \u0027iommu-updates-v4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (83 commits)\n  iommu/vt-d: Really use upper context table when necessary\n  x86/vt-d: Fix documentation of DRHD\n  iommu/fsl: Really fix init section(s) content\n  iommu/io-pgtable-arm: Unmap and free table when overwriting with block\n  iommu/io-pgtable-arm: Move init-fn declarations to io-pgtable.h\n  iommu/msm: Use BUG_ON instead of if () BUG()\n  iommu/vt-d: Access iomem correctly\n  iommu/vt-d: Make two functions static\n  iommu/vt-d: Use BUG_ON instead of if () BUG()\n  iommu/vt-d: Return false instead of 0 in irq_remapping_cap()\n  iommu/amd: Use BUG_ON instead of if () BUG()\n  iommu/amd: Make a symbol static\n  iommu/amd: Simplify allocation in irq_remapping_alloc()\n  iommu/tegra-smmu: Parameterize number of TLB lines\n  iommu/tegra-smmu: Factor out tegra_smmu_set_pde()\n  iommu/tegra-smmu: Extract tegra_smmu_pte_get_use()\n  iommu/tegra-smmu: Use __GFP_ZERO to allocate zeroed pages\n  iommu/tegra-smmu: Remove PageReserved manipulation\n  iommu/tegra-smmu: Convert to use DMA API\n  iommu/tegra-smmu: smmu_flush_ptc() wants device addresses\n  ...\n"
    },
    {
      "commit": "e81b594cdae73f341ea13bc9fb2b57a5b739c1a3",
      "tree": "2061ee4e7b77caa891a973cb647da63c2f6ff3ca",
      "parents": [
        "fa815580fb87d1b8c218f9eba8122b2fc3f1a68c",
        "072502a67c9164625288cca17704808e6c06273f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 16:48:55 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 16:48:55 2015 -0700"
      },
      "message": "Merge tag \u0027regmap-v4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap\n\nPull regmap updates from Mark Brown:\n \"This has been a busy release for regmap.\n\n  By far the biggest set of changes here are those from Markus Pargmann\n  which implement support for block transfers in smbus devices.  This\n  required quite a bit of refactoring but leaves us better able to\n  handle odd restrictions that controllers may have and with better\n  performance on smbus.\n\n  Other new features include:\n\n   - Fix interactions with lockdep for nested regmaps (eg, when a device\n     using regmap is connected to a bus where the bus controller has a\n     separate regmap).  Lockdep\u0027s default class identification is too\n     crude to work without help.\n\n   - Support for must write bitfield operations, useful for operations\n     which require writing a bit to trigger them from Kuniori Morimoto.\n\n   - Support for delaying during register patch application from Nariman\n     Poushin.\n\n   - Support for overriding cache state via the debugfs implementation\n     from Richard Fitzgerald\"\n\n* tag \u0027regmap-v4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap: (25 commits)\n  regmap: fix a NULL pointer dereference in __regmap_init\n  regmap: Support bulk reads for devices without raw formatting\n  regmap-i2c: Add smbus i2c block support\n  regmap: Add raw_write/read checks for max_raw_write/read sizes\n  regmap: regmap max_raw_read/write getter functions\n  regmap: Introduce max_raw_read/write for regmap_bulk_read/write\n  regmap: Add missing comments about struct regmap_bus\n  regmap: No multi_write support if bus-\u003ewrite does not exist\n  regmap: Split use_single_rw internally into use_single_read/write\n  regmap: Fix regmap_bulk_write for bus writes\n  regmap: regmap_raw_read return error on !bus-\u003eread\n  regulator: core: Print at debug level on debugfs creation failure\n  regmap: Fix regmap_can_raw_write check\n  regmap: fix typos in regmap.c\n  regmap: Fix integertypes for register address and value\n  regmap: Move documentation to regmap.h\n  regmap: Use different lockdep class for each regmap init call\n  thermal: sti: Add parentheses around bridge-\u003eops-\u003eregmap_init call\n  mfd: vexpress: Add parentheses around bridge-\u003eops-\u003eregmap_init call\n  regmap: debugfs: Fix misuse of IS_ENABLED\n  ...\n"
    },
    {
      "commit": "fa815580fb87d1b8c218f9eba8122b2fc3f1a68c",
      "tree": "73965c970b8b3879d770ae3729ab5154ff38262f",
      "parents": [
        "85579ad7f1dfc0b72bb243b7227bc4f663035e71",
        "57817e619a215588739f3f644986c78b586b541b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 16:42:55 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 16:42:55 2015 -0700"
      },
      "message": "Merge tag \u0027fbdev-4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux\n\nPull fbdev updates from Tomi Valkeinen:\n \"Minor fixes and cleanups\"\n\n* tag \u0027fbdev-4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tomba/linux:\n  video: fbdev: atmel_lcdfb: remove useless include\n  video: fbdev: pxa168fb: Use devm_clk_get\n  fbdev: ssd1307fb: fix error return code\n  fbdev: fix snprintf() limit in show_bl_curve()\n  video: fbdev: s3c-fb: Constify platform_device_id\n  video: fbdev: atmel: fix warning for const return value\n  video: fbdev: Drop owner assignment from platform_driver\n  video: fbdev: Drop owner assignment from i2c_driver\n  fbdev: remove unnecessary memset in vfb\n  framebuffer: disable vgacon on microblaze arch\n  fbdev: udlfb: remove unneeded initialization in few places\n  fbdev: Allow compile test of GPIO consumers if !GPIOLIB\n  fbdev: fix cea_modes array size\n"
    },
    {
      "commit": "85579ad7f1dfc0b72bb243b7227bc4f663035e71",
      "tree": "ef68893bca233ea5683e49117c05b32f8c907d70",
      "parents": [
        "3af6e98f25d1f68b9c36beee330342944a4e0048",
        "092b6dbe8a4a24c17f2ebfe86995dc994e61f420"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 16:33:16 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 16:33:16 2015 -0700"
      },
      "message": "Merge tag \u0027mmc-v4.3\u0027 of git://git.linaro.org/people/ulf.hansson/mmc\n\nPull MMC updates from Ulf Hansson:\n \"MMC core:\n   - Fix a race condition in the request handling\n   - Skip trim commands for some buggy kingston eMMCs\n   - An optimization and a correction for erase groups\n   - Set CMD23 quirk for some Sandisk cards\n\n  MMC host:\n   - sdhci: Give GPIO CD higher precedence and don\u0027t poll when it\u0027s used\n   - sdhci: Fix DMA memory leakage\n   - sdhci: Some updates for clock management\n   - sdhci-of-at91: introduce driver for the Atmel SDMMC\n   - sdhci-of-arasan: Add support for sdhci-5.1\n   - sdhci-esdhc-imx: Add support for imx7d which also supports HS400\n   - sdhci: A collection of fixes and improvements for various sdhci hosts\n   - omap_hsmmc: Modernization of the regulator code\n   - dw_mmc: A couple of fixes for DMA and PIO mode\n   - usdhi6rol0: A few fixes and support probe deferral for regulators\n   - pxamci: Convert to use dmaengine\n   - sh_mmcif: Fix the suspend process in a short term solution\n   - tmio: Adjust timeout for commands\n   - sunxi: Fix timeout while gating/ungating clock\"\n\n* tag \u0027mmc-v4.3\u0027 of git://git.linaro.org/people/ulf.hansson/mmc: (67 commits)\n  mmc: android-goldfish: remove incorrect __iomem annotation\n  mmc: core: fix race condition in mmc_wait_data_done\n  mmc: host: omap_hsmmc: remove CONFIG_REGULATOR check\n  mmc: host: omap_hsmmc: use ios-\u003evdd for setting vmmc voltage\n  mmc: host: omap_hsmmc: use regulator_is_enabled to find pbias status\n  mmc: host: omap_hsmmc: enable/disable vmmc_aux regulator based on previous state\n  mmc: host: omap_hsmmc: don\u0027t use -\u003eset_power to set initial regulator state\n  mmc: host: omap_hsmmc: avoid pbias regulator enable on power off\n  mmc: host: omap_hsmmc: add separate function to set pbias\n  mmc: host: omap_hsmmc: add separate functions for enable/disable supply\n  mmc: host: omap_hsmmc: return error if any of the regulator APIs fail\n  mmc: host: omap_hsmmc: remove unnecessary pbias set_voltage\n  mmc: host: omap_hsmmc: use mmc_host\u0027s vmmc and vqmmc\n  mmc: host: omap_hsmmc: use the ocrmask provided by the vmmc regulator\n  mmc: host: omap_hsmmc: cleanup omap_hsmmc_reg_get()\n  mmc: host: omap_hsmmc: return on fatal errors from omap_hsmmc_reg_get\n  mmc: host: omap_hsmmc: use devm_regulator_get_optional() for vmmc\n  mmc: sdhci-of-at91: fix platform_no_drv_owner.cocci warnings\n  mmc: sh_mmcif: Fix suspend process\n  mmc: usdhi6rol0: fix error return code\n  ...\n"
    },
    {
      "commit": "3af6e98f25d1f68b9c36beee330342944a4e0048",
      "tree": "deafb768add86b31a75f112b63a33f1f809f302e",
      "parents": [
        "acceba598eda9817bc187f3a683a2d2ee7e7fbc7",
        "628b3198ccc235e387c0b8ee200c10c883e86644"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 16:26:18 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 16:26:18 2015 -0700"
      },
      "message": "Merge tag \u0027platform-drivers-x86-v4.3-1\u0027 of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86\n\nPull x86 platform driver updates from Darren Hart:\n \"Significant work on toshiba_acpi, including new hardware support,\n  refactoring, and cleanups.  Extend device support for asus, ideapad,\n  and acer systems.  New surface pro 3 buttons driver.  Misc minor\n  cleanups for thinkpad and hp-wireless.\n\n  acer-wmi:\n   - No rfkill on HP Omen 15 wifi\n\n  thinkpad_acpi:\n   - Remove side effects from vdbg_printk -\u003e no_printk macro\n\n  surface pro 3:\n   - Add support driver for Surface Pro 3 buttons\n\n  hp-wireless:\n   - remove unneeded goto/label in hpwl_init\n\n  ideapad-laptop:\n   - add alternative representation for Yoga 2 to DMI table\n   - Add Lenovo Yoga 3 14 to no_hw_rfkill dmi list\n\n  asus-laptop:\n   - Add key found on Asus F3M\n\n  MAINTAINERS:\n   - Remove Toshiba Linux mailing list address\n\n  toshiba_acpi:\n   - Bump driver version to 0.23\n   - Remove unnecessary checks and returns in HCI/SCI functions\n   - Refactor *{get, set} functions return value\n   - Remove \"*not supported\" feature prints\n   - Change *available functions return type\n   - Add set_fan_status function\n   - Change some variables to avoid warnings from ninja-check\n   - Reorder toshiba_acpi_alt_keymap entries\n   - Remove unused wireless defines\n   - Transflective backlight updates\n   - Avoid registering input device on WMI event laptops\n   - Add /dev/toshiba_acpi device\n   - Adapt /proc/acpi/toshiba/keys to TOS1900 devices\"\n\n* tag \u0027platform-drivers-x86-v4.3-1\u0027 of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: (21 commits)\n  acer-wmi: No rfkill on HP Omen 15 wifi\n  thinkpad_acpi: Remove side effects from vdbg_printk -\u003e no_printk macro\n  surface pro 3: Add support driver for Surface Pro 3 buttons\n  hp-wireless: remove unneeded goto/label in hpwl_init\n  ideapad-laptop: add alternative representation for Yoga 2 to DMI table\n  asus-laptop: Add key found on Asus F3M\n  MAINTAINERS: Remove Toshiba Linux mailing list address\n  ideapad-laptop: Add Lenovo Yoga 3 14 to no_hw_rfkill dmi list\n  toshiba_acpi: Bump driver version to 0.23\n  toshiba_acpi: Remove unnecessary checks and returns in HCI/SCI functions\n  toshiba_acpi: Refactor *{get, set} functions return value\n  toshiba_acpi: Remove \"*not supported\" feature prints\n  toshiba_acpi: Change *available functions return type\n  toshiba_acpi: Add set_fan_status function\n  toshiba_acpi: Change some variables to avoid warnings from ninja-check\n  toshiba_acpi: Reorder toshiba_acpi_alt_keymap entries\n  toshiba_acpi: Remove unused wireless defines\n  toshiba_acpi: Transflective backlight updates\n  toshiba_acpi: Avoid registering input device on WMI event laptops\n  toshiba_acpi: Add /dev/toshiba_acpi device\n  ...\n"
    },
    {
      "commit": "acceba598eda9817bc187f3a683a2d2ee7e7fbc7",
      "tree": "761b3950789d5eee179b75ecdafafc988ee42a46",
      "parents": [
        "c19176154b464c861e49355eff636aa6896735b5",
        "5a73882fd2c3a86b502d54da532d373a1f2db15e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 16:16:26 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 16:16:26 2015 -0700"
      },
      "message": "Merge branch \u0027i2c/for-4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux\n\nPull i2c updates from Wolfram Sang:\n \"Features:\n\n   - new drivers: Renesas EMEV2, register based MUX, NXP LPC2xxx\n   - core: scans DT and assigns wakeup interrupts.  no driver changes needed.\n   - core: some refcouting issues fixed and better API for that\n   - core: new helper function for best effort block read emulation\n   - slave framework: proper DT bindings and userspace instantiation\n   - some bigger work for xiic, pxa, omap drivers\n\n  .. and quite a number of smaller driver fixes, cleanups, improvements\"\n\n* \u0027i2c/for-4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (65 commits)\n  i2c: mux: reg Change ioread endianness for readback\n  i2c: mux: reg: fix compilation warnings\n  i2c: mux: reg: simplify register size checking\n  i2c: muxes: fix leaked i2c adapter device node references\n  i2c: allow specifying separate wakeup interrupt in device tree\n  of/irq: export of_get_irq_byname()\n  i2c: xgene-slimpro: dma_mapping_error() doesn\u0027t return an error code\n  i2c: Replace I2C_CROS_EC_TUNNEL dependency\n  eeprom: at24: use i2c_smbus_read_i2c_block_data_or_emulated\n  i2c: core: Add support for best effort block read emulation\n  i2c: lpc2k: add driver\n  i2c: mux: Add register-based mux i2c-mux-reg\n  i2c: dt: describe generic bindings\n  i2c: slave: print warning if slave flag not set\n  i2c: support 10 bit and slave addresses in sysfs \u0027new_device\u0027\n  i2c: take address space into account when checking for used addresses\n  i2c: apply DT flags when probing\n  i2c: make address check indpendent from client struct\n  i2c: rename address check functions\n  i2c: apply address offset for slaves, too\n  ...\n"
    },
    {
      "commit": "c19176154b464c861e49355eff636aa6896735b5",
      "tree": "5dd931abe6aa3b73d10119a77950f2a0f3323a74",
      "parents": [
        "12f03ee606914317e7e6a0815e53a48205c31dae",
        "5f1b2f77646fc0ef2f36fc554f5722a1381d0892"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:46:31 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:46:31 2015 -0700"
      },
      "message": "Merge tag \u0027rtc-v4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux\n\nPull RTC updates from Alexandre Belloni:\n \"Core:\n   - use is_visible() to control sysfs attributes\n   - switch wakealarm attribute to DEVICE_ATTR_RW\n   - make rtc_does_wakealarm() return boolean\n   - properly manage lifetime of dev and cdev in rtc device\n   - remove unnecessary device_get() in rtc_device_unregister\n   - fix double free in rtc_register_device() error path\n\n  New drivers:\n   - NXP LPC24xx\n   - Xilinx Zynq MP\n   - Dialog DA9062\n\n  Subsystem wide cleanups:\n   - fix drivers that consider 0 as a valid IRQ in client-\u003eirq\n   - Drop (un)likely before IS_ERR(_OR_NULL)\n   - drop the remaining owner assignment for i2c_driver and\n     platform_driver\n   - module autoload fixes\n\n  Drivers:\n   - 88pm80x: add device tree support\n   - abx80x: fix RTC write bit\n   - ab8500: Add a sentinel to ab85xx_rtc_ids[]\n   - armada38x: Align RTC set time procedure with the official errata\n   - as3722: correct month value\n   - at91sam9: cleanups\n   - at91rm9200: get and use slow clock and cleanups\n   - bq32k: remove redundant check\n   - cmos: century support, proper fix for the spurious wakeup\n   - ds1307: cleanups and wakeup irq support\n   - ds1374: Remove unused variable\n   - ds1685: Use module_platform_driver\n   - ds3232: fix WARNING trace in resume function\n   - gemini: fix ptr_ret.cocci warnings\n   - mt6397: implement suspend/resume\n   - omap: support internal and external clock enabling\n   - opal: Enable alarms only when opal supports tpo\n   - pcf2127: use OFS flag to detect unreliable date and warn the user\n   - pl031: fix typo for author email\n   - rx8025: huge cleanup and fixes\n   - sa1100/pxa: share common code\n   - s5m: fix to update ctrl register\n   - s3c: fix clocks and wakeup, cleanup\n   - sirfsoc: use regmap\n   - nvram_read()/nvram_write() functions for cmos, ds1305, ds1307,\n     ds1343, ds1511, ds1553, ds1742, m48t59, rp5c01, stk17ta8, tx4939\n   - use rtc_valid_tm() error code when reading date/time instead of 0\n     for isl12022, pcf2123, pcf2127\"\n\n* tag \u0027rtc-v4.3\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (90 commits)\n  rtc: abx80x: fix RTC write bit\n  rtc: ab8500: Add a sentinel to ab85xx_rtc_ids[]\n  rtc: ds1374: Remove unused variable\n  rtc: Fix module autoload for OF platform drivers\n  rtc: Fix module autoload for rtc-{ab8500,max8997,s5m} drivers\n  rtc: omap: Add external clock enabling support\n  rtc: omap: Add internal clock enabling support\n  ARM: dts: AM437x: Add the internal and external clock nodes for rtc\n  rtc: s5m: fix to update ctrl register\n  rtc: add xilinx zynqmp rtc driver\n  devicetree: bindings: rtc: add bindings for xilinx zynqmp rtc\n  rtc: as3722: correct month value\n  ARM: config: Switch PXA27x platforms to use PXA RTC driver\n  ARM: mmp: remove unused RTC register definitions\n  ARM: sa1100: remove unused RTC register definitions\n  rtc: sa1100/pxa: convert to run-time register mapping\n  ARM: pxa: add memory resource to SA1100 RTC device\n  rtc: pxa: convert to use shared sa1100 functions\n  rtc: sa1100: prepare to share sa1100_rtc_ops\n  rtc: ds3232: fix WARNING trace in resume function\n  ...\n"
    },
    {
      "commit": "df69f52d990bd85159727bd26e819d3a6e49c666",
      "tree": "4b6a7ba075df52f4fd62ed23e42107a4cf8dd47a",
      "parents": [
        "c83db4f419e7105af38cdcca80cc51213214a2c8"
      ],
      "author": {
        "name": "Dan Streetman",
        "email": "ddstreet@ieee.org",
        "time": "Tue Sep 08 15:05:09 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zpool: remove no-op module init/exit\n\nRemove zpool_init() and zpool_exit(); they do nothing other than print\n\"loaded\" and \"unloaded\".\n\nSigned-off-by: Dan Streetman \u003cddstreet@ieee.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c83db4f419e7105af38cdcca80cc51213214a2c8",
      "tree": "e5beea2a7035d1434b64f4dbb2ba801cb8a68fd1",
      "parents": [
        "786727799a85aeabc20cab5ecfb72771bcbd6b85"
      ],
      "author": {
        "name": "Krzysztof Kozlowski",
        "email": "k.kozlowski@samsung.com",
        "time": "Tue Sep 08 15:05:06 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: zbud: constify the zbud_ops\n\nThe structure zbud_ops is not modified so make the pointer to it a\npointer to const.\n\nSigned-off-by: Krzysztof Kozlowski \u003ck.kozlowski@samsung.com\u003e\nAcked-by: Dan Streetman \u003cddstreet@ieee.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "786727799a85aeabc20cab5ecfb72771bcbd6b85",
      "tree": "706c7ffbadf27ddfe5a633bd3032c35428a1e8ec",
      "parents": [
        "5b999aadbae65696a148f55250d94b6f3d74071e"
      ],
      "author": {
        "name": "Krzysztof Kozlowski",
        "email": "k.kozlowski@samsung.com",
        "time": "Tue Sep 08 15:05:03 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: zpool: constify the zpool_ops\n\nThe structure zpool_ops is not modified so make the pointer to it a\npointer to const.\n\nSigned-off-by: Krzysztof Kozlowski \u003ck.kozlowski@samsung.com\u003e\nAcked-by: Dan Streetman \u003cddstreet@ieee.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5b999aadbae65696a148f55250d94b6f3d74071e",
      "tree": "3148d29e63658131dd762df51403bdba5bc77502",
      "parents": [
        "708649694a8699ff91d395c4aef5ecea3ade14bc"
      ],
      "author": {
        "name": "Dmitry Safonov",
        "email": "0x7f454c46@gmail.com",
        "time": "Tue Sep 08 15:05:00 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: swap: zswap: maybe_preload \u0026 refactoring\n\nzswap_get_swap_cache_page and read_swap_cache_async have pretty much the\nsame code with only significant difference in return value and usage of\nswap_readpage.\n\nI a helper __read_swap_cache_async() with the common code.  Behavior\nchange: now zswap_get_swap_cache_page will use radix_tree_maybe_preload\ninstead radix_tree_preload.  Looks like, this wasn\u0027t changed only by the\nreason of code duplication.\n\nSigned-off-by: Dmitry Safonov \u003c0x7f454c46@gmail.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Jens Axboe \u003caxboe@fb.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: David Herrmann \u003cdh.herrmann@gmail.com\u003e\nCc: Seth Jennings \u003csjennings@variantweb.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "708649694a8699ff91d395c4aef5ecea3ade14bc",
      "tree": "582d859ecdeb75d9fa53b2be688053feb6e21435",
      "parents": [
        "cd10add00c1b31cd664a31108a9b395025def50a"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:58 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zram: unify error reporting\n\nMake zram syslog error reporting more consistent. We have random\nerror levels in some places. For example, critical errors like\n  \"Error allocating memory for compressed page\"\nand\n  \"Unable to allocate temp memory\"\nare reported as KERN_INFO messages.\n\na) Reassign error levels\n\nError messages that directly affect zram\nfunctionality -- pr_err():\n\n Error allocating zram address table\n Error creating memory pool\n Decompression failed! err\u003d%d, page\u003d%u\n Unable to allocate temp memory\n Compression failed! err\u003d%d\n Error allocating memory for compressed page: %u, size\u003d%zu\n Cannot initialise %s compressing backend\n Error allocating disk queue for device %d\n Error allocating disk structure for device %d\n Error creating sysfs group for device %d\n Unable to register zram-control class\n Unable to get major number\n\nMessages that do not affect functionality, but user\nmust be warned (because sysfs attrs will be removed in\nthis particular case) -- pr_warn():\n\n %d (%s) Attribute %s (and others) will be removed. %s\n\nMessages that do not affect functionality and mostly are\ninformative -- pr_info():\n\n Cannot change max compression streams\n Can\u0027t change algorithm for initialized device\n Cannot change disksize for initialized device\n Added device: %s\n Removed device: %s\n\nb) Update sysfs_create_group() error message\n\nFirst, it lacks a trailing new line; add it.  Second, every error message\nin zram_add() has a \"for device %d\" part, which makes errors more\ninformative.  Add missing part to \"Error creating sysfs group\" message.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: 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": "cd10add00c1b31cd664a31108a9b395025def50a",
      "tree": "20da258501150fc2c06424884ca1a46a29f91ca8",
      "parents": [
        "b3e237f1f5a86030c875e186ff19640f4f4f3c63"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:55 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: remove null check from destroy_handle_cache()\n\nWe can pass a NULL cache pointer to kmem_cache_destroy(), because it\nNULL-checks its argument now.  Remove redundant test from\ndestroy_handle_cache().\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.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": "b3e237f1f5a86030c875e186ff19640f4f4f3c63",
      "tree": "82747ec2fcce63b70ab3a2decfad2c8126b6108a",
      "parents": [
        "6cbf16b3b66a61b9c6df8f2ed4ac346cb427f28a"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:52 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: do not take class lock in zs_shrinker_count()\n\nWe can avoid taking class -\u003elock around zs_can_compact() in\nzs_shrinker_count(), because the number that we return back is outdated\nin general case, by design.  We have different sources that are able to\nchange class\u0027s state right after we return from zs_can_compact() --\nongoing I/O operations, manually triggered compaction, or two of them\nhappening simultaneously.\n\nWe re-do this calculations during compaction on a per class basis\nanyway.\n\nzs_unregister_shrinker() will not return until we have an active\nshrinker, so classes won\u0027t unexpectedly disappear while\nzs_shrinker_count() iterates them.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.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": "6cbf16b3b66a61b9c6df8f2ed4ac346cb427f28a",
      "tree": "51eb943fa8a3dbaa304226ae57c3275514d0ec06",
      "parents": [
        "ad9d5e175a77a253f52a7259a7c918b8351d99f1"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Tue Sep 08 15:04:49 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: use class-\u003epages_per_zspage\n\nThere is no need to recalcurate pages_per_zspage in runtime.  Just use\nclass-\u003epages_per_zspage to avoid unnecessary runtime overhead.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Sergey Senozhatsky \u003csergey.senozhatsky@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": "ad9d5e175a77a253f52a7259a7c918b8351d99f1",
      "tree": "a09a440e04adb26ea738fabf369ec71b3590e49f",
      "parents": [
        "58f171174625150f3aaad0cddd3e365270b8e1b8"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan.kim@lge.com",
        "time": "Tue Sep 08 15:04:47 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: consider ZS_ALMOST_FULL as migrate source\n\nThere is no reason to prevent select ZS_ALMOST_FULL as migration source\nif we cannot find source from ZS_ALMOST_EMPTY.\n\nWith this patch, zs_can_compact will return more exact result.\n\nSigned-off-by: Minchan Kim \u003cminchan.kim@lge.com\u003e\nAcked-by: Sergey Senozhatsky \u003csergey.senozhatsky@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": "58f171174625150f3aaad0cddd3e365270b8e1b8",
      "tree": "90a88e712691f78d6748831bdbddd3f021589f65",
      "parents": [
        "ab9d306d9c3bf64b1dbad127aa13252cc550f839"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:44 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: partial page ordering within a fullness_list\n\nWe want to see more ZS_FULL pages and less ZS_ALMOST_{FULL, EMPTY}\npages.  Put a page with higher -\u003einuse count first within its\n-\u003efullness_list, which will give us better chances to fill up this page\nwith new objects (find_get_zspage() return -\u003efullness_list head for new\nobject allocation), so some zspages will become ZS_ALMOST_FULL/ZS_FULL\nquicker.\n\nIt performs a trivial and cheap -\u003einuse compare which does not slow down\nzsmalloc and in the worst case keeps the list pages in no particular\norder.\n\nA more expensive solution could sort fullness_list by -\u003einuse count.\n\n[minchan@kernel.org: code adjustments]\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: 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": "ab9d306d9c3bf64b1dbad127aa13252cc550f839",
      "tree": "525ffb59977b7985b8eecd37109dc3b214d2d77f",
      "parents": [
        "860c707dca155a56dfa115ddd6c00959296144a6"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:41 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: use shrinker to trigger auto-compaction\n\nPerform automatic pool compaction by a shrinker when system is getting\ntight on memory.\n\nUser-space has a very little knowledge regarding zsmalloc fragmentation\nand basically has no mechanism to tell whether compaction will result in\nany memory gain.  Another issue is that user space is not always aware\nof the fact that system is getting tight on memory.  Which leads to very\nuncomfortable scenarios when user space may start issuing compaction\n\u0027randomly\u0027 or from crontab (for example).  Fragmentation is not always\nnecessarily bad, allocated and unused objects, after all, may be filled\nwith the data later, w/o the need of allocating a new zspage.  On the\nother hand, we obviously don\u0027t want to waste memory when the system\nneeds it.\n\nCompaction now has a relatively quick pool scan so we are able to\nestimate the number of pages that will be freed easily, which makes it\npossible to call this function from a shrinker-\u003ecount_objects()\ncallback.  We also abort compaction as soon as we detect that we can\u0027t\nfree any pages any more, preventing wasteful objects migrations.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSuggested-by: Minchan Kim \u003cminchan@kernel.org\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": "860c707dca155a56dfa115ddd6c00959296144a6",
      "tree": "e46b5110aa65f7b75ed8c8b6e5fa97367f10c05a",
      "parents": [
        "7d3f3938236b4bb878214e6791e76fd8409bdeee"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:38 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: account the number of compacted pages\n\nCompaction returns back to zram the number of migrated objects, which is\nquite uninformative -- we have objects of different sizes so user space\ncannot obtain any valuable data from that number.  Change compaction to\noperate in terms of pages and return back to compaction issuer the\nnumber of pages that were freed during compaction.  So from now on we\nwill export more meaningful value in zram\u003cid\u003e/mm_stat -- the number of\nfreed (compacted) pages.\n\nThis requires:\n (a) a rename of `num_migrated\u0027 to \u0027pages_compacted\u0027\n (b) a internal API change -- return first_page\u0027s fullness_group from\n     putback_zspage(), so we know when putback_zspage() did\n     free_zspage().  It helps us to account compaction stats correctly.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.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": "7d3f3938236b4bb878214e6791e76fd8409bdeee",
      "tree": "a28c0a163b7a88ddf5f728331e8a7a87f5d8d209",
      "parents": [
        "0dc63d488a2a433a4a85d3908b3f195c4e6450d2"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:35 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc/zram: introduce zs_pool_stats api\n\n`zs_compact_control\u0027 accounts the number of migrated objects but it has\na limited lifespan -- we lose it as soon as zs_compaction() returns back\nto zram.  It worked fine, because (a) zram had it\u0027s own counter of\nmigrated objects and (b) only zram could trigger compaction.  However,\nthis does not work for automatic pool compaction (not issued by zram).\nTo account objects migrated during auto-compaction (issued by the\nshrinker) we need to store this number in zs_pool.\n\nDefine a new `struct zs_pool_stats\u0027 structure to keep zs_pool\u0027s stats\nthere.  It provides only `num_migrated\u0027, as of this writing, but it\nsurely can be extended.\n\nA new zsmalloc zs_pool_stats() symbol exports zs_pool\u0027s stats back to\ncaller.\n\nUse zs_pool_stats() in zram and remove `num_migrated\u0027 from zram_stats.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nSuggested-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": "0dc63d488a2a433a4a85d3908b3f195c4e6450d2",
      "tree": "0e8403439dedb4bda6fcfd0b17be0ee66ec25e6b",
      "parents": [
        "04f05909e0fde36ba481ad4c850b666ebef1ac55"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:33 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: cosmetic compaction code adjustments\n\nChange zs_object_copy() argument order to be (DST, SRC) rather than\n(SRC, DST).  copy/move functions usually have (to, from) arguments\norder.\n\nRename alloc_target_page() to isolate_target_page().  This function\ndoesn\u0027t allocate anything, it isolates target page, pretty much like\nisolate_source_page().\n\nTweak __zs_compact() comment.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.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": "04f05909e0fde36ba481ad4c850b666ebef1ac55",
      "tree": "86f0009c05da2f9ca43eaaef04e827851a63d6be",
      "parents": [
        "57244594195fe697f9261c7970ca25db35280967"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:30 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: introduce zs_can_compact() function\n\nThis function checks if class compaction will free any pages.\nRephrasing -- do we have enough unused objects to form at least one\nZS_EMPTY page and free it.  It aborts compaction if class compaction\nwill not result in any (further) savings.\n\nEXAMPLE (this debug output is not part of this patch set):\n\n - class size\n - number of allocated objects\n - number of used objects\n - max objects per zspage\n - pages per zspage\n - estimated number of pages that will be freed\n\n[..]\nclass-512 objs:544 inuse:540 maxobj-per-zspage:8  pages-per-zspage:1 zspages-to-free:0\n ... class-512 compaction is useless. break\nclass-496 objs:660 inuse:570 maxobj-per-zspage:33 pages-per-zspage:4 zspages-to-free:2\nclass-496 objs:627 inuse:570 maxobj-per-zspage:33 pages-per-zspage:4 zspages-to-free:1\nclass-496 objs:594 inuse:570 maxobj-per-zspage:33 pages-per-zspage:4 zspages-to-free:0\n ... class-496 compaction is useless. break\nclass-448 objs:657 inuse:617 maxobj-per-zspage:9  pages-per-zspage:1 zspages-to-free:4\nclass-448 objs:648 inuse:617 maxobj-per-zspage:9  pages-per-zspage:1 zspages-to-free:3\nclass-448 objs:639 inuse:617 maxobj-per-zspage:9  pages-per-zspage:1 zspages-to-free:2\nclass-448 objs:630 inuse:617 maxobj-per-zspage:9  pages-per-zspage:1 zspages-to-free:1\nclass-448 objs:621 inuse:617 maxobj-per-zspage:9  pages-per-zspage:1 zspages-to-free:0\n ... class-448 compaction is useless. break\nclass-432 objs:728 inuse:685 maxobj-per-zspage:28 pages-per-zspage:3 zspages-to-free:1\nclass-432 objs:700 inuse:685 maxobj-per-zspage:28 pages-per-zspage:3 zspages-to-free:0\n ... class-432 compaction is useless. break\nclass-416 objs:819 inuse:705 maxobj-per-zspage:39 pages-per-zspage:4 zspages-to-free:2\nclass-416 objs:780 inuse:705 maxobj-per-zspage:39 pages-per-zspage:4 zspages-to-free:1\nclass-416 objs:741 inuse:705 maxobj-per-zspage:39 pages-per-zspage:4 zspages-to-free:0\n ... class-416 compaction is useless. break\nclass-400 objs:690 inuse:674 maxobj-per-zspage:10 pages-per-zspage:1 zspages-to-free:1\nclass-400 objs:680 inuse:674 maxobj-per-zspage:10 pages-per-zspage:1 zspages-to-free:0\n ... class-400 compaction is useless. break\nclass-384 objs:736 inuse:709 maxobj-per-zspage:32 pages-per-zspage:3 zspages-to-free:0\n ... class-384 compaction is useless. break\n[..]\n\nEvery \"compaction is useless\" indicates that we saved CPU cycles.\n\nclass-512 has\n\t544\tobject allocated\n\t540\tobjects used\n\t8\tobjects per-page\n\nEven if we have a ALMOST_EMPTY zspage, we still don\u0027t have enough room to\nmigrate all of its objects and free this zspage; so compaction will not\nmake a lot of sense, it\u0027s better to just leave it as is.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.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": "57244594195fe697f9261c7970ca25db35280967",
      "tree": "f62a914de0e1ac2d7dd7de44d866a90c26369302",
      "parents": [
        "b430d1fd6c7d22cc07e7c22a2ee1078667605313"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:27 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: always keep per-class stats\n\nAlways account per-class `zs_size_stat\u0027 stats.  This data will help us\nmake better decisions during compaction.  We are especially interested\nin OBJ_ALLOCATED and OBJ_USED, which can tell us if class compaction\nwill result in any memory gain.\n\nFor instance, we know the number of allocated objects in the class, the\nnumber of objects being used (so we also know how many objects are not\nused) and the number of objects per-page.  So we can ensure if we have\nenough unused objects to form at least one ZS_EMPTY zspage during\ncompaction.\n\nWe calculate this value on per-class basis so we can calculate a total\nnumber of zspages that can be released.  Which is exactly what a\nshrinker wants to know.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.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": "b430d1fd6c7d22cc07e7c22a2ee1078667605313",
      "tree": "54b1a9bedc80489481967f8984ab4e649273c599",
      "parents": [
        "ad5ea8cd5b934cc082f2cda900b490def149908e"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Tue Sep 08 15:04:24 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "zsmalloc: drop unused variable `nr_to_migrate\u0027\n\nThis patchset tweaks compaction and makes it possible to trigger pool\ncompaction automatically when system is getting low on memory.\n\nzsmalloc in some cases can suffer from a notable fragmentation and\ncompaction can release some considerable amount of memory.  The problem\nhere is that currently we fully rely on user space to perform compaction\nwhen needed.  However, performing zsmalloc compaction is not always an\nobvious thing to do.  For example, suppose we have a `idle\u0027 fragmented\n(compaction was never performed) zram device and system is getting low\non memory due to some 3rd party user processes (gcc LTO, or firefox,\netc.).  It\u0027s quite unlikely that user space will issue zpool compaction\nin this case.  Besides, user space cannot tell for sure how badly pool\nis fragmented; however, this info is known to zsmalloc and, hence, to a\nshrinker.\n\nThis patch (of 7):\n\n__zs_compact() does not use `nr_to_migrate\u0027, drop it.\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.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": "ad5ea8cd5b934cc082f2cda900b490def149908e",
      "tree": "8f83225a8da89341262b4c8fa32205267f03df30",
      "parents": [
        "4ada0c5a2daf11816180ec30bdbdbed1f6ff3224"
      ],
      "author": {
        "name": "Alexander Kuleshov",
        "email": "kuleshovmail@gmail.com",
        "time": "Tue Sep 08 15:04:22 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/memblock.c: fix comment in __next_mem_range()\n\nSigned-off-by: Alexander Kuleshov \u003ckuleshovmail@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": "4ada0c5a2daf11816180ec30bdbdbed1f6ff3224",
      "tree": "2e260355ed4773aa6b72ba23de54c4535d2f5770",
      "parents": [
        "b5685e9263a6f3a8da546b8a46382f18a63745c9"
      ],
      "author": {
        "name": "Zhen Lei",
        "email": "thunder.leizhen@huawei.com",
        "time": "Tue Sep 08 15:04:19 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/page_alloc.c: fix type information of memoryless node\n\nFor a memoryless node, the output of get_pfn_range_for_nid are all zero.\nIt will display mem from 0 to -1.\n\nSigned-off-by: Zhen Lei \u003cthunder.leizhen@huawei.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": "b5685e9263a6f3a8da546b8a46382f18a63745c9",
      "tree": "139e231735e2c6d758029f6888e315b837be5328",
      "parents": [
        "34b100605cb7e201d5c4e39f54d0e11caa950733"
      ],
      "author": {
        "name": "Xishi Qiu",
        "email": "qiuxishi@huawei.com",
        "time": "Tue Sep 08 15:04:16 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "memory-hotplug: fix comments in zone_spanned_pages_in_node() and zone_spanned_pages_in_node()\n\nWhen hot adding a node from add_memory(), we will add memblock first, so\nthe node is not empty.  But when called from cpu_up(), the node should\nbe empty.\n\nSigned-off-by: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nCc: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Taku Izumi \u003cizumi.taku@jp.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": "34b100605cb7e201d5c4e39f54d0e11caa950733",
      "tree": "ddde0e0a3792a448ec5e3d21d4fc1b75ca1ba5a8",
      "parents": [
        "013110a73dcf970cb28c5b0a79f9eee577ea6aa2"
      ],
      "author": {
        "name": "Yaowei Bai",
        "email": "bywxiaobai@163.com",
        "time": "Tue Sep 08 15:04:13 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/page_alloc.c: change sysctl_lower_zone_reserve_ratio to sysctl_lowmem_reserve_ratio in comments\n\nWe use sysctl_lowmem_reserve_ratio rather than\nsysctl_lower_zone_reserve_ratio to determine how aggressive the kernel\nis in defending lowmem from the possibility of being captured into\npinned user memory.  To avoid misleading, correct it in some comments.\n\nSigned-off-by: Yaowei Bai \u003cbywxiaobai@163.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.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": "013110a73dcf970cb28c5b0a79f9eee577ea6aa2",
      "tree": "398a875ba2896297383814281b091faf47574a51",
      "parents": [
        "c9d13f5fc748a02cb5917a798f065681007342b9"
      ],
      "author": {
        "name": "Yaowei Bai",
        "email": "bywxiaobai@163.com",
        "time": "Tue Sep 08 15:04:10 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/page_alloc.c: fix a misleading comment\n\nThe comment says that the per-cpu batchsize and zone watermarks are\ndetermined by present_pages which is definitely wrong, they are both\ncalculated from managed_pages.  Fix it.\n\nSigned-off-by: Yaowei Bai \u003cbywxiaobai@163.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c9d13f5fc748a02cb5917a798f065681007342b9",
      "tree": "566dafe703c73afee482b789602efd8426833783",
      "parents": [
        "bde43c6c9f4f360ae549a0ed9f10a3e62e363aca"
      ],
      "author": {
        "name": "Chen Gang",
        "email": "gang.chen.5i5j@gmail.com",
        "time": "Tue Sep 08 15:04:08 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/mmap.c:insert_vm_struct(): check for failure before setting values\n\nThere\u0027s no point in initializing vma-\u003evm_pgoff if the insertion attempt\nwill be failing anyway.  Run the checks before performing the\ninitialization.\n\nSigned-off-by: Chen Gang \u003cgang.chen.5i5j@gmail.com\u003e\nCc: Michal Hocko \u003cmhocko@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": "bde43c6c9f4f360ae549a0ed9f10a3e62e363aca",
      "tree": "e5f4b08a11cdca4bbaf71c4643f1af7201e47cc8",
      "parents": [
        "c11539315129b599aae6d9bc0f941dee5559ec58"
      ],
      "author": {
        "name": "Petr Mladek",
        "email": "pmladek@suse.com",
        "time": "Tue Sep 08 15:04:05 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/khugepaged: allow interruption of allocation sleep again\n\nCommit 1dfb059b9438 (\"thp: reduce khugepaged freezing latency\") fixed\nkhugepaged to do not block a system suspend.  But the result is that it\ncould not get interrupted before the given timeout because the condition\nfor the wait event is \"false\".\n\nThis patch puts back the original approach but it uses\nfreezable_schedule_timeout_interruptible() instead of\nschedule_timeout_interruptible().  It does the right thing.  I am pretty\nsure that the freezable variant was not used in the original fix only\nbecause it was not available at that time.\n\nThe regression has been there for ages.  It was not critical.  It just\ndid the allocation throttling a little bit more aggressively.\n\nI found this problem when converting the kthread to kthread worker API\nand trying to understand the code.\n\nThis bug is thought to have minimal userspace-visible impact.  Somebody\ncould set a high alloc_sleep value by mistake, and then try to fix it\nback, but khugepaged would keep sleeping until the high value expires.\n\nSigned-off-by: Petr Mladek \u003cpmladek@suse.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: \"Aneesh Kumar K.V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Ebru Akagunduz \u003cebru.akagunduz@gmail.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Jiri Kosina \u003cjkosina@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": "c11539315129b599aae6d9bc0f941dee5559ec58",
      "tree": "acd84d7bacbc9d126a641b981d0b55b5933ca0dd",
      "parents": [
        "1a16718cf7f4f48ee2aa2cfd9a961c6b433a7b5b"
      ],
      "author": {
        "name": "Alexander Kuleshov",
        "email": "kuleshovmail@gmail.com",
        "time": "Tue Sep 08 15:04:02 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/memblock.c: fiy typos in comments\n\ns/succees/success/\n\nSigned-off-by: Alexander Kuleshov \u003ckuleshovmail@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": "1a16718cf7f4f48ee2aa2cfd9a961c6b433a7b5b",
      "tree": "0a1aeebba5fb2f8ebd1d4ba20d515be44ab078ce",
      "parents": [
        "82c1fc714763b823169958a98196d9be56c63b30"
      ],
      "author": {
        "name": "Joonsoo Kim",
        "email": "iamjoonsoo.kim@lge.com",
        "time": "Tue Sep 08 15:03:59 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/compaction: correct to flush migrated pages if pageblock skip happens\n\nWe cache isolate_start_pfn before entering isolate_migratepages().  If\npageblock is skipped in isolate_migratepages() due to whatever reason,\ncc-\u003emigrate_pfn can be far from isolate_start_pfn hence we flush pages\nthat were freed.  For example, the following scenario can be possible:\n\n- assume order-9 compaction, pageblock order is 9\n- start_isolate_pfn is 0x200\n- isolate_migratepages()\n  - skip a number of pageblocks\n  - start to isolate from pfn 0x600\n  - cc-\u003emigrate_pfn \u003d 0x620\n  - return\n- last_migrated_pfn is set to 0x200\n- check flushing condition\n  - current_block_start is set to 0x600\n  - last_migrated_pfn \u003c current_block_start then do useless flush\n\nThis wrong flush would not help the performance and success rate so this\npatch tries to fix it.  One simple way to know the exact position where\nwe start to isolate migratable pages is that we cache it in\nisolate_migratepages() before entering actual isolation.  This patch\nimplements that and fixes the problem.\n\nSigned-off-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: 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": "82c1fc714763b823169958a98196d9be56c63b30",
      "tree": "270b7eb14f7a6b14fe1afd17b3f41ecabe09f26f",
      "parents": [
        "0bc35a970c01c50e3bcc4b5a612787346024e5db"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Tue Sep 08 15:03:56 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: use numa_mem_id() in alloc_pages_node()\n\nalloc_pages_node() might fail when called with NUMA_NO_NODE and\n__GFP_THISNODE on a CPU belonging to a memoryless node.  To make the\nlocal-node fallback more robust and prevent such situations, use\nnuma_mem_id(), which was introduced for similar scenarios in the slab\ncontext.\n\nSuggested-by: Christoph Lameter \u003ccl@linux.com\u003e\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0bc35a970c01c50e3bcc4b5a612787346024e5db",
      "tree": "54724a480e193cd3edc795797fc73fdc677ab72d",
      "parents": [
        "96db800f5d73cd5c49461253d45766e094f0f8c2"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Tue Sep 08 15:03:53 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: unify checks in alloc_pages_node() and __alloc_pages_node()\n\nPerform the same debug checks in alloc_pages_node() as are done in\n__alloc_pages_node(), by making the former function a wrapper of the\nlatter one.\n\nIn addition to better diagnostics in DEBUG_VM builds for situations\nwhich have been already fatal (e.g.  out-of-bounds node id), there are\ntwo visible changes for potential existing buggy callers of\nalloc_pages_node():\n\n- calling alloc_pages_node() with any negative nid (e.g. due to arithmetic\n  overflow) was treated as passing NUMA_NO_NODE and fallback to local node was\n  applied. This will now be fatal.\n- calling alloc_pages_node() with an offline node will now be checked for\n  DEBUG_VM builds. Since it\u0027s not fatal if the node has been previously online,\n  and this patch may expose some existing buggy callers, change the VM_BUG_ON\n  in __alloc_pages_node() to VM_WARN_ON.\n\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "96db800f5d73cd5c49461253d45766e094f0f8c2",
      "tree": "7f6ea4c232c04196cedf34d8b35cce641228daa6",
      "parents": [
        "7fadc820222497eac234d1d51a66517c00a6ca4c"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Tue Sep 08 15:03:50 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: rename alloc_pages_exact_node() to __alloc_pages_node()\n\nalloc_pages_exact_node() was introduced in commit 6484eb3e2a81 (\"page\nallocator: do not check NUMA node ID when the caller knows the node is\nvalid\") as an optimized variant of alloc_pages_node(), that doesn\u0027t\nfallback to current node for nid \u003d\u003d NUMA_NO_NODE.  Unfortunately the\nname of the function can easily suggest that the allocation is\nrestricted to the given node and fails otherwise.  In truth, the node is\nonly preferred, unless __GFP_THISNODE is passed among the gfp flags.\n\nThe misleading name has lead to mistakes in the past, see for example\ncommits 5265047ac301 (\"mm, thp: really limit transparent hugepage\nallocation to local node\") and b360edb43f8e (\"mm, mempolicy:\nmigrate_to_node should only migrate to node\").\n\nAnother issue with the name is that there\u0027s a family of\nalloc_pages_exact*() functions where \u0027exact\u0027 means exact size (instead\nof page order), which leads to more confusion.\n\nTo prevent further mistakes, this patch effectively renames\nalloc_pages_exact_node() to __alloc_pages_node() to better convey that\nit\u0027s an optimized variant of alloc_pages_node() not intended for general\nusage.  Both functions get described in comments.\n\nIt has been also considered to really provide a convenience function for\nallocations restricted to a node, but the major opinion seems to be that\n__GFP_THISNODE already provides that functionality and we shouldn\u0027t\nduplicate the API needlessly.  The number of users would be small\nanyway.\n\nExisting callers of alloc_pages_exact_node() are simply converted to\ncall __alloc_pages_node(), with the exception of sba_alloc_coherent()\nwhich open-codes the check for NUMA_NO_NODE, so it is converted to use\nalloc_pages_node() instead.  This means it no longer performs some\nVM_BUG_ON checks, and since the current check for nid in\nalloc_pages_node() uses a \u0027nid \u003c 0\u0027 comparison (which includes\nNUMA_NO_NODE), it may hide wrong values which would be previously\nexposed.\n\nBoth differences will be rectified by the next patch.\n\nTo sum up, this patch makes no functional changes, except temporarily\nhiding potentially buggy callers.  Restricting the checks in\nalloc_pages_node() is left for the next patch which can in turn expose\nmore existing buggy callers.\n\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Robin Holt \u003crobinmholt@gmail.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: Michael Ellerman \u003cmpe@ellerman.id.au\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Aneesh Kumar K.V \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Gleb Natapov \u003cgleb@kernel.org\u003e\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Cliff Whickman \u003ccpw@sgi.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7fadc820222497eac234d1d51a66517c00a6ca4c",
      "tree": "a4e8a91b85b33fc9532c808dee54dda46f5f380c",
      "parents": [
        "26f5d7609f03ad8d6dc552458e4e371a62416b37"
      ],
      "author": {
        "name": "Hugh Dickins",
        "email": "hughd@google.com",
        "time": "Tue Sep 08 15:03:46 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm, vmscan: unlock page while waiting on writeback\n\nThis is merely a politeness: I\u0027ve not found that shrink_page_list()\nleads to deadlock with the page it holds locked across\nwait_on_page_writeback(); but nevertheless, why hold others off by\nkeeping the page locked there?\n\nAnd while we\u0027re at it: remove the mistaken \"not \" from the commentary on\nthis Case 3 (and a distracting blank line from Case 2, if I may).\n\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "26f5d7609f03ad8d6dc552458e4e371a62416b37",
      "tree": "33868d7b635a40367d0848dc4b049a8485d1572d",
      "parents": [
        "21cd3a604797c2774676926a95a3d17d4cd5cbb3"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@poochiereds.net",
        "time": "Tue Sep 08 15:03:44 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "list_lru: don\u0027t call list_lru_from_kmem if the list_head is empty\n\nIf the list_head is empty then we\u0027ll have called list_lru_from_kmem for\nnothing.  Move that call inside of the list_empty if block.\n\nSigned-off-by: Jeff Layton \u003cjeff.layton@primarydata.com\u003e\nReviewed-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "21cd3a604797c2774676926a95a3d17d4cd5cbb3",
      "tree": "83e3cd390ae01824f4d7aff599cfd292927e2549",
      "parents": [
        "e3975891254e08d220ddcafca93a0e05d9560bfb"
      ],
      "author": {
        "name": "Wang Kai",
        "email": "morgan.wang@huawei.com",
        "time": "Tue Sep 08 15:03:41 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "kmemleak: record accurate early log buffer count and report when exceeded\n\nIn log_early function, crt_early_log should also count once when\n\u0027crt_early_log \u003e\u003d ARRAY_SIZE(early_log)\u0027.  Otherwise the reported count\nfrom kmemleak_init is one less than \u0027actual number\u0027.\n\nThen, in kmemleak_init, if early_log buffer size equal actual number,\nkmemleak will init sucessful, so change warning condition to\n\u0027crt_early_log \u003e ARRAY_SIZE(early_log)\u0027.\n\nSigned-off-by: Wang Kai \u003cmorgan.wang@huawei.com\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e3975891254e08d220ddcafca93a0e05d9560bfb",
      "tree": "6c6cbc9bac8c02e8df289acf25871a569659b5bd",
      "parents": [
        "44a30220bc0a171c010e8df63d144655abdafe61"
      ],
      "author": {
        "name": "Chen Gang",
        "email": "gang.chen.5i5j@gmail.com",
        "time": "Tue Sep 08 15:03:38 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/mmap.c: simplify the failure return working flow\n\n__split_vma() doesn\u0027t need out_err label, neither need initializing err.\n\ncopy_vma() can return NULL directly when kmem_cache_alloc() fails.\n\nSigned-off-by: Chen Gang \u003cgang.chen.5i5j@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": "44a30220bc0a171c010e8df63d144655abdafe61",
      "tree": "c3f29c56cdf7838b0018f012c9b772a6a4a65a5f",
      "parents": [
        "567d117b8b2ab1c3437acc4799505a59bfa5722b"
      ],
      "author": {
        "name": "Yu Zhao",
        "email": "yuzhao@google.com",
        "time": "Tue Sep 08 15:03:33 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "shmem: recalculate file inode when fstat\n\nShmem uses shmem_recalc_inode to update i_blocks when it allocates page,\nundoes range or swaps.  But mm can drop clean page without notifying\nshmem.  This makes fstat sometimes return out-of-date block size.\n\nThe problem can be partially solved when we add\ninode_operations-\u003egetattr which calls shmem_recalc_inode to update\ni_blocks for fstat.\n\nshmem_recalc_inode also updates counter used by statfs and\nvm_committed_as.  For them the situation is not changed.  They still\nsuffer from the discrepancy after dropping clean page and before the\nfunction is called by aforementioned triggers.\n\nSigned-off-by: Yu Zhao \u003cyuzhao@google.com\u003e\nSigned-off-by: Hugh Dickins \u003chughd@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "567d117b8b2ab1c3437acc4799505a59bfa5722b",
      "tree": "c85ae852f93e36a95b2981a6c167e99683cee1c7",
      "parents": [
        "230ac719c500e58e71342be381ad2042a8cffc42"
      ],
      "author": {
        "name": "Alexander Kuleshov",
        "email": "kuleshovmail@gmail.com",
        "time": "Tue Sep 08 15:03:33 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/memblock.c: rename local variable of memblock_type to \u0027type\u0027\n\nSince commit e3239ff92a17 (\"memblock: Rename memblock_region to\nmemblock_type and memblock_property to memblock_region\"), all local\nvariables of the membock_type type were renamed to \u0027type\u0027.  This commit\nrenames all remaining local variables with the memblock_type type to the\nsame view.\n\nSigned-off-by: Alexander Kuleshov \u003ckuleshovmail@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": "230ac719c500e58e71342be381ad2042a8cffc42",
      "tree": "a0b9167f2ffb54d44795574d4a0aa6e9bcf0e051",
      "parents": [
        "da1b13ccfbebe0b9d69b5d61eff0a675e19e69a5"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Tue Sep 08 15:03:29 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hwpoison: don\u0027t try to unpoison containment-failed pages\n\nmemory_failure() can be called at any page at any time, which means that\nwe can\u0027t eliminate the possibility of containment failure.  In such case\nthe best option is to leak the page intentionally (and never touch it\nlater.)\n\nWe have an unpoison function for testing, and it cannot handle such\ncontainment-failed pages, which results in kernel panic (visible with\nvarious calltraces.) So this patch suggests that we limit the\nunpoisonable pages to properly contained pages and ignore any other\nones.\n\nTesters are recommended to keep in mind that there\u0027re un-unpoisonable\npages when writing test programs.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nTested-by: Wanpeng Li \u003cwanpeng.li@hotmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "da1b13ccfbebe0b9d69b5d61eff0a675e19e69a5",
      "tree": "30863ff3da1a5f006b2bb68e1ef177772ed8b8a9",
      "parents": [
        "8e30456b6c56029ecbb43b777519175e478adfbf"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "wanpeng.li@hotmail.com",
        "time": "Tue Sep 08 15:03:27 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hwpoison: fix race between soft_offline_page and unpoison_memory\n\nWanpeng Li reported a race between soft_offline_page() and\nunpoison_memory(), which causes the following kernel panic:\n\n   BUG: Bad page state in process bash  pfn:97000\n   page:ffffea00025c0000 count:0 mapcount:1 mapping:          (null) index:0x7f4fdbe00\n   flags: 0x1fffff80080048(uptodate|active|swapbacked)\n   page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set\n   bad because of flags:\n   flags: 0x40(active)\n   Modules linked in: snd_hda_codec_hdmi i915 rpcsec_gss_krb5 nfsv4 dns_resolver bnep rfcomm nfsd bluetooth auth_rpcgss nfs_acl nfs rfkill lockd grace sunrpc i2c_algo_bit drm_kms_helper snd_hda_codec_realtek snd_hda_codec_generic drm snd_hda_intel fscache snd_hda_codec x86_pkg_temp_thermal coretemp kvm_intel snd_hda_core snd_hwdep kvm snd_pcm snd_seq_dummy snd_seq_oss crct10dif_pclmul snd_seq_midi crc32_pclmul snd_seq_midi_event ghash_clmulni_intel snd_rawmidi aesni_intel lrw gf128mul snd_seq glue_helper ablk_helper snd_seq_device cryptd fuse snd_timer dcdbas serio_raw mei_me parport_pc snd mei ppdev i2c_core video lp soundcore parport lpc_ich shpchp mfd_core ext4 mbcache jbd2 sd_mod e1000e ahci ptp libahci crc32c_intel libata pps_core\n   CPU: 3 PID: 2211 Comm: bash Not tainted 4.2.0-rc5-mm1+ #45\n   Hardware name: Dell Inc. OptiPlex 7020/0F5C5X, BIOS A03 01/08/2015\n   Call Trace:\n     dump_stack+0x48/0x5c\n     bad_page+0xe6/0x140\n     free_pages_prepare+0x2f9/0x320\n     ? uncharge_list+0xdd/0x100\n     free_hot_cold_page+0x40/0x170\n     __put_single_page+0x20/0x30\n     put_page+0x25/0x40\n     unmap_and_move+0x1a6/0x1f0\n     migrate_pages+0x100/0x1d0\n     ? kill_procs+0x100/0x100\n     ? unlock_page+0x6f/0x90\n     __soft_offline_page+0x127/0x2a0\n     soft_offline_page+0xa6/0x200\n\nThis race is explained like below:\n\n  CPU0                    CPU1\n\n  soft_offline_page\n  __soft_offline_page\n  TestSetPageHWPoison\n                        unpoison_memory\n                        PageHWPoison check (true)\n                        TestClearPageHWPoison\n                        put_page    -\u003e release refcount held by get_hwpoison_page in unpoison_memory\n                        put_page    -\u003e release refcount held by isolate_lru_page in __soft_offline_page\n  migrate_pages\n\nThe second put_page() releases refcount held by isolate_lru_page() which\nwill lead to unmap_and_move() releases the last refcount of page and w/\nmapcount still 1 since try_to_unmap() is not called if there is only one\nuser map the page.  Anyway, the page refcount and mapcount will still\nmess if the page is mapped by multiple users.\n\nThis race was introduced by commit 4491f71260 (\"mm/memory-failure: set\nPageHWPoison before migrate_pages()\"), which focuses on preventing the\nreuse of successfully migrated page.  Before this commit we prevent the\nreuse by changing the migratetype to MIGRATE_ISOLATE during soft\nofflining, which has the following problems, so simply reverting the\ncommit is not a best option:\n\n  1) it doesn\u0027t eliminate the reuse completely, because\n     set_migratetype_isolate() can fail to set MIGRATE_ISOLATE to the\n     target page if the pageblock of the page contains one or more\n     unmovable pages (i.e.  has_unmovable_pages() returns true).\n\n  2) the original code changes migratetype to MIGRATE_ISOLATE\n     forcibly, and sets it to MIGRATE_MOVABLE forcibly after soft offline,\n     regardless of the original migratetype state, which could impact\n     other subsystems like memory hotplug or compaction.\n\nThis patch moves PageSetHWPoison just after put_page() in\nunmap_and_move(), which closes up the reported race window and minimizes\nanother race window b/w SetPageHWPoison and reallocation (which causes\nthe reuse of soft-offlined page.) The latter race window still exists\nbut it\u0027s acceptable, because it\u0027s rare and effectively the same as\nordinary \"containment failure\" case even if it happens, so keep the\nwindow open is acceptable.\n\nFixes: 4491f71260 (\"mm/memory-failure: set PageHWPoison before migrate_pages()\")\nSigned-off-by: Wanpeng Li \u003cwanpeng.li@hotmail.com\u003e\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nReported-by: Wanpeng Li \u003cwanpeng.li@hotmail.com\u003e\nTested-by: Wanpeng Li \u003cwanpeng.li@hotmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "8e30456b6c56029ecbb43b777519175e478adfbf",
      "tree": "df04df3e4f4d975d19acc0bf555fecd91b2e258d",
      "parents": [
        "665d9da7f0a9bd80b64d0024630806e45c7ff7d7"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Tue Sep 08 15:03:24 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hwpoison: introduce num_poisoned_pages wrappers\n\nnum_poisoned_pages counter will be changed outside mm/memory-failure.c\nby a subsequent patch, so this patch prepares wrappers to manipulate it.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nTested-by: Wanpeng Li \u003cwanpeng.li@hotmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "665d9da7f0a9bd80b64d0024630806e45c7ff7d7",
      "tree": "d1caa89290fb6fc46c9120be3e09556c52e9c637",
      "parents": [
        "be91748fa6ca6909853c3dc630d65e45084962d7"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "wanpeng.li@hotmail.com",
        "time": "Tue Sep 08 15:03:21 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hwpoison: replace most of put_page in memory error handling by put_hwpoison_page\n\nReplace most instances of put_page() in memory error handling with\nput_hwpoison_page().\n\nSigned-off-by: Wanpeng Li \u003cwanpeng.li@hotmail.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "be91748fa6ca6909853c3dc630d65e45084962d7",
      "tree": "478a90a3b91ecb5902777a75362521506b7f7eb2",
      "parents": [
        "94bf4ec84a84d3ab2513b4e681fd3d083328d76d"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "wanpeng.li@hotmail.com",
        "time": "Tue Sep 08 15:03:18 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hwpoison: fix refcount of THP head page in no-injection case\n\nHwpoison injection takes a refcount of target page and another refcount\nof head page of THP if the target page is the tail page of a THP.\nHowever, current code doesn\u0027t release the refcount of head page if the\nTHP is not supported to be injected wrt hwpoison filter.\n\nFix it by reducing the refcount of head page if the target page is the\ntail page of a THP and it is not supported to be injected.\n\nSigned-off-by: Wanpeng Li \u003cwanpeng.li@hotmail.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "94bf4ec84a84d3ab2513b4e681fd3d083328d76d",
      "tree": "ac1df0b30e8aee2c6a67d857ab06d55d00bc6885",
      "parents": [
        "1e0e635be82132167a134b5a9c884e70e61f8373"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "wanpeng.li@hotmail.com",
        "time": "Tue Sep 08 15:03:15 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hwpoison: introduce put_hwpoison_page to put refcount for memory error handling\n\nIntroduce put_hwpoison_page to put refcount for memory error handling.\n\nSigned-off-by: Wanpeng Li \u003cwanpeng.li@hotmail.com\u003e\nSuggested-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1e0e635be82132167a134b5a9c884e70e61f8373",
      "tree": "be7f964bee75f72d71df0bde9b6844b9fa4286d6",
      "parents": [
        "7d1900c744b2e4687b3e467edf58373c02bcf22d"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "wanpeng.li@hotmail.com",
        "time": "Tue Sep 08 15:03:13 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hwpoison: fix PageHWPoison test/set race\n\nThere is a race between madvise_hwpoison path and memory_failure:\n\n CPU0\t\t\t\t\tCPU1\n\nmadvise_hwpoison\nget_user_pages_fast\nPageHWPoison check (false)\n\t\t\t\t\tmemory_failure\n\t\t\t\t\tTestSetPageHWPoison\nsoft_offline_page\nPageHWPoison check (true)\nreturn -EBUSY (without put_page)\n\nSigned-off-by: Wanpeng Li \u003cwanpeng.li@hotmail.com\u003e\nSuggested-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7d1900c744b2e4687b3e467edf58373c02bcf22d",
      "tree": "172e71a73d3b159dc2da1ca1fe344b59a3f5ce2f",
      "parents": [
        "5dd2c4bded8776ee93c8f38b739fea531095067f"
      ],
      "author": {
        "name": "Wanpeng Li",
        "email": "wanpeng.li@hotmail.com",
        "time": "Tue Sep 08 15:03:10 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hwpoison: fix failure to split thp w/ refcount held\n\nTHP pages will get a refcount in madvise_hwpoison() w/\nMF_COUNT_INCREASED flag, however, the refcount is still held when fail\nto split THP pages.\n\nFix it by reducing the refcount of THP pages when fail to split THP.\n\nSigned-off-by: Wanpeng Li \u003cwanpeng.li@hotmail.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5dd2c4bded8776ee93c8f38b739fea531095067f",
      "tree": "d11ddf4b18b58870e65020a948641a1259ea508d",
      "parents": [
        "1570f0d7ab425c1e0905715bf9cc98b2a82e723f"
      ],
      "author": {
        "name": "Mark Salter",
        "email": "msalter@redhat.com",
        "time": "Tue Sep 08 15:03:07 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "x86: use generic early mem copy\n\nThe early_ioremap library now has a generic copy_from_early_mem()\nfunction.  Use the generic copy function for x86 relocate_initrd().\n\n[akpm@linux-foundation.org: remove MAX_MAP_CHUNK define, per Yinghai Lu]\nSigned-off-by: Mark Salter \u003cmsalter@redhat.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Ard Biesheuvel \u003card.biesheuvel@linaro.org\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.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": "1570f0d7ab425c1e0905715bf9cc98b2a82e723f",
      "tree": "9e4fbbfab01cb995b06a99f18addc5fe460a8e7b",
      "parents": [
        "6b0f68e32ea8749ff7d4a66cd5761e915e48e59d"
      ],
      "author": {
        "name": "Mark Salter",
        "email": "msalter@redhat.com",
        "time": "Tue Sep 08 15:03:04 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "arm64: support initrd outside kernel linear map\n\nThe use of mem\u003d could leave part or all of the initrd outside of the\nkernel linear map.  This will lead to an error when unpacking the initrd\nand a probable failure to boot.  This patch catches that situation and\nrelocates the initrd to be fully within the linear map.\n\nSigned-off-by: Mark Salter \u003cmsalter@redhat.com\u003e\nAcked-by: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Ard Biesheuvel \u003card.biesheuvel@linaro.org\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.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": "6b0f68e32ea8749ff7d4a66cd5761e915e48e59d",
      "tree": "6d9ca9d3b45bd0a9dc76929ed946f9cc7e4f7f3c",
      "parents": [
        "e6590740ceb83fd014fae7d571fe5a5d5886b7c8"
      ],
      "author": {
        "name": "Mark Salter",
        "email": "msalter@redhat.com",
        "time": "Tue Sep 08 15:03:01 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: add utility for early copy from unmapped ram\n\nWhen booting an arm64 kernel w/initrd using UEFI/grub, use of mem\u003d will\nlikely cut off part or all of the initrd.  This leaves it outside the\nkernel linear map which leads to failure when unpacking.  The x86 code\nhas a similar need to relocate an initrd outside of mapped memory in\nsome cases.\n\nThe current x86 code uses early_memremap() to copy the original initrd\nfrom unmapped to mapped RAM.  This patchset creates a generic\ncopy_from_early_mem() utility based on that x86 code and has arm64 and\nx86 share it in their respective initrd relocation code.\n\nThis patch (of 3):\n\nIn some early boot circumstances, it may be necessary to copy from RAM\noutside the kernel linear mapping to mapped RAM.  The need to relocate\nan initrd is one example in the x86 code.  This patch creates a helper\nfunction based on current x86 code.\n\nSigned-off-by: Mark Salter \u003cmsalter@redhat.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Ard Biesheuvel \u003card.biesheuvel@linaro.org\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.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": "e6590740ceb83fd014fae7d571fe5a5d5886b7c8",
      "tree": "edb8c65c09430516ecb02d8a1e50961394cc3b82",
      "parents": [
        "fd5a9ecd6880619bea74c6b12ec86819eacfb012"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:02:58 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "Documentation: update libhugetlbfs location and use for testing\n\nThe URL for libhugetlbfs has changed.  Also, put a stronger emphasis on\nusing libgugetlbfs for hugetlb regression testing.\n\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Shuah Khan \u003cshuahkh@osg.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": "fd5a9ecd6880619bea74c6b12ec86819eacfb012",
      "tree": "8d4a832b72fe82113069b0716a9c0ed4d0bc99c0",
      "parents": [
        "243db5351aae5e6756fb610d41431a30d44b56a6"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:02:55 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "selftests:vm: point to libhugetlbfs for regression testing\n\nThe hugetlb selftests provide minimal coverage.  Have run script point\npeople at libhugetlbfs for better regression testing.\n\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Shuah Khan \u003cshuahkh@osg.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": "243db5351aae5e6756fb610d41431a30d44b56a6",
      "tree": "ed42d2fb09e39ad54e3a4231f8dca2767e18ef22",
      "parents": [
        "9fcd6d2e052eef525e94a9ae58dbe7ed4df4f5a7"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:02:52 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "Revert \"selftests: add hugetlbfstest\"\n\nThis manually reverts 7e50533d4b842 (\"selftests: add hugetlbfstest\").\n\nThe hugetlbfstest test depends on hugetlb pages being counted in a\ntask\u0027s rss.  This functionality is not in the kernel, so the test will\nalways fail.  Remove test to avoid confusion.\n\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Shuah Khan \u003cshuahkh@osg.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": "9fcd6d2e052eef525e94a9ae58dbe7ed4df4f5a7",
      "tree": "73352bbd22c199a0dcbd7a1a06f3bd5f5a4111ad",
      "parents": [
        "29c0dde830f8c08ceacf2d3edf6dc8ddd9a9c3c4"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Tue Sep 08 15:02:49 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm, compaction: skip compound pages by order in free scanner\n\nThe compaction free scanner is looking for PageBuddy() pages and\nskipping all others.  For large compound pages such as THP or hugetlbfs,\nwe can save a lot of iterations if we skip them at once using their\ncompound_order().  This is generally unsafe and we can read a bogus\nvalue of order due to a race, but if we are careful, the only danger is\nskipping too much.\n\nWhen tested with stress-highalloc from mmtests on 4GB system with 1GB\nhugetlbfs pages, the vmstat compact_free_scanned count decreased by at\nleast 15%.\n\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "29c0dde830f8c08ceacf2d3edf6dc8ddd9a9c3c4",
      "tree": "840bad954f0509229796e0bc82060f5bca0e4e63",
      "parents": [
        "02333641e2cf4ac9f23eeeb01183ed8318d346ca"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Tue Sep 08 15:02:46 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm, compaction: always skip all compound pages by order in migrate scanner\n\nThe compaction migrate scanner tries to skip THP pages by their order,\nto reduce number of iterations for pages it cannot isolate.  The check\nis only done if PageLRU() is true, which means it applies to THP pages,\nbut not e.g.  hugetlbfs pages or any other non-LRU compound pages, which\nwe have to iterate by base pages.\n\nThis limitation comes from the assumption that it\u0027s only safe to read\ncompound_order() when we have the zone\u0027s lru_lock and THP cannot be\nsplit under us.  But the only danger (after filtering out order values\nthat are not below MAX_ORDER, to prevent overflows) is that we skip too\nmuch or too little after reading a bogus compound_order() due to a rare\nrace.  This is the same reasoning as patch 99c0fd5e51c4 (\"mm,\ncompaction: skip buddy pages by their order in the migrate scanner\")\nintroduced for unsafely reading PageBuddy() order.\n\nAfter this patch, all pages are tested for PageCompound() and we skip\nthem by compound_order().  The test is done after the test for\nballoon_page_movable() as we don\u0027t want to assume if balloon pages (or\nother pages with own isolation and migration implementation if a generic\nAPI gets implemented) are compound or not.\n\nWhen tested with stress-highalloc from mmtests on 4GB system with 1GB\nhugetlbfs pages, the vmstat compact_migrate_scanned count decreased by\n15%.\n\n[kirill.shutemov@linux.intel.com: change PageTransHuge checks to PageCompound for different series was squashed here]\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "02333641e2cf4ac9f23eeeb01183ed8318d346ca",
      "tree": "5a7385aecd47a2016f7b8f7913c6a307e50cec42",
      "parents": [
        "f5f61a320bf6275f37fcabf6645b4ac8e683c007"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Tue Sep 08 15:02:42 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm, compaction: encapsulate resetting cached scanner positions\n\nReseting the cached compaction scanner positions is now open-coded in\n__reset_isolation_suitable() and compact_finished().  Encapsulate the\nfunctionality in a new function reset_cached_positions().\n\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f5f61a320bf6275f37fcabf6645b4ac8e683c007",
      "tree": "76b44df3a3723cdaf065ff1b36d1811c647b02bc",
      "parents": [
        "f2849aa09d4fbc4145ebb5dc96187c9ab967f5cf"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Tue Sep 08 15:02:39 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm, compaction: simplify handling restart position in free pages scanner\n\nHandling the position where compaction free scanner should restart\n(stored in cc-\u003efree_pfn) got more complex with commit e14c720efdd7 (\"mm,\ncompaction: remember position within pageblock in free pages scanner\").\nCurrently the position is updated in each loop iteration of\nisolate_freepages(), although it should be enough to update it only when\nbreaking from the loop.  There\u0027s also an extra check outside the loop\nupdates the position in case we have met the migration scanner.\n\nThis can be simplified if we move the test for having isolated enough\nfrom the for-loop header next to the test for contention, and\ndetermining the restart position only in these cases.  We can reuse the\nisolate_start_pfn variable for this instead of setting cc-\u003efree_pfn\ndirectly.  Outside the loop, we can simply set cc-\u003efree_pfn to current\nvalue of isolate_start_pfn without any extra check.\n\nAlso add a VM_BUG_ON to catch possible mistake in the future, in case we\nlater add a new condition that terminates isolate_freepages_block()\nprematurely without also considering the condition in\nisolate_freepages().\n\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f2849aa09d4fbc4145ebb5dc96187c9ab967f5cf",
      "tree": "37695139d97fac75efd794f140a370abdcbb9f2a",
      "parents": [
        "1fc524d74cf40072a2de3f74a920818398dbff30"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Tue Sep 08 15:02:36 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm, compaction: more robust check for scanners meeting\n\nAssorted compaction cleanups and optimizations.  The interesting patches\nare 4 and 5.  In 4, skipping of compound pages in single iteration is\nimproved for migration scanner, so it works also for !PageLRU compound\npages such as hugetlbfs, slab etc.  Patch 5 introduces this kind of\nskipping in the free scanner.  The trick is that we can read\ncompound_order() without any protection, if we are careful to filter out\nvalues larger than MAX_ORDER.  The only danger is that we skip too much.\nThe same trick was already used for reading the freepage order in the\nmigrate scanner.\n\nTo demonstrate improvements of Patches 4 and 5 I\u0027ve run stress-highalloc\nfrom mmtests, set to simulate THP allocations (including __GFP_COMP) on\na 4GB system where 1GB was occupied by hugetlbfs pages.  I\u0027ll include\njust the relevant stats:\n\n                               Patch 3     Patch 4     Patch 5\n\nCompaction stalls                 7523        7529        7515\nCompaction success                 323         304         322\nCompaction failures               7200        7224        7192\nPage migrate success            247778      264395      240737\nPage migrate failure             15358       33184       21621\nCompaction pages isolated       906928      980192      909983\nCompaction migrate scanned     2005277     1692805     1498800\nCompaction free scanned       13255284    11539986     9011276\nCompaction cost                    288         305         277\n\nWith 5 iterations per patch, the results are still noisy, but we can see\nthat Patch 4 does reduce migrate_scanned by 15% thanks to skipping the\nhugetlbfs pages at once.  Interestingly, free_scanned is also reduced\nand I have no idea why.  Patch 5 further reduces free_scanned as\nexpected, by 15%.  Other stats are unaffected modulo noise.\n\n[1] https://lkml.org/lkml/2015/1/19/158\n\nThis patch (of 5):\n\nCompaction should finish when the migration and free scanner meet, i.e.\nthey reach the same pageblock.  Currently however, the test in\ncompact_finished() simply just compares the exact pfns, which may yield\na false negative when the free scanner position is in the middle of a\npageblock and the migration scanner reaches the begining of the same\npageblock.\n\nThis hasn\u0027t been a problem until commit e14c720efdd7 (\"mm, compaction:\nremember position within pageblock in free pages scanner\") allowed the\nfree scanner position to be in the middle of a pageblock between\ninvocations.  The hot-fix 1d5bfe1ffb5b (\"mm, compaction: prevent\ninfinite loop in compact_zone\") prevented the issue by adding a special\ncheck in the migration scanner to satisfy the current detection of\nscanners meeting.\n\nHowever, the proper fix is to make the detection more robust.  This\npatch introduces the compact_scanners_met() function that returns true\nwhen the free scanner position is in the same or lower pageblock than\nthe migration scanner.  The special case in isolate_migratepages()\nintroduced by 1d5bfe1ffb5b is removed.\n\nSuggested-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nCc: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: Christoph Lameter \u003ccl@linux.com\u003e\nAcked-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1fc524d74cf40072a2de3f74a920818398dbff30",
      "tree": "0eb168ce6d839778140ba9b2338f6e760926e193",
      "parents": [
        "01a7fd337b2c2af97e9c55bb9406a222a2e209d3"
      ],
      "author": {
        "name": "Sean O. Stalley",
        "email": "sean.stalley@intel.com",
        "time": "Tue Sep 08 15:02:33 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "coccinelle: mm: scripts/coccinelle/api/alloc/pool_zalloc-simple.cocci\n\nadd [pci|dma]_pool_zalloc coccinelle check.\nreplaces instances of [pci|dma]_pool_alloc() followed by memset(0)\nwith [pci|dma]_pool_zalloc().\n\nSigned-off-by: Sean O. Stalley \u003csean.stalley@intel.com\u003e\nAcked-by: Julia Lawall \u003cjulia.lawall@lip6.fr\u003e\nCc: Vinod Koul \u003cvinod.koul@intel.com\u003e\nCc: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nCc: Gilles Muller \u003cGilles.Muller@lip6.fr\u003e\nCc: Nicolas Palix \u003cnicolas.palix@imag.fr\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "01a7fd337b2c2af97e9c55bb9406a222a2e209d3",
      "tree": "a7aa4c080d9378e870cb6db039e7ff5974896657",
      "parents": [
        "ad82362b2defd4adad87d8538617b2f51a4bf9c3"
      ],
      "author": {
        "name": "Sean O. Stalley",
        "email": "sean.stalley@intel.com",
        "time": "Tue Sep 08 15:02:30 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "pci: mm: add pci_pool_zalloc() call\n\nAdd a wrapper function for pci_pool_alloc() to get zeroed memory.\n\nSigned-off-by: Sean O. Stalley \u003csean.stalley@intel.com\u003e\nCc: Vinod Koul \u003cvinod.koul@intel.com\u003e\nCc: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nCc: Gilles Muller \u003cGilles.Muller@lip6.fr\u003e\nCc: Nicolas Palix \u003cnicolas.palix@imag.fr\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ad82362b2defd4adad87d8538617b2f51a4bf9c3",
      "tree": "6d6f1b7736e52009d624011a149f6f36afd709ec",
      "parents": [
        "fa23f56d90ed7bd760ae2aea6dfb2f501a099e90"
      ],
      "author": {
        "name": "Sean O. Stalley",
        "email": "sean.stalley@intel.com",
        "time": "Tue Sep 08 15:02:27 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: add dma_pool_zalloc() call to DMA API\n\nAdd a wrapper function for dma_pool_alloc() to get zeroed memory.\n\nSigned-off-by: Sean O. Stalley \u003csean.stalley@intel.com\u003e\nCc: Vinod Koul \u003cvinod.koul@intel.com\u003e\nCc: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nCc: Gilles Muller \u003cGilles.Muller@lip6.fr\u003e\nCc: Nicolas Palix \u003cnicolas.palix@imag.fr\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fa23f56d90ed7bd760ae2aea6dfb2f501a099e90",
      "tree": "3c747a07b47354302ada3df61943552ce09815f8",
      "parents": [
        "c54839a722a02818677bcabe57e957f0ce4f841d"
      ],
      "author": {
        "name": "Sean O. Stalley",
        "email": "sean.stalley@intel.com",
        "time": "Tue Sep 08 15:02:24 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: add support for __GFP_ZERO flag to dma_pool_alloc()\n\nCurrently a call to dma_pool_alloc() with a ___GFP_ZERO flag returns a\nnon-zeroed memory region.\n\nThis patchset adds support for the __GFP_ZERO flag to dma_pool_alloc(),\nadds 2 wrapper functions for allocing zeroed memory from a pool, and\nprovides a coccinelle script for finding \u0026 replacing instances of\ndma_pool_alloc() followed by memset(0) with a single dma_pool_zalloc()\ncall.\n\nThere was some concern that this always calls memset() to zero, instead\nof passing __GFP_ZERO into the page allocator.\n[https://lkml.org/lkml/2015/7/15/881]\n\nI ran a test on my system to get an idea of how often dma_pool_alloc()\ncalls into pool_alloc_page().\n\nAfter Boot:\t[   30.119863] alloc_calls:541, page_allocs:7\nAfter an hour:\t[ 3600.951031] alloc_calls:9566, page_allocs:12\nAfter copying 1GB file onto a USB drive:\n\t\t[ 4260.657148] alloc_calls:17225, page_allocs:12\n\nIt doesn\u0027t look like dma_pool_alloc() calls down to the page allocator\nvery often (at least on my system).\n\nThis patch (of 4):\n\nCurrently the __GFP_ZERO flag is ignored by dma_pool_alloc().\nMake dma_pool_alloc() zero the memory if this flag is set.\n\nSigned-off-by: Sean O. Stalley \u003csean.stalley@intel.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Vinod Koul \u003cvinod.koul@intel.com\u003e\nCc: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nCc: Gilles Muller \u003cGilles.Muller@lip6.fr\u003e\nCc: Nicolas Palix \u003cnicolas.palix@imag.fr\u003e\nCc: Michal Marek \u003cmmarek@suse.cz\u003e\nCc: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c54839a722a02818677bcabe57e957f0ce4f841d",
      "tree": "fccaef494e4c693e8972da14354c623366a3fbec",
      "parents": [
        "0b802f101d0c6caeeee89066dc2c8665082a83df"
      ],
      "author": {
        "name": "Jaewon Kim",
        "email": "jaewon31.kim@samsung.com",
        "time": "Tue Sep 08 15:02:21 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "vmscan: fix increasing nr_isolated incurred by putback unevictable pages\n\nreclaim_clean_pages_from_list() assumes that shrink_page_list() returns\nnumber of pages removed from the candidate list.  But shrink_page_list()\nputs back mlocked pages without passing it to caller and without\ncounting as nr_reclaimed.  This increases nr_isolated.\n\nTo fix this, this patch changes shrink_page_list() to pass unevictable\npages back to caller.  Caller will take care those pages.\n\nMinchan said:\n\nIt fixes two issues.\n\n1. With unevictable page, cma_alloc will be successful.\n\nExactly speaking, cma_alloc of current kernel will fail due to\nunevictable pages.\n\n2. fix leaking of NR_ISOLATED counter of vmstat\n\nWith it, too_many_isolated works.  Otherwise, it could make hang until\nthe process get SIGKILL.\n\nSigned-off-by: Jaewon Kim \u003cjaewon31.kim@samsung.com\u003e\nAcked-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0b802f101d0c6caeeee89066dc2c8665082a83df",
      "tree": "7acd2aa5558065184cf5f2b2f9847f9ab821134c",
      "parents": [
        "64b990d2957cb535fe1c17b9694d5d4f7de69962"
      ],
      "author": {
        "name": "Vladimir Davydov",
        "email": "vdavydov@parallels.com",
        "time": "Tue Sep 08 15:02:18 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: vmscan: never isolate more pages than necessary\n\nIf transparent huge pages are enabled, we can isolate many more pages\nthan we actually need to scan, because we count both single and huge\npages equally in isolate_lru_pages().\n\nSince commit 5bc7b8aca942d (\"mm: thp: add split tail pages to shrink\npage list in page reclaim\"), we scan all the tail pages immediately\nafter a huge page split (see shrink_page_list()).  As a result, we can\nreclaim up to SWAP_CLUSTER_MAX * HPAGE_PMD_NR (512 MB) in one run!\n\nThis is easy to catch on memcg reclaim with zswap enabled.  The latter\nmakes swapout instant so that if we happen to scan an unreferenced huge\npage we will evict both its head and tail pages immediately, which is\nlikely to result in excessive reclaim.\n\nSigned-off-by: Vladimir Davydov \u003cvdavydov@parallels.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "64b990d2957cb535fe1c17b9694d5d4f7de69962",
      "tree": "e66f13354653576c7024650c86bc71f8399c86ab",
      "parents": [
        "1b4ace4141db1ddc46f6c9915086dd5e18d7154d"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Tue Sep 08 15:02:15 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: drop __nocast from vm_flags_t definition\n\n__nocast does no good for vm_flags_t. It only produces useless sparse\nwarnings.\n\nLet\u0027s drop it.\n\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b4ace4141db1ddc46f6c9915086dd5e18d7154d",
      "tree": "b76bfc0fddf6ab377647b0094c70eee83d2365b8",
      "parents": [
        "c5b4e1b02f2a0c2309ecd58a235a2f5ee4eb0074"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@ezchip.com",
        "time": "Tue Sep 08 15:02:12 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "bootmem: avoid freeing to bootmem after bootmem is done\n\nBootmem isn\u0027t popular any more, but some architectures still use it, and\nfreeing to bootmem after calling free_all_bootmem_core() can end up\nscribbling over random memory.  Instead, make sure the kernel generates\na warning in this case by ensuring the node_bootmem_map field is\nnon-NULL when are freeing or marking bootmem.\n\nAn instance of this bug was just fixed in the tile architecture (\"tile:\nuse free_bootmem_late() for initrd\") and catching this case more widely\nseems like a good thing.\n\nSigned-off-by: Chris Metcalf \u003ccmetcalf@ezchip.com\u003e\nAcked-by: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Paul McQuade \u003cpaulmcquad@gmail.com\u003e\nCc: Tang Chen \u003ctangchen@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": "c5b4e1b02f2a0c2309ecd58a235a2f5ee4eb0074",
      "tree": "40354604f661de3b308dbcff9f9af778192d9f48",
      "parents": [
        "acda0c3340282bc7c36f4e9a5e2ccb7bb7e64676"
      ],
      "author": {
        "name": "Naoya Horiguchi",
        "email": "n-horiguchi@ah.jp.nec.com",
        "time": "Tue Sep 08 15:02:09 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm, page_isolation: make set/unset_migratetype_isolate() file-local\n\nNowaday, set/unset_migratetype_isolate() is defined and used only in\nmm/page_isolation, so let\u0027s limit the scope within the file.\n\nSigned-off-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: 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": "acda0c3340282bc7c36f4e9a5e2ccb7bb7e64676",
      "tree": "62fe8e6d66e50a8af990fb13d95ccfa707092a52",
      "parents": [
        "95cf82ecc1fcb44df1768162343cc8eb88083b86"
      ],
      "author": {
        "name": "Aristeu Rozanski",
        "email": "aris@redhat.com",
        "time": "Tue Sep 08 15:02:06 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/mempolicy.c: get rid of duplicated check for vma(VM_PFNMAP) in queue_pages_range()\n\nThis check was introduced as part of\n   6f4576e3687 (\"mempolicy: apply page table walker on queue_pages_range()\")\n\nwhich got duplicated by\n   48684a65b4e (\"mm: pagewalk: fix misbehavior of walk_page_range for vma(VM_PFNMAP)\")\n\nby reintroducing it earlier on queue_page_test_walk()\n\nSigned-off-by: Aristeu Rozanski \u003caris@redhat.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nAcked-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Pavel Emelyanov \u003cxemul@parallels.com\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\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": "95cf82ecc1fcb44df1768162343cc8eb88083b86",
      "tree": "6f471b2d2677a8cc1a59f925e875e5852d836fdc",
      "parents": [
        "c5c5c9d1008fb15945d0173b3ca75931ef53ae1f"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Tue Sep 08 15:02:03 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mem-hotplug: handle node hole when initializing numa_meminfo.\n\nWhen parsing SRAT, all memory ranges are added into numa_meminfo.  In\nnuma_init(), before entering numa_cleanup_meminfo(), all possible memory\nranges are in numa_meminfo.  And numa_cleanup_meminfo() removes all\nranges over max_pfn or empty.\n\nBut, this only works if the nodes are continuous.  Let\u0027s have a look at\nthe following example:\n\nWe have an SRAT like this:\nSRAT: Node 0 PXM 0 [mem 0x00000000-0x5fffffff]\nSRAT: Node 0 PXM 0 [mem 0x100000000-0x1ffffffffff]\nSRAT: Node 1 PXM 1 [mem 0x20000000000-0x3ffffffffff]\nSRAT: Node 4 PXM 2 [mem 0x40000000000-0x5ffffffffff] hotplug\nSRAT: Node 5 PXM 3 [mem 0x60000000000-0x7ffffffffff] hotplug\nSRAT: Node 2 PXM 4 [mem 0x80000000000-0x9ffffffffff] hotplug\nSRAT: Node 3 PXM 5 [mem 0xa0000000000-0xbffffffffff] hotplug\nSRAT: Node 6 PXM 6 [mem 0xc0000000000-0xdffffffffff] hotplug\nSRAT: Node 7 PXM 7 [mem 0xe0000000000-0xfffffffffff] hotplug\n\nOn boot, only node 0,1,2,3 exist.\n\nAnd the numa_meminfo will look like this:\nnuma_meminfo.nr_blks \u003d 9\n1. on node 0: [0, 60000000]\n2. on node 0: [100000000, 20000000000]\n3. on node 1: [20000000000, 40000000000]\n4. on node 4: [40000000000, 60000000000]\n5. on node 5: [60000000000, 80000000000]\n6. on node 2: [80000000000, a0000000000]\n7. on node 3: [a0000000000, a0800000000]\n8. on node 6: [c0000000000, a0800000000]\n9. on node 7: [e0000000000, a0800000000]\n\nAnd numa_cleanup_meminfo() will merge 1 and 2, and remove 8,9 because the\nend address is over max_pfn, which is a0800000000.  But 4 and 5 are not\nremoved because their end addresses are less then max_pfn.  But in fact,\nnode 4 and 5 don\u0027t exist.\n\nIn a word, numa_cleanup_meminfo() is not able to handle holes between nodes.\n\nSince memory ranges in node 4 and 5 are in numa_meminfo, in\nnuma_register_memblks(), node 4 and 5 will be mistakenly set to online.\n\nIf you run lscpu, it will show:\nNUMA node0 CPU(s):     0-14,128-142\nNUMA node1 CPU(s):     15-29,143-157\nNUMA node2 CPU(s):\nNUMA node3 CPU(s):\nNUMA node4 CPU(s):     62-76,190-204\nNUMA node5 CPU(s):     78-92,206-220\n\nIn this patch, we use memblock_overlaps_region() to check if ranges in\nnuma_meminfo overlap with ranges in memory_block.  Since memory_block\ncontains all available memory at boot time, if they overlap, it means the\nranges exist.  If not, then remove them from numa_meminfo.\n\nAfter this patch, lscpu will show:\nNUMA node0 CPU(s):     0-14,128-142\nNUMA node1 CPU(s):     15-29,143-157\nNUMA node4 CPU(s):     62-76,190-204\nNUMA node5 CPU(s):     78-92,206-220\n\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nReviewed-by: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\nCc: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Vladimir Murzin \u003cvladimir.murzin@arm.com\u003e\nCc: Fabian Frederick \u003cfabf@skynet.be\u003e\nCc: Alexander Kuleshov \u003ckuleshovmail@gmail.com\u003e\nCc: Baoquan He \u003cbhe@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": "c5c5c9d1008fb15945d0173b3ca75931ef53ae1f",
      "tree": "9d4a6667ae919d16e4d27300b62d71b2a5ecbd77",
      "parents": [
        "72079ba0dfefc1444b4ef98a2fa3d040838a775f"
      ],
      "author": {
        "name": "Tang Chen",
        "email": "tangchen@cn.fujitsu.com",
        "time": "Tue Sep 08 15:02:00 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/memblock.c: make memblock_overlaps_region() return bool.\n\nmemblock_overlaps_region() checks if the given memblock region\nintersects a region in memblock.  If so, it returns the index of the\nintersected region.\n\nBut its only caller is memblock_is_region_reserved(), and it returns 0\nif false, non-zero if true.\n\nBoth of these should return bool.\n\nSigned-off-by: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Yasuaki Ishimatsu \u003cisimatu.yasuaki@jp.fujitsu.com\u003e\nCc: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\nCc: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Vladimir Murzin \u003cvladimir.murzin@arm.com\u003e\nCc: Fabian Frederick \u003cfabf@skynet.be\u003e\nCc: Alexander Kuleshov \u003ckuleshovmail@gmail.com\u003e\nCc: Baoquan He \u003cbhe@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": "72079ba0dfefc1444b4ef98a2fa3d040838a775f",
      "tree": "e3c999681d0450df6a3c3b8b1d5cd81ed08a7f5a",
      "parents": [
        "70c3547e36f5c9fbc4caecfeca98f0effa6932c5"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:01:57 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm: madvise allow remove operation for hugetlbfs\n\nNow that we have hole punching support for hugetlbfs, we can also\nsupport the MADV_REMOVE interface to it.\n\nSigned-off-by: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Aneesh Kumar \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: 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": "70c3547e36f5c9fbc4caecfeca98f0effa6932c5",
      "tree": "418e7d852a326516291553a41fdc965ece2290b2",
      "parents": [
        "ab76ad540a50191308e5bb6b5e2d9e26c78616d3"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:01:54 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "hugetlbfs: add hugetlbfs_fallocate()\n\nThis is based on the shmem version, but it has diverged quite a bit.  We\nhave no swap to worry about, nor the new file sealing.  Add\nsynchronication via the fault mutex table to coordinate page faults,\nfallocate allocation and fallocate hole punch.\n\nWhat this allows us to do is move physical memory in and out of a\nhugetlbfs file without having it mapped.  This also gives us the ability\nto support MADV_REMOVE since it is currently implemented using\nfallocate().  MADV_REMOVE lets madvise() remove pages from the middle of\na hugetlbfs file, which wasn\u0027t possible before.\n\nhugetlbfs fallocate only operates on whole huge pages.\n\nBased on code by Dave Hansen.\n\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Aneesh Kumar \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: 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": "ab76ad540a50191308e5bb6b5e2d9e26c78616d3",
      "tree": "2d3f6ffea05caf95cf96807b382ee9323a2b1435",
      "parents": [
        "d85f69b0b533ec6d7ac8c21db958c44c6d957c90"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:01:50 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "hugetlbfs: New huge_add_to_page_cache helper routine\n\nCurrently, there is only a single place where hugetlbfs pages are added\nto the page cache.  The new fallocate code be adding a second one, so\nbreak the functionality out into its own helper.\n\nSigned-off-by: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Aneesh Kumar \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: 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": "d85f69b0b533ec6d7ac8c21db958c44c6d957c90",
      "tree": "4ffea6bfd5cdd7cd35310ea2636a3d4883ebed41",
      "parents": [
        "1fb1b0e9ef2d661488f8053986c3b7641cae529d"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:01:47 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hugetlb: alloc_huge_page handle areas hole punched by fallocate\n\nAreas hole punched by fallocate will not have entries in the\nregion/reserve map.  However, shared mappings with min_size subpool\nreservations may still have reserved pages.  alloc_huge_page needs to\nhandle this special case and do the proper accounting.\n\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Aneesh Kumar \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: 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": "1fb1b0e9ef2d661488f8053986c3b7641cae529d",
      "tree": "4fe154e4347f43f023d33065db9170c81d835e18",
      "parents": [
        "b5cec28d36f5ee6b4e6f68a0a40aa1e4045d6d99"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:01:44 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hugetlb: vma_has_reserves() needs to handle fallocate hole punch\n\nIn vma_has_reserves(), the current assumption is that reserves are\nalways present for shared mappings.  However, this will not be the case\nwith fallocate hole punch.  When punching a hole, the present page will\nbe deleted as well as the region/reserve map entry (and hence any\nreservation).  vma_has_reserves is passed \"chg\" which indicates whether\nor not a region/reserve map is present.  Use this to determine if\nreserves are actually present or were removed via hole punch.\n\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Aneesh Kumar \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: 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": "b5cec28d36f5ee6b4e6f68a0a40aa1e4045d6d99",
      "tree": "85ce12770ae20ac0cfdbd63822796c59dc57eea0",
      "parents": [
        "1bfad99ab42569807d0ca1698449cae5e8c0334a"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:01:41 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "hugetlbfs: truncate_hugepages() takes a range of pages\n\nModify truncate_hugepages() to take a range of pages (start, end)\ninstead of simply start.  If an end value of LLONG_MAX is passed, the\ncurrent \"truncate\" functionality is maintained.  Existing callers are\nmodified to pass LLONG_MAX as end of range.  By keying off end \u003d\u003d\nLLONG_MAX, the routine behaves differently for truncate and hole punch.\nPage removal is now synchronized with page allocation via faults by\nusing the fault mutex table.  The hole punch case can experience the\nrare region_del error and must handle accordingly.\n\nAdd the routine hugetlb_fix_reserve_counts to fix up reserve counts in\nthe case where region_del returns an error.\n\nSince the routine handles more than just the truncate case, it is\nrenamed to remove_inode_hugepages().  To be consistent, the routine\ntruncate_huge_page() is renamed remove_huge_page().\n\nDownstream of remove_inode_hugepages(), the routine\nhugetlb_unreserve_pages() is also modified to take a range of pages.\nhugetlb_unreserve_pages is modified to detect an error from region_del and\npass it back to the caller.\n\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Aneesh Kumar \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: 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": "1bfad99ab42569807d0ca1698449cae5e8c0334a",
      "tree": "50676e321bcd807c229f85e6a272df3865480515",
      "parents": [
        "c672c7f29f2fdb73e1f72911bf499675c81fcdbb"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:01:38 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "hugetlbfs: hugetlb_vmtruncate_list() needs to take a range to delete\n\nfallocate hole punch will want to unmap a specific range of pages.\nModify the existing hugetlb_vmtruncate_list() routine to take a\nstart/end range.  If end is 0, this indicates all pages after start\nshould be unmapped.  This is the same as the existing truncate\nfunctionality.  Modify existing callers to add 0 as end of range.\n\nSince the routine will be used in hole punch as well as truncate\noperations, it is more appropriately renamed to hugetlb_vmdelete_list().\n\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Aneesh Kumar \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: 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": "c672c7f29f2fdb73e1f72911bf499675c81fcdbb",
      "tree": "5c1f29402791506a19e7d136a267ab407c886637",
      "parents": [
        "feba16e25a578080af5aad5eb9e469b4e6c23eef"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:01:35 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hugetlb: expose hugetlb fault mutex for use by fallocate\n\nhugetlb page faults are currently synchronized by the table of mutexes\n(htlb_fault_mutex_table).  fallocate code will need to synchronize with\nthe page fault code when it allocates or deletes pages.  Expose\ninterfaces so that fallocate operations can be synchronized with page\nfaults.  Minor name changes to be more consistent with other global\nhugetlb symbols.\n\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Aneesh Kumar \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: 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": "feba16e25a578080af5aad5eb9e469b4e6c23eef",
      "tree": "2813f19bc6c6bcd815153a81cfeb168d4d53029c",
      "parents": [
        "5e9113731a3ce616e8b5aa128ffc1aeaa4942571"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:01:31 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hugetlb: add region_del() to delete a specific range of entries\n\nfallocate hole punch will want to remove a specific range of pages.  The\nexisting region_truncate() routine deletes all region/reserve map\nentries after a specified offset.  region_del() will provide this same\nfunctionality if the end of region is specified as LONG_MAX.  Hence,\nregion_del() can replace region_truncate().\n\nUnlike region_truncate(), region_del() can return an error in the rare\ncase where it can not allocate memory for a region descriptor.  This\nONLY happens in the case where an existing region must be split.\nCurrent callers passing LONG_MAX as end of range will never experience\nthis error and do not need to deal with error handling.  Future callers\nof region_del() (such as fallocate hole punch) will need to handle this\nerror.\n\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Aneesh Kumar \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: 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": "5e9113731a3ce616e8b5aa128ffc1aeaa4942571",
      "tree": "c07f038d394238605bf9b6b5d33b2e2998093ca6",
      "parents": [
        "bb14c2c75db972a1bf65fd63c8d5a0b41a8f263a"
      ],
      "author": {
        "name": "Mike Kravetz",
        "email": "mike.kravetz@oracle.com",
        "time": "Tue Sep 08 15:01:28 2015 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Sep 08 15:35:28 2015 -0700"
      },
      "message": "mm/hugetlb: add cache of descriptors to resv_map for region_add\n\nhugetlbfs is used today by applications that want a high degree of\ncontrol over huge page usage.  Often, large hugetlbfs files are used to\nmap a large number huge pages into the application processes.  The\napplications know when page ranges within these large files will no\nlonger be used, and ideally would like to release them back to the\nsubpool or global pools for other uses.  The fallocate() system call\nprovides an interface for preallocation and hole punching within files.\nThis patch set adds fallocate functionality to hugetlbfs.\n\nfallocate hole punch will want to remove a specific range of pages.\nWhen pages are removed, their associated entries in the region/reserve\nmap will also be removed.  This will break an assumption in the\nregion_chg/region_add calling sequence.  If a new region descriptor must\nbe allocated, it is done as part of the region_chg processing.  In this\nway, region_add can not fail because it does not need to attempt an\nallocation.\n\nTo prepare for fallocate hole punch, create a \"cache\" of descriptors\nthat can be used by region_add if necessary.  region_chg will ensure\nthere are sufficient entries in the cache.  It will be necessary to\ntrack the number of in progress add operations to know a sufficient\nnumber of descriptors reside in the cache.  A new routine region_abort\nis added to adjust this in progress count when add operations are\naborted.  vma_abort_reservation is also added for callers creating\nreservations with vma_needs_reservation/vma_commit_reservation.\n\n[akpm@linux-foundation.org: fix typo in comment, use more cols]\nSigned-off-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Davidlohr Bueso \u003cdave@stgolabs.net\u003e\nCc: Aneesh Kumar \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: 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"
    }
  ],
  "next": "bb14c2c75db972a1bf65fd63c8d5a0b41a8f263a"
}
