)]}'
{
  "log": [
    {
      "commit": "30066ce675d3af350bc5a53858991c0b518dda00",
      "tree": "75db2274cd0887b11b4e297771287f0fb4c14b81",
      "parents": [
        "6763afe4b9f39142bda2a92d69e62fe85f67251c",
        "c3afafa47898e34eb49828ec4ac92bcdc81c8f0c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 14:04:16 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 14:04:16 2016 -0700"
      },
      "message": "Merge branch \u0027linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\nPull crypto updates from Herbert Xu:\n \"Here is the crypto update for 4.9:\n\n  API:\n   - The crypto engine code now supports hashes.\n\n  Algorithms:\n   - Allow keys \u003e\u003d 2048 bits in FIPS mode for RSA.\n\n  Drivers:\n   - Memory overwrite fix for vmx ghash.\n   - Add support for building ARM sha1-neon in Thumb2 mode.\n   - Reenable ARM ghash-ce code by adding import/export.\n   - Reenable img-hash by adding import/export.\n   - Add support for multiple cores in omap-aes.\n   - Add little-endian support for sha1-powerpc.\n   - Add Cavium HWRNG driver for ThunderX SoC\"\n\n* \u0027linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (137 commits)\n  crypto: caam - treat SGT address pointer as u64\n  crypto: ccp - Make syslog errors human-readable\n  crypto: ccp - clean up data structure\n  crypto: vmx - Ensure ghash-generic is enabled\n  crypto: testmgr - add guard to dst buffer for ahash_export\n  crypto: caam - Unmap region obtained by of_iomap\n  crypto: sha1-powerpc - little-endian support\n  crypto: gcm - Fix IV buffer size in crypto_gcm_setkey\n  crypto: vmx - Fix memory corruption caused by p8_ghash\n  crypto: ghash-generic - move common definitions to a new header file\n  crypto: caam - fix sg dump\n  hwrng: omap - Only fail if pm_runtime_get_sync returns \u003c 0\n  crypto: omap-sham - shrink the internal buffer size\n  crypto: omap-sham - add support for export/import\n  crypto: omap-sham - convert driver logic to use sgs for data xmit\n  crypto: omap-sham - change the DMA threshold value to a define\n  crypto: omap-sham - add support functions for sg based data handling\n  crypto: omap-sham - rename sgl to sgl_tmp for deprecation\n  crypto: omap-sham - align algorithms on word offset\n  crypto: omap-sham - add context export/import stubs\n  ...\n"
    },
    {
      "commit": "6763afe4b9f39142bda2a92d69e62fe85f67251c",
      "tree": "05e5a6c4bc570ca2aff5b9e4bc518bc106ae7a75",
      "parents": [
        "8dfb790b15e779232d5d4e3f0102af2bea21ca55",
        "3a8db79889ce16930aff19b818f5b09651bb7644"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 13:58:06 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 13:58:06 2016 -0700"
      },
      "message": "Merge tag \u0027dlm-4.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm\n\nPull dlm fix from David Teigland:\n \"This includes a bug fix for a bad memory access during workqueue\n  cleanup, which can happen while shutting down the dlm networking\n  layer\"\n\n* tag \u0027dlm-4.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:\n  dlm: free workqueues after the connections\n"
    },
    {
      "commit": "8dfb790b15e779232d5d4e3f0102af2bea21ca55",
      "tree": "7208241fc93d39f769dcec0c227c8582f117dfce",
      "parents": [
        "fed41f7d039bad02f94cad9059e4b14cd81d13f2",
        "64f77566e1c84990d6c448bb3960f899521c0b7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 13:52:05 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 13:52:05 2016 -0700"
      },
      "message": "Merge tag \u0027ceph-for-4.9-rc1\u0027 of git://github.com/ceph/ceph-client\n\nPull Ceph updates from Ilya Dryomov:\n \"The big ticket item here is support for rbd exclusive-lock feature,\n  with maintenance operations offloaded to userspace (Douglas Fuller,\n  Mike Christie and myself). Another block device bullet is a series\n  fixing up layering error paths (myself).\n\n  On the filesystem side, we\u0027ve got patches that improve our handling of\n  buffered vs dio write races (Neil Brown) and a few assorted fixes from\n  Zheng. Also included a couple of random cleanups and a minor CRUSH\n  update\"\n\n* tag \u0027ceph-for-4.9-rc1\u0027 of git://github.com/ceph/ceph-client: (39 commits)\n  crush: remove redundant local variable\n  crush: don\u0027t normalize input of crush_ln iteratively\n  libceph: ceph_build_auth() doesn\u0027t need ceph_auth_build_hello()\n  libceph: use CEPH_AUTH_UNKNOWN in ceph_auth_build_hello()\n  ceph: fix description for rsize and rasize mount options\n  rbd: use kmalloc_array() in rbd_header_from_disk()\n  ceph: use list_move instead of list_del/list_add\n  ceph: handle CEPH_SESSION_REJECT message\n  ceph: avoid accessing / when mounting a subpath\n  ceph: fix mandatory flock check\n  ceph: remove warning when ceph_releasepage() is called on dirty page\n  ceph: ignore error from invalidate_inode_pages2_range() in direct write\n  ceph: fix error handling of start_read()\n  rbd: add rbd_obj_request_error() helper\n  rbd: img_data requests don\u0027t own their page array\n  rbd: don\u0027t call rbd_osd_req_format_read() for !img_data requests\n  rbd: rework rbd_img_obj_exists_submit() error paths\n  rbd: don\u0027t crash or leak on errors in rbd_img_obj_parent_read_full_callback()\n  rbd: move bumping img_request refcount into rbd_obj_request_submit()\n  rbd: mark the original request as done if stat request fails\n  ...\n"
    },
    {
      "commit": "fed41f7d039bad02f94cad9059e4b14cd81d13f2",
      "tree": "fb9de8dfd1e706a0657e213d5d3cd9368b9e58e4",
      "parents": [
        "abb5a14fa20fdd400995926134b7be9eb8ce6048",
        "cd27e455042da85b088bdd3a6e00da1d5b4df9f1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 13:38:49 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 13:38:49 2016 -0700"
      },
      "message": "Merge branch \u0027work.splice_read\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull splice fixups from Al Viro:\n \"A couple of fixups for interaction of pipe-backed iov_iter with\n  O_DIRECT reads + constification of a couple of primitives in uio.h\n  missed by previous rounds.\n\n  Kudos to davej - his fuzzing has caught those bugs\"\n\n* \u0027work.splice_read\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:\n  [btrfs] fix check_direct_IO() for non-iovec iterators\n  constify iov_iter_count() and iter_is_iovec()\n  fix ITER_PIPE interaction with direct_IO\n"
    },
    {
      "commit": "abb5a14fa20fdd400995926134b7be9eb8ce6048",
      "tree": "085add41cae3193b8c8293d25b453fd1ecae0c19",
      "parents": [
        "911f9dab301e8583143c7e75b552eadd434ea0a8",
        "e55f1d1d13e7f1c364672d667d78fd1f640ab9f9"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 13:04:49 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 13:04:49 2016 -0700"
      },
      "message": "Merge branch \u0027work.misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull misc vfs updates from Al Viro:\n \"Assorted misc bits and pieces.\n\n  There are several single-topic branches left after this (rename2\n  series from Miklos, current_time series from Deepa Dinamani, xattr\n  series from Andreas, uaccess stuff from from me) and I\u0027d prefer to\n  send those separately\"\n\n* \u0027work.misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (39 commits)\n  proc: switch auxv to use of __mem_open()\n  hpfs: support FIEMAP\n  cifs: get rid of unused arguments of CIFSSMBWrite()\n  posix_acl: uapi header split\n  posix_acl: xattr representation cleanups\n  fs/aio.c: eliminate redundant loads in put_aio_ring_file\n  fs/internal.h: add const to ns_dentry_operations declaration\n  compat: remove compat_printk()\n  fs/buffer.c: make __getblk_slow() static\n  proc: unsigned file descriptors\n  fs/file: more unsigned file descriptors\n  fs: compat: remove redundant check of nr_segs\n  cachefiles: Fix attempt to read i_blocks after deleting file [ver #2]\n  cifs: don\u0027t use memcpy() to copy struct iov_iter\n  get rid of separate multipage fault-in primitives\n  fs: Avoid premature clearing of capabilities\n  fs: Give dentry to inode_change_ok() instead of inode\n  fuse: Propagate dentry down to inode_change_ok()\n  ceph: Propagate dentry down to inode_change_ok()\n  xfs: Propagate dentry down to inode_change_ok()\n  ...\n"
    },
    {
      "commit": "911f9dab301e8583143c7e75b552eadd434ea0a8",
      "tree": "5ae66958da8ad33ac556d2cf59ce915edddec5ad",
      "parents": [
        "ae50a840e779d48aa4dea2aaec1778f6b3f1d67f",
        "4a5d67d7346619f4a45b5d6f7a496db2e0e8545d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 11:34:28 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 11:34:28 2016 -0700"
      },
      "message": "Merge branch \u0027pcmcia\u0027 of git://git.armlinux.org.uk/~rmk/linux-arm\n\nPull ARM pcmcia updates from Russell King:\n \"These updates lay the foundations for more generic soc_common PCMCIA\n  support, which will result in several of the board specific drivers\n  being elimated.\n\n  As the dependencies for this are complex, the preliminary work is\n  being submitted now, with the remainder scheduled for the next merge\n  window\"\n\n* \u0027pcmcia\u0027 of git://git.armlinux.org.uk/~rmk/linux-arm:\n  pcmcia: soc_common: add driver-data pointer\n  pcmcia: soc_common: add support for voltage sense GPIOs\n  pcmcia: soc_common: constify pcmcia_low_level ops pointer\n  pcmcia: soc_common: switch to a per-socket cpufreq notifier\n  pcmcia: soc_common: add support for Vcc and Vpp regulators\n  pcmcia: soc_common: add CF socket state helper\n  pcmcia: soc_common: restore previous socket state on error\n  pcmcia: soc_common: add support for reset and bus enable GPIOs\n  pcmcia: soc_common: request legacy detect GPIO with active low\n  pcmcia: soc_common: ignore invalid interrupts\n  pcmcia: soc_common: switch to using gpio_descs\n  pcmcia: soc_common: use devm_gpio_request_one()\n"
    },
    {
      "commit": "ae50a840e779d48aa4dea2aaec1778f6b3f1d67f",
      "tree": "665faaaed4333b3a2d83ca2411a7cab9354fd5cd",
      "parents": [
        "057a056ced1ee7e000bad2a5c88241502747d350",
        "476080a79367b950cb860ccf8a3a53fd24f6cccc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 11:31:19 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 11:31:19 2016 -0700"
      },
      "message": "Merge tag \u0027nios2-v4.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2\n\nPull nios2 update from Ley Foon Tan:\n \"Use of_property_read_bool() instead of open-coding it\"\n\n* tag \u0027nios2-v4.9-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/lftan/nios2:\n  nios2: use of_property_read_bool\n"
    },
    {
      "commit": "057a056ced1ee7e000bad2a5c88241502747d350",
      "tree": "b996aa3dfb515bef95ebe4594dd2c7b46f01db2e",
      "parents": [
        "93c26d7dc02380fe11e57ff0d152368743762169",
        "2dc024e94578c53e2c579a48725c8fe2527f9d5e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 11:28:35 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 11:28:35 2016 -0700"
      },
      "message": "Merge tag \u0027cris-for-4.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris\n\nPull CRIS updates from Jesper Nilsson.\n\n* tag \u0027cris-for-4.9\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jesper/cris:\n  cris: return of class_create should be considered\n  CRIS: defconfig: remove MTDRAM_ABS_POS\n  CRIS v32: remove some double unlocks\n  Fix typos\n  cris: migrate exception table users off module.h and onto extable.h\n  cris: v10: axisflashmap: remove unused ifdefs\n  cris: use generic io.h\n  cris: fix Kconfig mismatch when building with CONFIG_PCI\n  cris: cardbus: fix header include path\n  cris: add dev88_defconfig\n  cris: irq: stop loop from accessing array out of bounds\n  cris: fasttimer: fix mixed declarations and code compile warning\n  cris: intmem: fix pointer comparison compile warning\n  cris: intmem: fix device_initcall compile warning\n"
    },
    {
      "commit": "93c26d7dc02380fe11e57ff0d152368743762169",
      "tree": "5234bc86561c6b8c7fd698a2d456add3c960db1f",
      "parents": [
        "5fa0eb0b4d4780fbd6d8a09850cc4fd539e9fe65",
        "6679dac513fd612f34d3a3d99d7b84ed6d5eb5cc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 11:01:51 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 11:01:51 2016 -0700"
      },
      "message": "Merge branch \u0027mm-pkeys-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull protection keys syscall interface from Thomas Gleixner:\n \"This is the final step of Protection Keys support which adds the\n  syscalls so user space can actually allocate keys and protect memory\n  areas with them. Details and usage examples can be found in the\n  documentation.\n\n  The mm side of this has been acked by Mel\"\n\n* \u0027mm-pkeys-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/pkeys: Update documentation\n  x86/mm/pkeys: Do not skip PKRU register if debug registers are not used\n  x86/pkeys: Fix pkeys build breakage for some non-x86 arches\n  x86/pkeys: Add self-tests\n  x86/pkeys: Allow configuration of init_pkru\n  x86/pkeys: Default to a restrictive init PKRU\n  pkeys: Add details of system call use to Documentation/\n  generic syscalls: Wire up memory protection keys syscalls\n  x86: Wire up protection keys system calls\n  x86/pkeys: Allocation/free syscalls\n  x86/pkeys: Make mprotect_key() mask off additional vm_flags\n  mm: Implement new pkey_mprotect() system call\n  x86/pkeys: Add fault handling for PF_PK page fault bit\n"
    },
    {
      "commit": "5fa0eb0b4d4780fbd6d8a09850cc4fd539e9fe65",
      "tree": "dc046871a73abd4f9d5f39f5379234cead2607e7",
      "parents": [
        "c48ce9f190266b763e809dd79fcf4152f558793c",
        "d4b05923f579c234137317cdf9a5eb69ddab76d1"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 10:59:07 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 10:59:07 2016 -0700"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 updates from Thomas Gleixner:\n \"A pile of regression fixes and updates:\n\n   - address the fallout of the patches which made the cpuid - nodeid\n     relation permanent: Handling of invalid APIC ids and preventing\n     pointless warning messages.\n\n   - force eager FPU when protection keys are enabled. Protection keys\n     are not generating FPU exceptions so they cannot work with the lazy\n     FPU mechanism.\n\n   - prevent force migration of interrupts which are not part of the CPU\n     vector domain.\n\n   - handle the fact that APIC ids are not updated in the ACPI/MADT\n     tables on physical CPU hotplug\n\n   - remove bash-isms from syscall table generator script\n\n   - use the hypervisor supplied APIC frequency when running on VMware\"\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/pkeys: Make protection keys an \"eager\" feature\n  x86/apic: Prevent pointless warning messages\n  x86/acpi: Prevent LAPIC id 0xff from being accounted\n  arch/x86: Handle non enumerated CPU after physical hotplug\n  x86/unwind: Fix oprofile module link error\n  x86/vmware: Skip lapic calibration on VMware\n  x86/syscalls: Remove bash-isms in syscall table generator\n  x86/irq: Prevent force migration of irqs which are not in the vector domain\n"
    },
    {
      "commit": "cd27e455042da85b088bdd3a6e00da1d5b4df9f1",
      "tree": "d1a17b68a4098b632c79103a2d2c2184b11cee6f",
      "parents": [
        "b57332b4105abf1d518d93886e547ee2f98cd414"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 10 13:39:05 2016 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 10 13:58:16 2016 -0400"
      },
      "message": "[btrfs] fix check_direct_IO() for non-iovec iterators\n\nlooking for duplicate -\u003eiov_base makes sense only for\niovec-backed iterators; for kvec-backed ones it\u0027s pointless,\nfor bvec-backed ones it\u0027s pointless and broken on 32bit (we\nwalk through an array of struct bio_vec accessing them as if\nthey were struct iovec; works by accident on 64bit, but on\n32bit it\u0027ll blow up) and for pipe-backed ones it\u0027s pointless\nand ends up oopsing.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b57332b4105abf1d518d93886e547ee2f98cd414",
      "tree": "b079d0432c23120118ec97b4f8518dfd0d4b744e",
      "parents": [
        "c3a690240423fc4eb8a0c3c7df025d13eadf140b"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 10 13:57:37 2016 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 10 13:57:37 2016 -0400"
      },
      "message": "constify iov_iter_count() and iter_is_iovec()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c3a690240423fc4eb8a0c3c7df025d13eadf140b",
      "tree": "20f4a32910427c2aa4ccf8e33633d6e7194628bf",
      "parents": [
        "a949e63992469fed87aef197347960ced31701b8"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 10 13:26:27 2016 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Oct 10 13:36:06 2016 -0400"
      },
      "message": "fix ITER_PIPE interaction with direct_IO\n\nby making sure we call iov_iter_advance() on original\niov_iter even if direct_IO (done on its copy) has returned 0.\nIt\u0027s a no-op for old iov_iter flavours and does the right thing\n(\u003d\u003d truncation of the stuff we\u0027d allocated, but not filled) in\nITER_PIPE case.  Failures (e.g. -EIO) get caught and dealt with\nby cleanup in generic_file_read_iter().\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "c48ce9f190266b763e809dd79fcf4152f558793c",
      "tree": "60490f3c5ae8e236dc6ea336ca9c695527c835f5",
      "parents": [
        "84ed2da02f4cda6759880c87a213ee80c91ca3bd",
        "c68306ce20ad03ce655a367fc33ad06e12bb87a6"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 10:33:58 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 10:33:58 2016 -0700"
      },
      "message": "Merge branch \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull perf tooling updates from Thomas Gleixner:\n\n - handle uretprobe placement proper on little endian PPC64\n\n - fix buffer handling in libtraceevent\n\n - add a missing pointer derefence in perf probe\n\n - fix the build of host tools in cross builds\n\n - fix Intel PT timestamp handling\n\n - synchronize memcpy, cpufeatures and bpf headers with the kernel headers\n\n - support for vendor supplied JSON files describing PMU events\n\n - a new set of tool tips\n\n - initial work for clang/llvm support\n\n - address some style issues found by cppcheck\n\n* \u0027perf-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (35 commits)\n  tools build: Add feature detection for g++\n  tools build: Support compiling C++ source file\n  perf top/report: Add tips about a list option\n  perf report/top: Add a tip about system-wide collection from all CPUs\n  perf report/top: Add a tip about source line numbers with overhead\n  tools: Synchronize tools/include/uapi/linux/bpf.h\n  tools: Synchronize tools/arch/x86/include/asm/cpufeatures.h\n  perf bench mem: Sync memcpy assembly sources with the kernel\n  perf jevents: Fix Intel JSON fixed counter conversions\n  tools lib traceevent: Fix kbuffer_read_at_offset()\n  perf intel-pt: Fix MTC timestamp calculation for large MTC periods\n  perf intel-pt: Fix estimated timestamps for cycle-accurate mode\n  perf uretprobe ppc64le: Fix probe location\n  perf pmu-events: Add Skylake frontend MSR support\n  perf pmu-events: Fix fixed counters on Intel\n  perf tools: Make alias matching case-insensitive\n  perf tools: Allow period\u003d in perf stat CPU event descriptions.\n  perf tools: Add README for info on parsing JSON/map files\n  perf list jevents: Add support for event list topics\n  perf list: Support long jevents descriptions\n  ...\n"
    },
    {
      "commit": "84ed2da02f4cda6759880c87a213ee80c91ca3bd",
      "tree": "a13f3bb09c0efe805cf673b941cc87ca84b06ace",
      "parents": [
        "daba2b314a43c53be61eb98e0e88b094398196f5",
        "be6a2e4c46cc122ba9113ba569fbc50fad075fff"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 10:29:59 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 10:29:59 2016 -0700"
      },
      "message": "Merge branch \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull scheduler fix from Thomas Gleixner:\n \"A revert of a commit which pointelessly widened a preempt disabled\n  section which in turn caused might_sleep() to trigger.\n\n  The patch intended to prevent usage of smp_processor_id() in\n  preemptible context, but the usage in that case is fine because the\n  thread is pinned on a single cpu and therefore cannot be migrated off\"\n\n* \u0027sched-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  Revert \"sched/core: Do not use smp_processor_id() with preempt enabled in smpboot_thread_fn()\"\n"
    },
    {
      "commit": "daba2b314a43c53be61eb98e0e88b094398196f5",
      "tree": "aa38a8a46eb6119f67ee7a6fefb5eabbe6e38c55",
      "parents": [
        "604a830d4fb5bf2334263bd597de22652e63b7e6",
        "65543b3353e7d29d258aac4190cda6a2f49abeb3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 10:24:41 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 10:24:41 2016 -0700"
      },
      "message": "Merge branch \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull irq fixes from Thomas Gleixner:\n \"Two small kerneldoc fixes from Julia Lawall\"\n\n* \u0027irq-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  irqchip/metag-ext: Improve function-level documentation\n  irqchip/vic: Improve function-level documentation\n"
    },
    {
      "commit": "604a830d4fb5bf2334263bd597de22652e63b7e6",
      "tree": "6e7c52a829d3bbad08dc42787b3db150c3457c7d",
      "parents": [
        "563873318d328d9bbab4b00dfd835ac7c7e28697",
        "58bfea9532552d422bde7afa207e1a0f08dffa7d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 10:23:18 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 10:23:18 2016 -0700"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer fix from Thomas Gleixner:\n \"A single fix for a regression introduced in 4.8 which causes the\n  trace/perf clock to return random nonsense if CONFIG_DEBUG_TIMEKEEPING\n  is set\"\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  timekeeping: Fix __ktime_get_fast_ns() regression\n"
    },
    {
      "commit": "563873318d328d9bbab4b00dfd835ac7c7e28697",
      "tree": "0fcdebe4abb52d340c144efd0a494c217b2c58ba",
      "parents": [
        "24532f768121b07b16178ffb40442ece43365cbd",
        "bfd8d3f23b51018388be0411ccbc2d56277fe294"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 09:29:50 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Oct 10 09:29:50 2016 -0700"
      },
      "message": "Merge branch \u0027printk-cleanups\u0027\n\nMerge my system logging cleanups, triggered by the broken \u0027\\n\u0027 patches.\n\nThe line continuation handling has been broken basically forever, and\nthe code to handle the system log records was both confusing and\ndubious.  And it would do entirely the wrong thing unless you always had\na terminating newline, partly because it couldn\u0027t actually see whether a\nmessage was marked KERN_CONT or not (but partly because the LOG_CONT\nhandling in the recording code was rather confusing too).\n\nThis re-introduces a real semantically meaningful KERN_CONT, and fixes\nthe few places I noticed where it was missing.  There are probably more\nmissing cases, since KERN_CONT hasn\u0027t actually had any semantic meaning\nfor at least four years (other than the checkpatch meaning of \"no log\nlevel necessary, this is a continuation line\").\n\nThis also allows the combination of KERN_CONT and a log level.  In that\ncase the log level will be ignored if the merging with a previous line\nis successful, but if a new record is needed, that new record will now\nget the right log level.\n\nThat also means that you can at least in theory combine KERN_CONT with\nthe \"pr_info()\" style helpers, although any use of pr_fmt() prefixing\nwould make that just result in a mess, of course (the prefix would end\nup in the middle of a continuing line).\n\n* printk-cleanups:\n  printk: make reading the kernel log flush pending lines\n  printk: re-organize log_output() to be more legible\n  printk: split out core logging code into helper function\n  printk: reinstate KERN_CONT for printing continuation lines\n"
    },
    {
      "commit": "3a8db79889ce16930aff19b818f5b09651bb7644",
      "tree": "e4395e493ec475bbcb9402e647e9429b56be3db3",
      "parents": [
        "c8d2bc9bc39ebea8437fd974fdbc21847bb897a3"
      ],
      "author": {
        "name": "Marcelo Ricardo Leitner",
        "email": "marcelo.leitner@gmail.com",
        "time": "Sat Oct 08 10:14:37 2016 -0300"
      },
      "committer": {
        "name": "David Teigland",
        "email": "teigland@redhat.com",
        "time": "Mon Oct 10 09:54:00 2016 -0500"
      },
      "message": "dlm: free workqueues after the connections\n\nAfter backporting commit ee44b4bc054a (\"dlm: use sctp 1-to-1 API\")\nseries to a kernel with an older workqueue which didn\u0027t use RCU yet, it\nwas noticed that we are freeing the workqueues in dlm_lowcomms_stop()\ntoo early as free_conn() will try to access that memory for canceling\nthe queued works if any.\n\nThis issue was introduced by commit 0d737a8cfd83 as before it such\nattempt to cancel the queued works wasn\u0027t performed, so the issue was\nnot present.\n\nThis patch fixes it by simply inverting the free order.\n\nCc: stable@vger.kernel.org\nFixes: 0d737a8cfd83 (\"dlm: fix race while closing connections\")\nSigned-off-by: Marcelo Ricardo Leitner \u003cmarcelo.leitner@gmail.com\u003e\nSigned-off-by: David Teigland \u003cteigland@redhat.com\u003e\n"
    },
    {
      "commit": "c3afafa47898e34eb49828ec4ac92bcdc81c8f0c",
      "tree": "055f603e131de9c4d36dafb1856fe69c737152de",
      "parents": [
        "f97581cfa6e7db9818520597b8a44f8268d75013",
        "80da44c29d997e28c4442825f35f4ac339813877"
      ],
      "author": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Oct 10 11:19:47 2016 +0800"
      },
      "committer": {
        "name": "Herbert Xu",
        "email": "herbert@gondor.apana.org.au",
        "time": "Mon Oct 10 11:19:47 2016 +0800"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6\n\nMerge the crypto tree to pull in vmx ghash fix.\n"
    },
    {
      "commit": "24532f768121b07b16178ffb40442ece43365cbd",
      "tree": "ca2eaf2c3ed031dd3aa977af95df77bfa2e18cc6",
      "parents": [
        "12e3d3cdd975fe986cc5c35f60b1467a8ec20b80",
        "97a32864e6de5944c6356049f60569de01e9ba1f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 17:32:20 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 17:32:20 2016 -0700"
      },
      "message": "Merge branch \u0027for-4.9/block-smp\u0027 of git://git.kernel.dk/linux-block\n\nPull blk-mq CPU hotplug update from Jens Axboe:\n \"This is the conversion of blk-mq to the new hotplug state machine\"\n\n* \u0027for-4.9/block-smp\u0027 of git://git.kernel.dk/linux-block:\n  blk-mq: fixup \"Convert to new hotplug state machine\"\n  blk-mq: Convert to new hotplug state machine\n  blk-mq/cpu-notif: Convert to new hotplug state machine\n"
    },
    {
      "commit": "12e3d3cdd975fe986cc5c35f60b1467a8ec20b80",
      "tree": "14ec935d2e15f454ba69353fcf5329ac67f72e4f",
      "parents": [
        "48915c2cbc77eceec2005afb695ac658fede4e0d",
        "8ec2ef2b66ea2fd00acc28aca8edaad441dbb424"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 17:29:33 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 17:29:33 2016 -0700"
      },
      "message": "Merge branch \u0027for-4.9/block-irq\u0027 of git://git.kernel.dk/linux-block\n\nPull blk-mq irq/cpu mapping updates from Jens Axboe:\n \"This is the block-irq topic branch for 4.9-rc. It\u0027s mostly from\n  Christoph, and it allows drivers to specify their own mappings, and\n  more importantly, to share the blk-mq mappings with the IRQ affinity\n  mappings. It\u0027s a good step towards making this work better out of the\n  box\"\n\n* \u0027for-4.9/block-irq\u0027 of git://git.kernel.dk/linux-block:\n  blk_mq: linux/blk-mq.h does not include all the headers it depends on\n  blk-mq: kill unused blk_mq_create_mq_map()\n  blk-mq: get rid of the cpumask in struct blk_mq_tags\n  nvme: remove the post_scan callout\n  nvme: switch to use pci_alloc_irq_vectors\n  blk-mq: provide a default queue mapping for PCI device\n  blk-mq: allow the driver to pass in a queue mapping\n  blk-mq: remove -\u003emap_queue\n  blk-mq: only allocate a single mq_map per tag_set\n  blk-mq: don\u0027t redistribute hardware queues on a CPU hotplug event\n"
    },
    {
      "commit": "48915c2cbc77eceec2005afb695ac658fede4e0d",
      "tree": "534b680b5203c37741e261b630f9c3584e743c47",
      "parents": [
        "b9044ac8292fc94bee33f6f08acaed3ac55f0c75",
        "8ff232c1a819c2e98d85974a3bff0b7b8e2970ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 17:16:18 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 17:16:18 2016 -0700"
      },
      "message": "Merge tag \u0027dm-4.9-changes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm\n\nPull device mapper updates from Mike Snitzer:\n\n - various fixes and cleanups for request-based DM core\n\n - add support for delaying the requeue of requests; used by DM\n   multipath when all paths have failed and \u0027queue_if_no_path\u0027 is\n   enabled\n\n - DM cache improvements to speedup the loading metadata and the writing\n   of the hint array\n\n - fix potential for a dm-crypt crash on device teardown\n\n - remove dm_bufio_cond_resched() and just using cond_resched()\n\n - change DM multipath to return a reservation conflict error\n   immediately; rather than failing the path and retrying (potentially\n   indefinitely)\n\n* tag \u0027dm-4.9-changes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (24 commits)\n  dm mpath: always return reservation conflict without failing over\n  dm bufio: remove dm_bufio_cond_resched()\n  dm crypt: fix crash on exit\n  dm cache metadata: switch to using the new cursor api for loading metadata\n  dm array: introduce cursor api\n  dm btree: introduce cursor api\n  dm cache policy smq: distribute entries to random levels when switching to smq\n  dm cache: speed up writing of the hint array\n  dm array: add dm_array_new()\n  dm mpath: delay the requeue of blk-mq requests while all paths down\n  dm mpath: use dm_mq_kick_requeue_list()\n  dm rq: introduce dm_mq_kick_requeue_list()\n  dm rq: reduce arguments passed to map_request() and dm_requeue_original_request()\n  dm rq: add DM_MAPIO_DELAY_REQUEUE to delay requeue of blk-mq requests\n  dm: convert wait loops to use autoremove_wake_function()\n  dm: use signal_pending_state() in dm_wait_for_completion()\n  dm: rename task state function arguments\n  dm: add two lockdep_assert_held() statements\n  dm rq: simplify dm_old_stop_queue()\n  dm mpath: check if path\u0027s request_queue is dying in activate_path()\n  ...\n"
    },
    {
      "commit": "b9044ac8292fc94bee33f6f08acaed3ac55f0c75",
      "tree": "40dce5392f6392984311ec1e083ce29b5186ce8b",
      "parents": [
        "1fde76f173e4d9aa205432c2ed5eff978d00deee",
        "2937f375751922ffce9ef1d5fa84491840b0c8e0"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 17:04:33 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 17:04:33 2016 -0700"
      },
      "message": "Merge tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma\n\nPull main rdma updates from Doug Ledford:\n \"This is the main pull request for the rdma stack this release.  The\n  code has been through 0day and I had it tagged for linux-next testing\n  for a couple days.\n\n  Summary:\n\n   - updates to mlx5\n\n   - updates to mlx4 (two conflicts, both minor and easily resolved)\n\n   - updates to iw_cxgb4 (one conflict, not so obvious to resolve,\n     proper resolution is to keep the code in cxgb4_main.c as it is in\n     Linus\u0027 tree as attach_uld was refactored and moved into\n     cxgb4_uld.c)\n\n   - improvements to uAPI (moved vendor specific API elements to uAPI\n     area)\n\n   - add hns-roce driver and hns and hns-roce ACPI reset support\n\n   - conversion of all rdma code away from deprecated\n     create_singlethread_workqueue\n\n   - security improvement: remove unsafe ib_get_dma_mr (breaks lustre in\n     staging)\"\n\n* tag \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (75 commits)\n  staging/lustre: Disable InfiniBand support\n  iw_cxgb4: add fast-path for small REG_MR operations\n  cxgb4: advertise support for FR_NSMR_TPTE_WR\n  IB/core: correctly handle rdma_rw_init_mrs() failure\n  IB/srp: Fix infinite loop when FMR sg[0].offset !\u003d 0\n  IB/srp: Remove an unused argument\n  IB/core: Improve ib_map_mr_sg() documentation\n  IB/mlx4: Fix possible vl/sl field mismatch in LRH header in QP1 packets\n  IB/mthca: Move user vendor structures\n  IB/nes: Move user vendor structures\n  IB/ocrdma: Move user vendor structures\n  IB/mlx4: Move user vendor structures\n  IB/cxgb4: Move user vendor structures\n  IB/cxgb3: Move user vendor structures\n  IB/mlx5: Move and decouple user vendor structures\n  IB/{core,hw}: Add constant for node_desc\n  ipoib: Make ipoib_warn ratelimited\n  IB/mlx4/alias_GUID: Remove deprecated create_singlethread_workqueue\n  IB/ipoib_verbs: Remove deprecated create_singlethread_workqueue\n  IB/ipoib: Remove deprecated create_singlethread_workqueue\n  ...\n"
    },
    {
      "commit": "1fde76f173e4d9aa205432c2ed5eff978d00deee",
      "tree": "ae8c0400944bffd7cc1ce9a883784f9482f7a680",
      "parents": [
        "b66484cd74706fa8681d051840fe4b18a3da40ff",
        "e404f945a6101a6f0f2a29aade6dc32015471daa"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 16:30:03 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 16:30:03 2016 -0700"
      },
      "message": "Merge tag \u0027for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma\n\nPull more rdma updates from Doug Ledford:\n \"Minor updates for rxe driver\"\n\n[ Starting to do merge window pulls again - the current -git tree does\n  appear to have some netfilter use-after-free issues, but I\u0027ve sent\n  off the report to the proper channels, and I don\u0027t want to delay merge\n  window activity any more ]\n\n* tag \u0027for-linus-2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma:\n  IB/rxe: improved debug prints \u0026 code cleanup\n  rdma_rxe: Ensure rdma_rxe init occurs at correct time\n  IB/rxe: Properly honor max IRD value for rd/atomic.\n  IB/{rxe,core,rdmavt}: Fix kernel crash for reg MR\n  IB/rxe: Fix sending out loopback packet on netdev interface.\n  IB/rxe: Avoid scheduling tasklet for userspace QP\n"
    },
    {
      "commit": "bfd8d3f23b51018388be0411ccbc2d56277fe294",
      "tree": "2dcf9d0557488349f4753838b6c689986dcf536c",
      "parents": [
        "5e467652ffefb84b1159d5d8fda665c48e5fd840"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 12:16:57 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 12:23:40 2016 -0700"
      },
      "message": "printk: make reading the kernel log flush pending lines\n\nThat will mean that any possible subsequent continuation will now be\nbroken up onto a line of its own (since reading the log has finalized\nthe beginning og the line), but if user space has activated system\nlogging (or if there\u0027s a kernel message dump going on) that is the right\nthing to do.\n\nAnd now that we actually get the continuation flags _right_ for this\nall, the user space logger that is reading the kernel messages can\nactually see the continuation marker.  Not that anybody seems to really\nbother with it (or care), but in theory user space can do its own\nmessage stitching.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5e467652ffefb84b1159d5d8fda665c48e5fd840",
      "tree": "bed19a06e5984b1d05816bd0a8e8178f0fef6aa4",
      "parents": [
        "c362c7ff84634390b44cc1ae7808519596de162d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 11:53:00 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 12:23:40 2016 -0700"
      },
      "message": "printk: re-organize log_output() to be more legible\n\nAvoid some duplicate logic now that we can return early, and update the\ncomments for the new LOG_CONT world order.\n\nThis also stops the continuation flushing from just using random record\nflags for the flushing action, instead taking the flags from the proper\noriginal line and updating them as we add continuations to it.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c362c7ff84634390b44cc1ae7808519596de162d",
      "tree": "63d9f21344d5552a844688be4a4979e5847804dd",
      "parents": [
        "4bcc595ccd80decb4245096e3d1258989c50ed41"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 08 22:02:09 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 12:23:39 2016 -0700"
      },
      "message": "printk: split out core logging code into helper function\n\nThe code that actually decides how to log the message (whether to put it\ndirectly into the record log, whether to append it to an existing\nbuffered log, or whether to start a new buffered log) is fairly\nnon-obvious code in the middle of the vprintk_emit() function.\n\nSplitting that code up into a helper function makes it easier to\nunderstand, but perhaps more importantly also allows for the code to\njust return early out of the helper function once it has made the\ndecision about where the new log content goes.\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4bcc595ccd80decb4245096e3d1258989c50ed41",
      "tree": "77ac2e68bc0ca5e29d991e8ac8c5819a225c9dc6",
      "parents": [
        "c8d2bc9bc39ebea8437fd974fdbc21847bb897a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Oct 08 20:32:40 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Oct 09 12:23:38 2016 -0700"
      },
      "message": "printk: reinstate KERN_CONT for printing continuation lines\n\nLong long ago the kernel log buffer was a buffered stream of bytes, very\nmuch like stdio in user space.  It supported log levels by scanning the\nstream and noticing the log level markers at the beginning of each line,\nbut if you wanted to print a partial line in multiple chunks, you just\ndid multiple printk() calls, and it just automatically worked.\n\nExcept when it didn\u0027t, and you had very confusing output when different\nlines got all mixed up with each other.  Then you got fragment lines\nmixing with each other, or with non-fragment lines, because it was\ntraditionally impossible to tell whether a printk() call was a\ncontinuation or not.\n\nTo at least help clarify the issue of continuation lines, we added a\nKERN_CONT marker back in 2007 to mark continuation lines:\n\n  474925277671 (\"printk: add KERN_CONT annotation\").\n\nThat continuation marker was initially an empty string, and didn\u0027t\nactuall make any semantic difference.  But it at least made it possible\nto annotate the source code, and have check-patch notice that a printk()\ndidn\u0027t need or want a log level marker, because it was a continuation of\na previous line.\n\nTo avoid the ambiguity between a continuation line that had that\nKERN_CONT marker, and a printk with no level information at all, we then\nin 2009 made KERN_CONT be a real log level marker which meant that we\ncould now reliably tell the difference between the two cases.\n\n  5fd29d6ccbc9 (\"printk: clean up handling of log-levels and newlines\")\n\nand we could take advantage of that to make sure we didn\u0027t mix up\ncontinuation lines with lines that just didn\u0027t have any loglevel at all.\n\nThen, in 2012, the kernel log buffer was changed to be a \"record\" based\nlog, where each line was a record that has a loglevel and a timestamp.\n\nYou can see the beginning of that conversion in commits\n\n  e11fea92e13f (\"kmsg: export printk records to the /dev/kmsg interface\")\n  7ff9554bb578 (\"printk: convert byte-buffer to variable-length record buffer\")\n\nwith a number of follow-up commits to fix some painful fallout from that\nconversion.  Over all, it took a couple of months to sort out most of\nit.  But the upside was that you could have concurrent readers (and\nwriters) of the kernel log and not have lines with mixed output in them.\n\nAnd one particular pain-point for the record-based kernel logging was\nexactly the fragmentary lines that are generated in smaller chunks.  In\norder to still log them as one recrod, the continuation lines need to be\nattached to the previous record properly.\n\nHowever the explicit continuation record marker that is actually useful\nfor this exact case was actually removed in aroundm the same time by commit\n\n  61e99ab8e35a (\"printk: remove the now unnecessary \"C\" annotation for KERN_CONT\")\n\ndue to the incorrect belief that KERN_CONT wasn\u0027t meaningful.  The\nambiguity between \"is this a continuation line\" or \"is this a plain\nprintk with no log level information\" was reintroduced, and in fact\nbecame an even bigger pain point because there was now the whole\nrecord-level merging of kernel messages going on.\n\nThis patch reinstates the KERN_CONT as a real non-empty string marker,\nso that the ambiguity is fixed once again.\n\nBut it\u0027s not a plain revert of that original removal: in the four years\nsince we made KERN_CONT an empty string again, not only has the format\nof the log level markers changed, we\u0027ve also had some usage changes in\nthis area.\n\nFor example, some ACPI code seems to use KERN_CONT _together_ with a log\nlevel, and now uses both the KERN_CONT marker and (for example) a\nKERN_INFO marker to show that it\u0027s an informational continuation of a\nline.\n\nWhich is actually not a bad idea - if the continuation line cannot be\nattached to its predecessor, without the log level information we don\u0027t\nknow what log level to assign to it (and we traditionally just assigned\nit the default loglevel).  So having both a log level and the KERN_CONT\nmarker is not necessarily a bad idea, but it does mean that we need to\nactually iterate over potentially multiple markers, rather than just a\nsingle one.\n\nAlso, since KERN_CONT was still conceptually needed, and encouraged, but\ndidn\u0027t actually _do_ anything, we\u0027ve also had the reverse problem:\nrather than having too many annotations it has too few, and there is bit\nrot with code that no longer marks the continuation lines with the\nKERN_CONT marker.\n\nSo this patch not only re-instates the non-empty KERN_CONT marker, it\nalso fixes up the cases of bit-rot I noticed in my own logs.\n\nThere are probably other cases where KERN_CONT will be needed to be\nadded, either because it is new code that never dealt with the need for\nKERN_CONT, or old code that has bitrotted without anybody noticing.\n\nThat said, we should strive to avoid the need for KERN_CONT.  It does\nresult in real problems for logging, and should generally not be seen as\na good feature.  If we some day can get rid of the feature entirely,\nbecause nobody does any fragmented printk calls, that would be lovely.\n\nBut until that point, let\u0027s at mark the code that relies on the hacky\nmulti-fragment kernel printk\u0027s.  Not only does it avoid the ambiguity,\nit also annotates code as \"maybe this would be good to fix some day\".\n\n(That said, particularly during single-threaded bootup, the downsides of\nKERN_CONT are very limited.  Things get much hairier when you have\nmultiple threads going on and user level reading and writing logs too).\n\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e55f1d1d13e7f1c364672d667d78fd1f640ab9f9",
      "tree": "406a3c127abb008f2f736c8d2ee03fc3c2926d6b",
      "parents": [
        "f334bcd94b7d3c0fbc34d518a86548f451ab5faf",
        "030b533c4fd4d2ec3402363323de4bb2983c9cee"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 08 11:06:08 2016 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 08 11:06:08 2016 -0400"
      },
      "message": "Merge remote-tracking branch \u0027jk/vfs\u0027 into work.misc\n"
    },
    {
      "commit": "f334bcd94b7d3c0fbc34d518a86548f451ab5faf",
      "tree": "357b0cbd488db581bc9bf710c3696579d21fac03",
      "parents": [
        "73e8fb2d596d5903cde6dcced39c0b88b5770a56",
        "814184fd402557f3e5960db469157ccdf1fb69da"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 08 11:00:01 2016 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 08 11:00:01 2016 -0400"
      },
      "message": "Merge remote-tracking branch \u0027ovl/misc\u0027 into work.misc\n"
    },
    {
      "commit": "73e8fb2d596d5903cde6dcced39c0b88b5770a56",
      "tree": "27c63346b888ce8f086a81ad801755bc1d4aa2d8",
      "parents": [
        "33e09f0ee76e9e4108c5aed67e027ef5e3fe0634",
        "3baf32898e1c88792fa7cadc88f601833bdae3da"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 08 10:44:55 2016 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 08 10:44:55 2016 -0400"
      },
      "message": "Merge branch \u0027work.const-qstr\u0027 into work.misc\n"
    },
    {
      "commit": "33e09f0ee76e9e4108c5aed67e027ef5e3fe0634",
      "tree": "ea13876185ce57c4a1aba22b33d996962b862ace",
      "parents": [
        "c5317167854e01dbb42d2291406ab8448d272868",
        "2864f301424227d9d3bde6d550bc224a83535b46"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 08 10:44:37 2016 -0400"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Oct 08 10:44:37 2016 -0400"
      },
      "message": "Merge branch \u0027work.iget\u0027 into work.misc\n"
    },
    {
      "commit": "d4b05923f579c234137317cdf9a5eb69ddab76d1",
      "tree": "edf61516631f9b7c2bcb37ab70d3b430f731b2f4",
      "parents": [
        "df610d678893c85b82d3a68eea0d87dd4e03e615"
      ],
      "author": {
        "name": "Dave Hansen",
        "email": "dave.hansen@intel.com",
        "time": "Fri Oct 07 09:23:42 2016 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 08 12:26:44 2016 +0200"
      },
      "message": "x86/pkeys: Make protection keys an \"eager\" feature\n\nOur XSAVE features are divided into two categories: those that\ngenerate FPU exceptions, and those that do not.  MPX and pkeys do\nnot generate FPU exceptions and thus can not be used lazily.  We\ndisable them when lazy mode is forced on.\n\nWe have a pair of masks to collect these two sets of features, but\nXFEATURE_MASK_PKRU was added to the wrong mask: XFEATURE_MASK_LAZY.\nFix it by moving the feature to XFEATURE_MASK_EAGER.\n\nNote: this only causes problem if you boot with lazy FPU mode\n(eagerfpu\u003doff) which is *not* the default.  It also only affects\nhardware which is not currently publicly available.  It looks like\neager mode is going away, but we still need this patch applied\nto any kernel that has protection keys and lazy mode, which is 4.6\nthrough 4.8 at this point, and 4.9 if the lazy removal isn\u0027t sent\nto Linus for 4.9.\n\nFixes: c8df40098451 (\"x86/fpu, x86/mm/pkeys: Add PKRU xsave fields and data structures\")\nSigned-off-by: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Dave Hansen \u003cdave@sr71.net\u003e\nCc: stable@vger.kernel.org\nLink: http://lkml.kernel.org/r/20161007162342.28A49813@viggo.jf.intel.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "df610d678893c85b82d3a68eea0d87dd4e03e615",
      "tree": "4bfbbcd9389c7157e4bfbf5a1762a7af19a1a70b",
      "parents": [
        "f3bf1dbe64b62a2058dd1944c00990df203e8e7a"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Oct 07 15:55:13 2016 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 08 12:18:36 2016 +0200"
      },
      "message": "x86/apic: Prevent pointless warning messages\n\nMarkus reported that he sees new warnings:\n\n  APIC: NR_CPUS/possible_cpus limit of 4 reached.  Processor 4/0x84 ignored.\n  APIC: NR_CPUS/possible_cpus limit of 4 reached.  Processor 5/0x85 ignored.\n\nThis comes from the recent persistant cpuid - nodeid changes. The code\nwhich emits the warning has been called prior to these changes only for\nenabled processors. Now it\u0027s called for disabled processors as well to get\nthe possible cpu accounting correct. So if the kernel is compiled for the\nnumber of actual available/enabled CPUs and the BIOS reports disabled CPUs\nas well then the above warnings are printed.\n\nThat\u0027s a pointless exercise as it only makes sense if there are more CPUs\nenabled than the kernel supports.\n\nNake the warning conditional on enabled processors so we are back to the\nstate before these changes.\n\nFixes: 8f54969dc8d6 (\"x86/acpi: Introduce persistent storage for cpuid \u003c-\u003e apicid mapping\") \nReported-and-tested-by: Markus Trippelsdorf \u003cmarkus@trippelsdorf.de\u003e\nCc: One Thousand Gnomes \u003cgnomes@lxorguk.ukuu.org.uk\u003e\nCc: Dou Liyang \u003cdouly.fnst@cn.fujitsu.com\u003e\nCc: linux-acpi@vger.kernel.org\nCc: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.20.1610071549330.19804@nanos\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n\n"
    },
    {
      "commit": "f3bf1dbe64b62a2058dd1944c00990df203e8e7a",
      "tree": "607576d72492d18ff6118fae11a63c6929c42067",
      "parents": [
        "2a51fe083eba7f99cbda72f5ef90cdf2f4df882c"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Oct 07 14:02:12 2016 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Oct 08 12:10:52 2016 +0200"
      },
      "message": "x86/acpi: Prevent LAPIC id 0xff from being accounted\n\nYinghai reported that the recent changes to make the cpuid - nodeid\nrelationship permanent causes a cpuid ordering regression on a system which\nhas 2apic enabled..\n\nThe reason is that the ACPI local APIC parser has no sanity check for\napicid 0xff, which is an invalid id. So a CPU id for this invalid local\nAPIC id is allocated and therefor breaks the cpuid ordering.\n\nAdd a sanity check to acpi_parse_lapic() which ignores the invalid id.\n\nFixes: 8f54969dc8d6 (\"x86/acpi: Introduce persistent storage for cpuid \u003c-\u003e apicid mapping\")\nReported-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Gu Zheng \u003cguz.fnst@cn.fujitsu.com\u003e,\nCc: Tang Chen \u003ctangchen@cn.fujitsu.com\u003e\nCc: douly.fnst@cn.fujitsu.com,\nCc: zhugh.fnst@cn.fujitsu.com\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Rafael J. Wysocki \u003crjw@rjwysocki.net\u003e\nCc: Len Brown \u003clenb@kernel.org\u003e\nCc: Lv Zheng \u003clv.zheng@intel.com\u003e,\nCc: robert.moore@intel.com\nCc: linux-acpi@vger.kernel.org\nLink: https://lkml.kernel.org/r/CAE9FiQVQx6FRXT-RdR7Crz4dg5LeUWHcUSy1KacjR+JgU_vGJg@mail.gmail.com\n"
    },
    {
      "commit": "b66484cd74706fa8681d051840fe4b18a3da40ff",
      "tree": "e8215e7c25661d25f84abc4b98140c2062d6d5de",
      "parents": [
        "c913fc4146ba7c280e074558d0a461e5c6f07c8a",
        "05fd007e46296afb24d15c7d589d535e5a5b9d5c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:38:00 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:38:00 2016 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (patches from Andrew)\n\nMerge updates from Andrew Morton:\n\n - fsnotify updates\n\n - ocfs2 updates\n\n - all of MM\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (127 commits)\n  console: don\u0027t prefer first registered if DT specifies stdout-path\n  cred: simpler, 1D supplementary groups\n  CREDITS: update Pavel\u0027s information, add GPG key, remove snail mail address\n  mailmap: add Johan Hovold\n  .gitattributes: set git diff driver for C source code files\n  uprobes: remove function declarations from arch/{mips,s390}\n  spelling.txt: \"modeled\" is spelt correctly\n  nmi_backtrace: generate one-line reports for idle cpus\n  arch/tile: adopt the new nmi_backtrace framework\n  nmi_backtrace: do a local dump_stack() instead of a self-NMI\n  nmi_backtrace: add more trigger_*_cpu_backtrace() methods\n  min/max: remove sparse warnings when they\u0027re nested\n  Documentation/filesystems/proc.txt: add more description for maps/smaps\n  mm, proc: fix region lost in /proc/self/smaps\n  proc: fix timerslack_ns CAP_SYS_NICE check when adjusting self\n  proc: add LSM hook checks to /proc/\u003ctid\u003e/timerslack_ns\n  proc: relax /proc/\u003ctid\u003e/timerslack_ns capability requirements\n  meminfo: break apart a very long seq_printf with #ifdefs\n  seq/proc: modify seq_put_decimal_[u]ll to take a const char *, not char\n  proc: faster /proc/*/status\n  ...\n"
    },
    {
      "commit": "c913fc4146ba7c280e074558d0a461e5c6f07c8a",
      "tree": "b09b2ab5b87f4772d7b30d84e21984b999b37315",
      "parents": [
        "a439f8f2879c68676eb74501ef9a6f187aeeec57",
        "8185041f5fa6f02acf75229a590e16aac028fc5e"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:34:49 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:34:49 2016 -0700"
      },
      "message": "Merge tag \u0027armsoc-late\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC late DT updates from Arnd Bergmann:\n \"These updates have been kept in a separate branch mostly because they\n  rely on updates to the respective clk drivers to keep the shared\n  header files in sync.\n\n   - The Renesas r8a7796 (R-Car M3-W) platform gets added, this is an\n     automotive SoC similar to the ⅹ8a7795 chip we already support, but\n     the dts changes rely on a clock driver change that has been merged\n     for v4.9 through the clk tree.\n\n   - The Amlogic meson-gxbb (S905) platform gains support for a few\n     drivers merged through our tree, in particular the network and usb\n     driver changes are required and included here, and also the clk\n     tree changes.\n\n   - The Allwinner platforms have seen a large-scale change to their clk\n     drivers and the dts file updates must come after that. This\n     includes the newly added Nextthing GR8 platform, which is derived\n     from sun5i/A13.\n\n   - Some integrator (arm32) changes rely on clk driver changes.\n\n   - A single patch for lpc32xx has no such dependency but wasn\u0027t added\n     until just before the merge window\"\n\n* tag \u0027armsoc-late\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (99 commits)\n  ARM: dts: lpc32xx: add device node for IRAM on-chip memory\n  ARM: dts: sun8i: Add accelerometer to polaroid-mid2407pxe03\n  ARM: dts: sun8i: enable UART1 for iNet D978 Rev2 board\n  ARM: dts: sun8i: add pinmux for UART1 at PG\n  dts: sun8i-h3: add I2C0-2 peripherals to H3 SOC\n  dts: sun8i-h3: add pinmux definitions for I2C0-2\n  dts: sun8i-h3: associate exposed UARTs on Orange Pi Boards\n  dts: sun8i-h3: split off RTS/CTS for UART1 in seperate pinmux\n  dts: sun8i-h3: add pinmux definitions for UART2-3\n  ARM: dts: sun9i: a80-optimus: Disable EHCI1\n  ARM: dts: sun9i: cubieboard4: Add AXP806 PMIC device node and regulators\n  ARM: dts: sun9i: a80-optimus: Add AXP806 PMIC device node and regulators\n  ARM: dts: sun9i: cubieboard4: Declare AXP809 SW regulator as unused\n  ARM: dts: sun9i: a80-optimus: Declare AXP809 SW regulator as unused\n  ARM: dts: sun8i: Add touchscreen node for sun8i-a33-ga10h\n  ARM: dts: sun8i: Add touchscreen node for sun8i-a23-polaroid-mid2809pxe04\n  ARM: dts: sun8i: Add touchscreen node for sun8i-a23-polaroid-mid2407pxe03\n  ARM: dts: sun8i: Add touchscreen node for sun8i-a23-inet86dz\n  ARM: dts: sun8i: Add touchscreen node for sun8i-a23-gt90h\n  ARM64: dts: meson-gxbb-vega-s95: Enable USB Nodes\n  ...\n"
    },
    {
      "commit": "a439f8f2879c68676eb74501ef9a6f187aeeec57",
      "tree": "1c41d9cb4c21a939a0fff97d6fc993fa092b622f",
      "parents": [
        "00e729c933950cda694c49260ff67855fdbfd00a",
        "c1fd2794a4111501027dc60b3fd9d2a29789ea47"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:32:39 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:32:39 2016 -0700"
      },
      "message": "Merge tag \u0027armsoc-dt64\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM 64-bit DT updates from Arnd Bergmann:\n \"The 64-bit DT changes are surprisingly small this time, we only add\n  two SoC platforms: the ZTE ZX296718 Set-top-box SoC and the SocioNext\n  UniPhier LD11 TV SoC, each with their reference boards.\n\n  There are three new machines added for existing SoC platforms:\n\n   - The Marvell Armada 8040 development board is an impressive\n     quad-core Cortex-A72 machine with three 10gbit ethernet interfaces\n\n   - Qualcomms DragonBoard 820c single-board computer is their current\n     high-end phone platform in the 96boards form factor\n\n   - Rockchip: Tronsmart Orion r86 set-top-box is a popular mid-range\n     Android box based on the 8-core rk3368 SoC\"\n\n* tag \u0027armsoc-dt64\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (91 commits)\n  arm64: dts: berlin4ct: Add L2 cache topology\n  arm64: dts: berlin4ct: enable all wdt nodes unconditionally\n  arm64: dts: berlin4ct: switch to Cortex-A53 specific pmu nodes\n  arm64: dts: Add ZTE ZX296718 SoC dts and Makefile\n  arm64: dts: apm: Add DT node for APM X-Gene 2 CPU clocks\n  arm64: dts: apm: Add X-Gene SoC hwmon to device tree\n  arm64: dts: apm: Fix interrupt polarity for X-Gene PCIe legacy interrupts\n  arm64: dts: apm: Add APM X-Gene v2 SoC PMU DTS entries\n  arm64: dts: apm: Add APM X-Gene SoC PMU DTS entries\n  arm64: dts: marvell: enable MSI for PCIe on Armada 7K/8K\n  arm64: dts: ls2080a: Add \u0027dma-coherent\u0027 for ls2080a PCI nodes\n  arm64: dts: rockchip: add Type-C phy for RK3399\n  arm64: dts: rockchip: enable the gmac for rk3399 evb board\n  arm64: dts: rockchip: add the gmac needed node for rk3399\n  arm64: dts: rockchip: support the pmu node for rk3399\n  arm64: dts: rockchip: change all interrupts cells to 4 on rk3399 SoCs\n  arm64: dts: rockchip: add the tcpc for rk3399 power domain\n  arm64: dts: rockchip: add efuse0 device node for rk3399\n  arm64: dts: rockchip: configure PCIe support for rk3399-evb\n  arm64: dts: rockchip: add the PCIe controller support for RK3399\n  ...\n"
    },
    {
      "commit": "00e729c933950cda694c49260ff67855fdbfd00a",
      "tree": "03bb4c9fdd244a976b99df0f71c5dccd59dc3f20",
      "parents": [
        "6afd563d4bbc1924b7de9e053324c007e0d36476",
        "adff807988f92d4646c50b601936e340a92d5455"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:29:04 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:29:04 2016 -0700"
      },
      "message": "Merge tag \u0027armsoc-dt\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM DT updates from Arnd Bergmann:\n \"These are as usual a very large number of mostly boring updates to\n  enable devices in existing machines, or to fix minor bugs. Notably, an\n  ongoing treewide effort to fix warnings caused by an update to the\n  device tree compiler. These are enabled with \"make W\u003d1\" at the moment\n  but can hopefully become the default once all issues have been\n  addressed.\n\n  No new SoC platform is added this time around (Armada 395 and Orion\n  mv88f5181 are slight variations of existing ones), but a significant\n  number of new dts files are added, which I list by platform:\n\n   - Allwinner: Empire Electronix M712 and iNet d978 Rev2 tablets,\n     Orange Pi PC Plus, Orange Pi 2, Orange Pi Plus 2E, Orange Pi Lite,\n     Olimex A33-Olinuxino, and Nano Pi Neo single-board computers\n\n   - ARM Realview: all supported machines (ported from board files)\n\n   - Broadcom: BCM958525er, BCM958522er, BCM988312hr, BCM958623hr and\n     BCM958622hr reference boards for Northstar platform, Raspberry Pi\n     Zero single-board computer\n\n   - Marvell EBU: Netgear WNR854T router (ported from board file),\n     Armada 395 SoC platform and GP board Armada 390 DB development\n     board\n\n   - NXP i.MX: imx7s Warp7 reference board, Gateworks Ventana GW553x\n     single-board computer, Technologic Systems TS-4900 and Engicam\n     IMX6UL GEA M6UL computer-on-module, Inverse Path USB armory board\n\n   - Qualcomm: LG Nexus 5 Phone\n\n   - Renesas: r8a7792/wheat and r7s72100/rskrza1 development boards\n\n   - Rockchip: Rockchip RK3288 Fennec reference board, Firefly RK3288\n     Reload platform\n\n   - ST Microelectronics STi: B2260 (96boards) single-board computer\n\n   - TI Davinci: OMAP-L138 LCDK Development kit\n\n   - TI OMAP: beagleboard-x15 rev B1 single-board computer\"\n\n* tag \u0027armsoc-dt\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (390 commits)\n  ARM: dts: sony-nsz-gs7: add missing unit name to /memory node\n  ARM: dts: chromecast: add missing unit name to /memory node\n  ARM: dts: berlin2q-marvell-dmp: add missing unit name to /memory node\n  ARM: dts: berlin2: Add missing unit name to /soc node\n  ARM: dts: berlin2cd: Add missing unit name to /soc node\n  ARM: dts: berlin2q: Add missing unit name to /soc node\n  ARM: dts: berlin2: Remove skeleton.dtsi inclusion\n  ARM: dts: berlin2cd: Remove skeleton.dtsi inclusion\n  ARM: dts: berlin2q: Remove skeleton.dtsi inclusion\n  arm: dts: berlin2q: enable all wdt nodes unconditionally\n  arm: dts: berlin2: enable all wdt nodes unconditionally\n  ARM: dts: omap5-igep0050.dts: Use tabs for indentation\n  ARM: dts: Fix igepv5 power button GPIO direction\n  ARM: dts: am335x-evmsk: Add blue-and-red-wiring -property to lcdc node\n  ARM: dts: am335x-evmsk: Whitespace cleanup of lcdc related nodes\n  ARM: dts: am335x-evm: Add blue-and-red-wiring -property to lcdc node\n  ARM: dts: s3c64xx: Use macros for pinctrl configuration\n  ARM: dts: s3c2416: Use macros for pinctrl configuration\n  ARM: dts: s5pv210: Use macros for pinctrl configuration\n  ARM: dts: s3c64xx: Use common macros for pinctrl configuration\n  ...\n"
    },
    {
      "commit": "6afd563d4bbc1924b7de9e053324c007e0d36476",
      "tree": "619c2270f6f09ce8c9eb7f6aa448f07f67ffa8e8",
      "parents": [
        "b4f33f6ddd0c218e12454e1379de3aaa73f2e8dc",
        "d6db68b2deaa0158d25b236edffcf6dd2117208f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:23:40 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:23:40 2016 -0700"
      },
      "message": "Merge tag \u0027armsoc-drivers\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC driver updates from Arnd Bergmann:\n \"Driver updates for ARM SoCs, including a couple of newly added\n  drivers:\n\n   - The Qualcomm external bus interface 2 (EBI2), used in some of their\n     mobile phone chips for connecting flash memory, LCD displays or\n     other peripherals\n\n   - Secure monitor firmware for Amlogic SoCs, and an NVMEM driver for\n     the EFUSE based on that firmware interface.\n\n   - Perf support for the AppliedMicro X-Gene performance monitor unit\n\n   - Reset driver for STMicroelectronics STM32\n\n   - Reset driver for SocioNext UniPhier SoCs\n\n  Aside from these, there are minor updates to SoC-specific bus,\n  clocksource, firmware, pinctrl, reset, rtc and pmic drivers\"\n\n* tag \u0027armsoc-drivers\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (50 commits)\n  bus: qcom-ebi2: depend on HAS_IOMEM\n  pinctrl: mvebu: orion5x: Generalise mv88f5181l support for 88f5181\n  clk: mvebu: Add clk support for the orion5x SoC mv88f5181\n  dt-bindings: EXYNOS: Add Exynos5433 PMU compatible\n  clocksource: exynos_mct: Add the support for ARM64\n  perf: xgene: Add APM X-Gene SoC Performance Monitoring Unit driver\n  Documentation: Add documentation for APM X-Gene SoC PMU DTS binding\n  MAINTAINERS: Add entry for APM X-Gene SoC PMU driver\n  bus: qcom: add EBI2 driver\n  bus: qcom: add EBI2 device tree bindings\n  rtc: rtc-pm8xxx: Add support for pm8018 rtc\n  nvmem: amlogic: Add Amlogic Meson EFUSE driver\n  firmware: Amlogic: Add secure monitor driver\n  soc: qcom: smd: Reset rx tail rather than tx\n  memory: atmel-sdramc: fix a possible NULL dereference\n  reset: hi6220: allow to compile test driver on other architectures\n  reset: zynq: add driver Kconfig option\n  reset: sunxi: add driver Kconfig option\n  reset: stm32: add driver Kconfig option\n  reset: socfpga: add driver Kconfig option\n  ...\n"
    },
    {
      "commit": "b4f33f6ddd0c218e12454e1379de3aaa73f2e8dc",
      "tree": "a4e6ff8be0c6a903c43a9fc2ba3f73a3e42526d6",
      "parents": [
        "5acb6052ce304d89e36f599f1e27a7c63d389ca0",
        "a119a2c4c093716193574675590ea4a7835fa277"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:22:01 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:22:01 2016 -0700"
      },
      "message": "Merge tag \u0027armsoc-arm64\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC 64-bit updates from Arnd Bergmann:\n \"Changes to platform code for 64-bit ARM platforms.\n\n  Nearly all of these are defconfig updates to enable new drivers or old\n  drivers still used on these 64-bit platforms.\n\n  Aside from that, we gain initial support for two set-top-box\n  platforms, both of which already have 32-bit support in arch/arm:\n\n   - Broadcom adds abstract support for the bcm7xxx/brcmstb platform,\n     presumably the respective dts files and more information will\n     follow at a later point.\n\n   - The ZTE ZX296718 SoC for set-top-boxes, a relative of the 32-bit\n     ZX296702 SoC that we already support\"\n\n* tag \u0027armsoc-arm64\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:\n  arm64: add ZTE ZX SoC family\n  arm64: defconfig: enable ZTE ZX related config\n  arm64: defconfig: enable common modules for power management\n  arm64: defconfig: enable meson I2C\n  arm64: defconfig: enable meson SPI as module\n  arm64: defconfig: enable meson WDT as modules\n  arm64: defconfig: enable HW random as module\n  arm64: defconfig: Enable SDHI and GPIO_REGULATOR\n  arm64: configs: enable PCIe driver for Aardvark\n  Kconfig: ARCH_HISI: Add PINCTRL to HISI platform\n  arm64: defconfig: enable bluetooth supports as modules\n  arm64: defconfig: enable CONFIG_INPUT_HISI_POWERKEY for HiKey\n  arm64: defconfig: Enable HiSilicon kirin drm, adv7533 for HiKey\n  arm64: defconfig: Enable Hisi SAS and HNS\n  arm64: defconfig: Enable QDF2432 config options\n  arm64: sunxi: Kconfig: add essential pinctrl driver\n  arm64: defconfig: Add Renesas R-Car HSUSB driver support as module\n  arm64: Add Broadcom Set Top Box Kconfig entry point\n  arm64: defconfig: enable xhci-platform\n"
    },
    {
      "commit": "5acb6052ce304d89e36f599f1e27a7c63d389ca0",
      "tree": "6afc7070e43490e7b5eafb2660b62b027dc555a9",
      "parents": [
        "66f2c6d9525baa7534640f09f406cd2987e0f287",
        "3f0958d8aea708019d52962a7a8fe827d9f9006c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:20:33 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:20:33 2016 -0700"
      },
      "message": "Merge tag \u0027armsoc-defconfig\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC defconfig updates from Arnd Bergmann:\n \"Defconfig additions, removals, etc. Most of these are small changes\n  adding the options for newly upstreamed drivers, or drivers needed for\n  new board support. Nothing specifically sticks out this time\"\n\n* tag \u0027armsoc-defconfig\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (25 commits)\n  ARM: multi_v7_defconfig: enable CONFIG_EFI\n  ARM: multi_v7_defconfig: Build Atmel maXTouch driver as a module\n  ARM: defconfig: update the Integrator defconfig\n  ARM: keystone: defconfig: Fix USB configuration\n  ARM: imx_v6_v7_defconfig: Select the wm8960 codec driver\n  ARM: omap2plus_defconfig: switch to the IIO BMP085 driver\n  ARM: mvebu_v5_defconfig: use MV88E6XXX\n  ARM: davinci_all_defconfig: Enable some UBI modules\n  ARM: davinci_all_defconfig: Enable AEMIF as a module\n  ARM: multi_v7_defconfig: Enable SECCOMP\n  ARM: exynos_defconfig: Enable SECCOMP\n  ARM: imx_v6_v7_defconfig: Add CONFIG_MPL3115\n  ARM: imx_v6_v7_defconfig: Enable GPU support\n  ARM: s3c2410_defconfig: Remove CONFIG_IPV6_PRIVACY\n  ARM: exynos_defconfig: Enable PM_DEBUG\n  ARM: exynos_defconfig: Enable bus frequency scaling with devfreq\n  ARM: imx_v6_v7_defconfig: enable more USB configurations\n  ARM: davinci_all_defconfig: enable SMSC ethernet PHY\n  ARM: davinci_all_defconfig: enable RTC driver as module\n  ARM: multi_v7_defconfig: Enable ARM_IMX6Q_CPUFREQ\n  ...\n"
    },
    {
      "commit": "66f2c6d9525baa7534640f09f406cd2987e0f287",
      "tree": "c4874177b3dd0e2d0913cb0f898f74412f2801c1",
      "parents": [
        "a771151a8323a5ca81f443a9a439851b8a872c85",
        "e40454d3f444ba7f8cc78dd985a1414a5945757c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:18:42 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:18:42 2016 -0700"
      },
      "message": "Merge tag \u0027armsoc-soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC platform updates from Arnd Bergmann:\n \"These are updates for platform specific code on 32-bit ARM machines,\n  essentially anything that can not (yet) be expressed using DT files.\n\n  Noteworthy changes include:\n\n   - We get support for running in big-endian mode on two platforms:\n     sunxi (Allwinner) and s3c24xx (old Samsung).\n\n   - The recently added Uniphier platform now uses standard PSCI methods\n     for SMP booting and we remove support for old bootloader versions\n     that did not support it yet.\n\n   - In sunxi, we gain support for the \"Nextthing GR8\" SoC, which is a\n     close relative of the Allwinner A13 and R8 chips.\n\n   - PXA completes its move over to the generic dmaengine framework and\n     removes its old private API\n\n   - mach-bcm gains support for BCM47189/BCM53573, their first ARM SoC\n     with integrated 802.11ac wireless networking\"\n\n* tag \u0027armsoc-soc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (54 commits)\n  ARM: imx legacy: pca100: move peripheral initialization to .init_late\n  ARM: imx legacy: mx27ads: move peripheral initialization to .init_late\n  ARM: imx legacy: mx21ads: move peripheral initialization to .init_late\n  ARM: imx legacy: pcm043: move peripheral initialization to .init_late\n  ARM: imx legacy: mx35-3ds: move peripheral initialization to .init_late\n  ARM: imx legacy: mx27-3ds: move peripheral initialization to .init_late\n  ARM: imx legacy: imx27-visstrim-m10: move peripheral initialization to .init_late\n  ARM: imx legacy: vpr200: move peripheral initialization to .init_late\n  ARM: imx legacy: mx31moboard: move peripheral initialization to .init_late\n  ARM: imx legacy: armadillo5x0: move peripheral initialization to .init_late\n  ARM: imx legacy: qong: move peripheral initialization to .init_late\n  ARM: imx legacy: mx31-3ds: move peripheral initialization to .init_late\n  ARM: imx legacy: pcm037: move peripheral initialization to .init_late\n  ARM: imx legacy: mx31lilly: move peripheral initialization to .init_late\n  ARM: imx legacy: mx31ads: move peripheral initialization to .init_late\n  ARM: imx legacy: mx31lite: move peripheral initialization to .init_late\n  ARM: imx legacy: kzm: move peripheral initialization to .init_late\n  MAINTAINERS: update list of Oxnas maintainers\n  ARM: orion5x: remove extraneous NO_IRQ\n  ARM: orion: simplify orion_ge00_switch_init\n  ...\n"
    },
    {
      "commit": "a771151a8323a5ca81f443a9a439851b8a872c85",
      "tree": "e1cd1a77beae03bb03ec238c227ae26199998dc7",
      "parents": [
        "997b611baf7591ea5119539ee821a3e2f4fcf24e",
        "e13688fe618881dd407a68dfbd2295d70b21a445"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:16:16 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 21:16:16 2016 -0700"
      },
      "message": "Merge tag \u0027armsoc-cleanup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC cleanups from Arnd Bergmann:\n \"The cleanups for v4.9 are a little larger that usual, but thankfully\n  that is almost exclusively due to removing a significant number of\n  files that have become obsolete after the still ongoing conversion of\n  old board files to devicetree.\n\n   - for mach-omap2, which is still the largest platform in arch/arm/,\n     the conversion to DT is finally complete after the Nokia N900 is\n     now fully supported there, along with the omap3 LDP, and we can\n     remove those two board files. If no regressions are found, another\n     large cleanup for the platform will happen as a follow-up, removing\n     dead code and restructuring the platform based on being DT-only.\n\n   - In mach-imx, similar work is ongoing, but has not come that far.\n     This time, we remove the obsolete board file for the i.MX1\n     generation, which like i.MX25, i.MX5, i.MX6, and i.MX7 is now\n     DT-only. The remaining board files are for i.MX2 and i.MX3 machines\n     based on old ARM926 or ARM1136 cores that should work with DT in\n     principle.\n\n   - realview has just been converted from board files to DT, and a lot\n     of code gets removed in the process. This is the last\n     ARM/Keil/Versatile derived platform that was still using board\n     files, the other ones being integrator, versatile and vexpress. We\n     can probably merge the remaining code into a single directory in\n     the near future.\n\n   - clps711x had completed the conversion in v4.8, but we accidentally\n     left the files in place that should have been deleted then\"\n\n* tag \u0027armsoc-cleanup\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (21 commits)\n  ARM: select PCI_DOMAINS config from ARCH_MULTIPLATFORM\n  ARM: stop *MIGHT_HAVE_PCI* config from being selected redundantly\n  ARM: imx: (trivial) fix typo and grammar\n  ARM: clps711x: remove extraneous files\n  ARM: imx: use IS_ENABLED() instead of checking for built-in or module\n  ARM: OMAP2+: use IS_ENABLED() instead of checking for built-in or module\n  ARM: OMAP1: use IS_ENABLED() instead of checking for built-in or module\n  ARM: imx: remove platform-mxc_rnga\n  ARM: realview: imply device tree boot\n  ARM: realview: no need to select SMP_ON_UP explicitly\n  ARM: realview: delete the RealView board files\n  ARM: imx: no need to select SMP_ON_UP explicitly\n  ARM: i.MX: Move SOC_IMX1 into \u0027Device tree only\u0027\n  ARM: i.MX: Remove i.MX1 non-DT support\n  ARM: i.MX: Remove i.MX1 Synertronixx SCB9328 board support\n  ARM: i.MX: Remove i.MX1 Armadeus APF9328 board support\n  ARM: mxs: remove obsolete startup code for TX28\n  ARM: i.MX31 iomux: remove duplicates with alternate name\n  ARM: i.MX31 iomux: remove plain duplicates\n  ARM: OMAP2+: Drop legacy board file for LDP\n  ...\n"
    },
    {
      "commit": "997b611baf7591ea5119539ee821a3e2f4fcf24e",
      "tree": "9f2c78a343ddb90810f5dabc8e6cf07ee118eb19",
      "parents": [
        "2c34ff14bf1d03a705f5400888ecac5b6400e981",
        "690d097c00c88fa9d93d198591e184164b1d8c20"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 20:50:37 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 20:50:37 2016 -0700"
      },
      "message": "Merge branch \u0027parisc-4.9-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux\n\nPull parisc updates from Helge Deller:\n \"Changes include:\n\n   - Fix boot of 32bit SMP kernel (initial kernel mapping was too small)\n\n   - Added hardened usercopy checks\n\n   - Drop bootmem and switch to memblock and NO_BOOTMEM implementation\n\n   - Drop the BROKEN_RODATA config option (and thus remove the relevant\n     code from the generic headers and files because parisc was the last\n     architecture which used this config option)\n\n   - Improve segfault reporting by printing human readable error strings\n\n   - Various smaller changes, e.g. dwarf debug support for assembly\n     code, update comments regarding copy_user_page_asm, switch to\n     kmalloc_array()\"\n\n* \u0027parisc-4.9-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/deller/parisc-linux:\n  parisc: Increase KERNEL_INITIAL_SIZE for 32-bit SMP kernels\n  parisc: Drop bootmem and switch to memblock\n  parisc: Add hardened usercopy feature\n  parisc: Add cfi_startproc and cfi_endproc to assembly code\n  parisc: Move hpmc stack into page aligned bss section\n  parisc: Fix self-detected CPU stall warnings on Mako machines\n  parisc: Report trap type as human readable string\n  parisc: Update comment regarding implementation of copy_user_page_asm\n  parisc: Use kmalloc_array() in add_system_map_addresses()\n  parisc: Check return value of smp_boot_one_cpu()\n  parisc: Drop BROKEN_RODATA config option\n"
    },
    {
      "commit": "2c34ff14bf1d03a705f5400888ecac5b6400e981",
      "tree": "df5ec14776f77122c35b867c3aa539d762caa791",
      "parents": [
        "07021b43597f506cc525d139ed1a94e79cf184f2",
        "9a2950fe9cb6882063181673846953d44f32cc3a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 20:48:45 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 20:48:45 2016 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32\n\nPull avr32 update from Hans-Christian Noren Egtvedt.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/egtvedt/linux-avr32:\n  avr32: migrate exception table users off module.h and onto extable.h\n"
    },
    {
      "commit": "07021b43597f506cc525d139ed1a94e79cf184f2",
      "tree": "888ab33ec69b397ae6f8a2c82d14197047ee827e",
      "parents": [
        "d1f5323370fceaed43a7ee38f4c7bfc7e70f28d0",
        "b7b7013cac55d794940bd9cb7b7c55c9dececac4"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 20:19:31 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 20:19:31 2016 -0700"
      },
      "message": "Merge tag \u0027powerpc-4.9-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux\n\nPull powerpc updates from Michael Ellerman:\n \"Highlights:\n   - Major rework of Book3S 64-bit exception vectors (Nicholas Piggin)\n   - Use gas sections for arranging exception vectors et. al.\n   - Large set of TM cleanups and selftests (Cyril Bur)\n   - Enable transactional memory (TM) lazily for userspace (Cyril Bur)\n   - Support for XZ compression in the zImage wrapper (Oliver\n     O\u0027Halloran)\n   - Add support for bpf constant blinding (Naveen N. Rao)\n   - Beginnings of upstream support for PA Semi Nemo motherboards\n     (Darren Stevens)\n\n  Fixes:\n   - Ensure .mem(init|exit).text are within _stext/_etext (Michael\n     Ellerman)\n   - xmon: Don\u0027t use ld on 32-bit (Michael Ellerman)\n   - vdso64: Use double word compare on pointers (Anton Blanchard)\n   - powerpc/nvram: Fix an incorrect partition merge (Pan Xinhui)\n   - powerpc: Fix usage of _PAGE_RO in hugepage (Christophe Leroy)\n   - powerpc/mm: Update FORCE_MAX_ZONEORDER range to allow hugetlb w/4K\n     (Aneesh Kumar K.V)\n   - Fix memory leak in queue_hotplug_event() error path (Andrew\n     Donnellan)\n   - Replay hypervisor maintenance interrupt first (Nicholas Piggin)\n\n  Various performance optimisations (Anton Blanchard):\n   - Align hot loops of memset() and backwards_memcpy()\n   - During context switch, check before setting mm_cpumask\n   - Remove static branch prediction in atomic{, 64}_add_unless\n   - Only disable HAVE_EFFICIENT_UNALIGNED_ACCESS on POWER7 little\n     endian\n   - Set default CPU type to POWER8 for little endian builds\n\n  Cleanups \u0026 features:\n   - Sparse fixes/cleanups (Daniel Axtens)\n   - Preserve CFAR value on SLB miss caused by access to bogus address\n     (Paul Mackerras)\n   - Radix MMU fixups for POWER9 (Aneesh Kumar K.V)\n   - Support for setting used_(vsr|vr|spe) in sigreturn path (for CRIU)\n     (Simon Guo)\n   - Optimise syscall entry for virtual, relocatable case (Nicholas\n     Piggin)\n   - Optimise MSR handling in exception handling (Nicholas Piggin)\n   - Support for kexec with Radix MMU (Benjamin Herrenschmidt)\n   - powernv EEH fixes (Russell Currey)\n   - Suprise PCI hotplug support for powernv (Gavin Shan)\n   - Endian/sparse fixes for powernv PCI (Gavin Shan)\n   - Defconfig updates (Anton Blanchard)\n   - KVM: PPC: Book3S HV: Migrate pinned pages out of CMA (Balbir Singh)\n   - cxl: Flush PSL cache before resetting the adapter (Frederic Barrat)\n   - cxl: replace loop with for_each_child_of_node(), remove unneeded\n     of_node_put() (Andrew Donnellan)\n   - Fix HV facility unavailable to use correct handler (Nicholas\n     Piggin)\n   - Remove unnecessary syscall trampoline (Nicholas Piggin)\n   - fadump: Fix build break when CONFIG_PROC_VMCORE\u003dn (Michael\n     Ellerman)\n   - Quieten EEH message when no adapters are found (Anton Blanchard)\n   - powernv: Add PHB register dump debugfs handle (Russell Currey)\n   - Use kprobe blacklist for exception handlers \u0026 asm functions\n     (Nicholas Piggin)\n   - Document the syscall ABI (Nicholas Piggin)\n   - MAINTAINERS: Update cxl maintainers (Michael Neuling)\n   - powerpc: Remove all usages of NO_IRQ (Michael Ellerman)\n\n  Minor cleanups:\n   - Andrew Donnellan, Christophe Leroy, Colin Ian King, Cyril Bur,\n     Frederic Barrat, Pan Xinhui, PrasannaKumar Muralidharan, Rui Teng,\n     Simon Guo\"\n\n* tag \u0027powerpc-4.9-1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (156 commits)\n  powerpc/bpf: Add support for bpf constant blinding\n  powerpc/bpf: Implement support for tail calls\n  powerpc/bpf: Introduce accessors for using the tmp local stack space\n  powerpc/fadump: Fix build break when CONFIG_PROC_VMCORE\u003dn\n  powerpc: tm: Enable transactional memory (TM) lazily for userspace\n  powerpc/tm: Add TM Unavailable Exception\n  powerpc: Remove do_load_up_transact_{fpu,altivec}\n  powerpc: tm: Rename transct_(*) to ck(\\1)_state\n  powerpc: tm: Always use fp_state and vr_state to store live registers\n  selftests/powerpc: Add checks for transactional VSXs in signal contexts\n  selftests/powerpc: Add checks for transactional VMXs in signal contexts\n  selftests/powerpc: Add checks for transactional FPUs in signal contexts\n  selftests/powerpc: Add checks for transactional GPRs in signal contexts\n  selftests/powerpc: Check that signals always get delivered\n  selftests/powerpc: Add TM tcheck helpers in C\n  selftests/powerpc: Allow tests to extend their kill timeout\n  selftests/powerpc: Introduce GPR asm helper header file\n  selftests/powerpc: Move VMX stack frame macros to header file\n  selftests/powerpc: Rework FPU stack placement macros and move to header file\n  selftests/powerpc: Check for VSX preservation across userspace preemption\n  ...\n"
    },
    {
      "commit": "05fd007e46296afb24d15c7d589d535e5a5b9d5c",
      "tree": "281299e8ad44d78a2215f54c5dda0272b0c277bf",
      "parents": [
        "81243eacfa400f5f7b89f4c2323d0de9982bb0fb"
      ],
      "author": {
        "name": "Paul Burton",
        "email": "paul.burton@imgtec.com",
        "time": "Fri Oct 07 17:03:15 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "console: don\u0027t prefer first registered if DT specifies stdout-path\n\nIf a device tree specifies a preferred device for kernel console output\nvia the stdout-path or linux,stdout-path chosen node properties or the\nstdout alias then the kernel ought to honor it \u0026 output the kernel\nconsole to that device.  As it stands, this isn\u0027t the case.  Whilst we\nparse the stdout-path properties \u0026 set an of_stdout variable from\nof_alias_scan(), and use that from of_console_check() to determine\nwhether to add a console device as a preferred console whilst\nregistering it, we also prefer the first registered console if no other\nhas been selected at the time of its registration.\n\nThis means that if a console other than the one the device tree selects\nvia stdout-path is registered first, we will switch to using it \u0026 when\nthe stdout-path console is later registered the call to\nadd_preferred_console() via of_console_check() is too late to do\nanything useful.  In practice this seems to mean that we switch to the\ndummy console device fairly early \u0026 see no further console output:\n\n    Console: colour dummy device 80x25\n    console [tty0] enabled\n    bootconsole [ns16550a0] disabled\n\nFix this by not automatically preferring the first registered console if\none is specified by the device tree.  This allows consoles to be\nregistered but not enabled, and once the driver for the console selected\nby stdout-path calls of_console_check() the driver will be added to the\nlist of preferred consoles before any other console has been enabled.\nWhen that console is then registered via register_console() it will be\nenabled as expected.\n\nLink: http://lkml.kernel.org/r/20160809151937.26118-1-paul.burton@imgtec.com\nSigned-off-by: Paul Burton \u003cpaul.burton@imgtec.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul Burton \u003cpaul.burton@imgtec.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Jiri Slaby \u003cjslaby@suse.cz\u003e\nCc: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nCc: Ivan Delalande \u003ccolona@arista.com\u003e\nCc: Thierry Reding \u003ctreding@nvidia.com\u003e\nCc: Borislav Petkov \u003cbp@suse.de\u003e\nCc: Jan Kara \u003cjack@suse.com\u003e\nCc: Petr Mladek \u003cpmladek@suse.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Rob Herring \u003crobh+dt@kernel.org\u003e\nCc: Frank Rowand \u003cfrowand.list@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": "81243eacfa400f5f7b89f4c2323d0de9982bb0fb",
      "tree": "9f0bc53a6569fdf1de3d30a61a80386b8bbd1c1f",
      "parents": [
        "954f74bf45268bcee0af21b6393c9c8acca7e075"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 07 17:03:12 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "cred: simpler, 1D supplementary groups\n\nCurrent supplementary groups code can massively overallocate memory and\nis implemented in a way so that access to individual gid is done via 2D\narray.\n\nIf number of gids is \u003c\u003d 32, memory allocation is more or less tolerable\n(140/148 bytes).  But if it is not, code allocates full page (!)\nregardless and, what\u0027s even more fun, doesn\u0027t reuse small 32-entry\narray.\n\n2D array means dependent shifts, loads and LEAs without possibility to\noptimize them (gid is never known at compile time).\n\nAll of the above is unnecessary.  Switch to the usual\ntrailing-zero-len-array scheme.  Memory is allocated with\nkmalloc/vmalloc() and only as much as needed.  Accesses become simpler\n(LEA 8(gi,idx,4) or even without displacement).\n\nMaximum number of gids is 65536 which translates to 256KB+8 bytes.  I\nthink kernel can handle such allocation.\n\nOn my usual desktop system with whole 9 (nine) aux groups, struct\ngroup_info shrinks from 148 bytes to 44 bytes, yay!\n\nNice side effects:\n\n - \"gi-\u003egid[i]\" is shorter than \"GROUP_AT(gi, i)\", less typing,\n\n - fix little mess in net/ipv4/ping.c\n   should have been using GROUP_AT macro but this point becomes moot,\n\n - aux group allocation is persistent and should be accounted as such.\n\nLink: http://lkml.kernel.org/r/20160817201927.GA2096@p183.telecom.by\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Vasily Kulikov \u003csegoon@openwall.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "954f74bf45268bcee0af21b6393c9c8acca7e075",
      "tree": "32f0210634c9c76910501aa10d2b8590e7a7f613",
      "parents": [
        "69474afb042337f5f189cd15de5eb49923ce20dc"
      ],
      "author": {
        "name": "Pavel Machek",
        "email": "pavel@ucw.cz",
        "time": "Fri Oct 07 17:03:09 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "CREDITS: update Pavel\u0027s information, add GPG key, remove snail mail address\n\nLink: http://lkml.kernel.org/r/20161003082312.GA20634@amd\nSigned-off-by: Pavel Machek \u003cpavel@ucw.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "69474afb042337f5f189cd15de5eb49923ce20dc",
      "tree": "f9fe112611bd9a7ed4ac93328e4b0ffd3cd80b26",
      "parents": [
        "218dd85887da3d7d08119de18e9d325fcf30d7a4"
      ],
      "author": {
        "name": "Johan Hovold",
        "email": "johan@kernel.org",
        "time": "Fri Oct 07 17:03:07 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "mailmap: add Johan Hovold\n\nAdd two entries to map to my primary address.\n\nLink: http://lkml.kernel.org/r/1473850348-19177-1-git-send-email-johan@kernel.org\nSigned-off-by: Johan Hovold \u003cjohan@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": "218dd85887da3d7d08119de18e9d325fcf30d7a4",
      "tree": "0753355904c0b5a1a174e5c43b2680e105bf9afb",
      "parents": [
        "ea036230f7c604e3c90fbf57f4643bd733034af9"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "jdelvare@suse.de",
        "time": "Fri Oct 07 17:03:04 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": ".gitattributes: set git diff driver for C source code files\n\nGit can be told to apply language-specific rules when generating diffs.\nEnable this for C source code files (*.c and *.h) so that function names\nare printed right.  Specifically, doing so prevents \"git diff\" from\nmistakenly considering unindented goto labels as function names.\n\nLink: http://lkml.kernel.org/r/20160907143403.1449324f@endymion\nSigned-off-by: Jean Delvare \u003cjdelvare@suse.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\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": "ea036230f7c604e3c90fbf57f4643bd733034af9",
      "tree": "861c0bd5d13df71e2b558208f9c153e6d2687b67",
      "parents": [
        "470164572dc2f9e76e078e08498dfe32ae2faa6f"
      ],
      "author": {
        "name": "Marcin Nowakowski",
        "email": "marcin.nowakowski@imgtec.com",
        "time": "Fri Oct 07 17:03:01 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "uprobes: remove function declarations from arch/{mips,s390}\n\nThe declarations of arch-specific functions have been moved to a common\nheader in commit 3820b4d2789f (\u0027uprobes: Move function declarations out\nof arch\u0027), but MIPS and S390 has added them to their own trees later.\nRemove the unnecessary duplicates.\n\nLink: http://lkml.kernel.org/r/1472804384-17830-1-git-send-email-marcin.nowakowski@imgtec.com\nSigned-off-by: Marcin Nowakowski \u003cmarcin.nowakowski@imgtec.com\u003e\nAcked-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "470164572dc2f9e76e078e08498dfe32ae2faa6f",
      "tree": "fdfed4d93a58eb0647f01a57ad83df6863effad4",
      "parents": [
        "6727ad9e206cc08b80d8000a4d67f8417e53539d"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Oct 07 17:02:58 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "spelling.txt: \"modeled\" is spelt correctly\n\nNo need to correct the correct.\n\nLink: http://lkml.kernel.org/r/1472490791.3425.38.camel@perches.com\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6727ad9e206cc08b80d8000a4d67f8417e53539d",
      "tree": "3f9ca202417b08918547d5db776d041fa4ee61e3",
      "parents": [
        "511f8389454e55ece5115dc3bc84a0947788ff4f"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@mellanox.com",
        "time": "Fri Oct 07 17:02:55 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "nmi_backtrace: generate one-line reports for idle cpus\n\nWhen doing an nmi backtrace of many cores, most of which are idle, the\noutput is a little overwhelming and very uninformative.  Suppress\nmessages for cpus that are idling when they are interrupted and just\nemit one line, \"NMI backtrace for N skipped: idling at pc 0xNNN\".\n\nWe do this by grouping all the cpuidle code together into a new\n.cpuidle.text section, and then checking the address of the interrupted\nPC to see if it lies within that section.\n\nThis commit suitably tags x86 and tile idle routines, and only adds in\nthe minimal framework for other architectures.\n\nLink: http://lkml.kernel.org/r/1472487169-14923-5-git-send-email-cmetcalf@mellanox.com\nSigned-off-by: Chris Metcalf \u003ccmetcalf@mellanox.com\u003e\nAcked-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nTested-by: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nTested-by: Daniel Thompson \u003cdaniel.thompson@linaro.org\u003e [arm]\nTested-by: Petr Mladek \u003cpmladek@suse.com\u003e\nCc: Aaron Tomlin \u003catomlin@redhat.com\u003e\nCc: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@rjwysocki.net\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "511f8389454e55ece5115dc3bc84a0947788ff4f",
      "tree": "dfc902d595e5f55141f84a29a7b11c750b09c615",
      "parents": [
        "677664895278267a80bda0e3b26821d60cdbebf5"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@mellanox.com",
        "time": "Fri Oct 07 17:02:52 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "arch/tile: adopt the new nmi_backtrace framework\n\nPreviously tile was rolling its own method of capturing backtrace data\nin the NMI handlers, but it was relying on running printk() from the NMI\nhandler, which is not always safe.  So adopt the nmi_backtrace model\n(with the new cpumask extension) instead.\n\nSo we can call the nmi_backtrace code directly from the nmi handler,\nmove the nmi_enter()/exit() into the top-level tile NMI handler.\n\nThe semantics of the routine change slightly since it is now synchronous\nwith the remote cores completing the backtraces.  Previously it was\nasynchronous, but with protection to avoid starting a new remote\nbacktrace if the old one was still in progress.\n\nLink: http://lkml.kernel.org/r/1472487169-14923-4-git-send-email-cmetcalf@mellanox.com\nSigned-off-by: Chris Metcalf \u003ccmetcalf@mellanox.com\u003e\nCc: Daniel Thompson \u003cdaniel.thompson@linaro.org\u003e [arm]\nCc: Petr Mladek \u003cpmladek@suse.com\u003e\nCc: Aaron Tomlin \u003catomlin@redhat.com\u003e\nCc: Peter Zijlstra (Intel) \u003cpeterz@infradead.org\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@rjwysocki.net\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "677664895278267a80bda0e3b26821d60cdbebf5",
      "tree": "6828a9d2fa2f84ddc47dcd2f7ad6a5b249b400e9",
      "parents": [
        "9a01c3ed5cdb35d9004eb92510ee6ea11b4a5f16"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@mellanox.com",
        "time": "Fri Oct 07 17:02:49 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "nmi_backtrace: do a local dump_stack() instead of a self-NMI\n\nCurrently on arm there is code that checks whether it should call\ndump_stack() explicitly, to avoid trying to raise an NMI when the\ncurrent context is not preemptible by the backtrace IPI.  Similarly, the\nforthcoming arch/tile support uses an IPI mechanism that does not\nsupport generating an NMI to self.\n\nAccordingly, move the code that guards this case into the generic\nmechanism, and invoke it unconditionally whenever we want a backtrace of\nthe current cpu.  It seems plausible that in all cases, dump_stack()\nwill generate better information than generating a stack from the NMI\nhandler.  The register state will be missing, but that state is likely\nnot particularly helpful in any case.\n\nOr, if we think it is helpful, we should be capturing and emitting the\ncurrent register state in all cases when regs \u003d\u003d NULL is passed to\nnmi_cpu_backtrace().\n\nLink: http://lkml.kernel.org/r/1472487169-14923-3-git-send-email-cmetcalf@mellanox.com\nSigned-off-by: Chris Metcalf \u003ccmetcalf@mellanox.com\u003e\nTested-by: Daniel Thompson \u003cdaniel.thompson@linaro.org\u003e [arm]\nReviewed-by: Petr Mladek \u003cpmladek@suse.com\u003e\nAcked-by: Aaron Tomlin \u003catomlin@redhat.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@rjwysocki.net\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a01c3ed5cdb35d9004eb92510ee6ea11b4a5f16",
      "tree": "0a1cf51c3965ed0c820d33d5d7ed636dd5a968a0",
      "parents": [
        "589a9785ee3a7cb85f1dedc3dad1c9754c691880"
      ],
      "author": {
        "name": "Chris Metcalf",
        "email": "cmetcalf@mellanox.com",
        "time": "Fri Oct 07 17:02:45 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "nmi_backtrace: add more trigger_*_cpu_backtrace() methods\n\nPatch series \"improvements to the nmi_backtrace code\" v9.\n\nThis patch series modifies the trigger_xxx_backtrace() NMI-based remote\nbacktracing code to make it more flexible, and makes a few small\nimprovements along the way.\n\nThe motivation comes from the task isolation code, where there are\nscenarios where we want to be able to diagnose a case where some cpu is\nabout to interrupt a task-isolated cpu.  It can be helpful to see both\nwhere the interrupting cpu is, and also an approximation of where the\ncpu that is being interrupted is.  The nmi_backtrace framework allows us\nto discover the stack of the interrupted cpu.\n\nI\u0027ve tested that the change works as desired on tile, and build-tested\nx86, arm, mips, and sparc64.  For x86 I confirmed that the generic\ncpuidle stuff as well as the architecture-specific routines are in the\nnew cpuidle section.  For arm, mips, and sparc I just build-tested it\nand made sure the generic cpuidle routines were in the new cpuidle\nsection, but I didn\u0027t attempt to figure out which the platform-specific\nidle routines might be.  That might be more usefully done by someone\nwith platform experience in follow-up patches.\n\nThis patch (of 4):\n\nCurrently you can only request a backtrace of either all cpus, or all\ncpus but yourself.  It can also be helpful to request a remote backtrace\nof a single cpu, and since we want that, the logical extension is to\nsupport a cpumask as the underlying primitive.\n\nThis change modifies the existing lib/nmi_backtrace.c code to take a\ncpumask as its basic primitive, and modifies the linux/nmi.h code to use\nthe new \"cpumask\" method instead.\n\nThe existing clients of nmi_backtrace (arm and x86) are converted to\nusing the new cpumask approach in this change.\n\nThe other users of the backtracing API (sparc64 and mips) are converted\nto use the cpumask approach rather than the all/allbutself approach.\nThe mips code ignored the \"include_self\" boolean but with this change it\nwill now also dump a local backtrace if requested.\n\nLink: http://lkml.kernel.org/r/1472487169-14923-2-git-send-email-cmetcalf@mellanox.com\nSigned-off-by: Chris Metcalf \u003ccmetcalf@mellanox.com\u003e\nTested-by: Daniel Thompson \u003cdaniel.thompson@linaro.org\u003e [arm]\nReviewed-by: Aaron Tomlin \u003catomlin@redhat.com\u003e\nReviewed-by: Petr Mladek \u003cpmladek@suse.com\u003e\nCc: \"Rafael J. Wysocki\" \u003crjw@rjwysocki.net\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "589a9785ee3a7cb85f1dedc3dad1c9754c691880",
      "tree": "2a58cb3d8c4c0e1c9e025750dd4801f99352d7f1",
      "parents": [
        "53aeee7a86620b4dca81f6b807b37f36e7f99b09"
      ],
      "author": {
        "name": "Johannes Berg",
        "email": "johannes.berg@intel.com",
        "time": "Fri Oct 07 17:02:42 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "min/max: remove sparse warnings when they\u0027re nested\n\nCurrently, when min/max are nested within themselves, sparse will warn:\n\n    warning: symbol \u0027_min1\u0027 shadows an earlier one\n    originally declared here\n    warning: symbol \u0027_min1\u0027 shadows an earlier one\n    originally declared here\n    warning: symbol \u0027_min2\u0027 shadows an earlier one\n    originally declared here\n\nThis also immediately happens when min3() or max3() are used.\n\nSince sparse implements __COUNTER__, we can use __UNIQUE_ID() to\ngenerate unique variable names, avoiding this.\n\nLink: http://lkml.kernel.org/r/1471519773-29882-1-git-send-email-johannes@sipsolutions.net\nSigned-off-by: Johannes Berg \u003cjohannes.berg@intel.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "53aeee7a86620b4dca81f6b807b37f36e7f99b09",
      "tree": "efb5845f22a175eb91323c968605636326b49545",
      "parents": [
        "855af072b6c40aeb266f4dc98fd9a6a49edf22af"
      ],
      "author": {
        "name": "Robert Ho",
        "email": "robert.hu@intel.com",
        "time": "Fri Oct 07 17:02:39 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "Documentation/filesystems/proc.txt: add more description for maps/smaps\n\nAdd some more description on the limitations for smaps/maps readings, as\nwell as some guaruntees we can make.\n\nLink: http://lkml.kernel.org/r/1475296958-27652-2-git-send-email-robert.hu@intel.com\nSigned-off-by: Robert Ho \u003crobert.hu@intel.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Xiao Guangrong \u003cguangrong.xiao@linux.intel.com\u003e\nCc: Robert Hu \u003crobert.hu@intel.com\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Gleb Natapov \u003cgleb@kernel.org\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nCc: Ross Zwisler \u003cross.zwisler@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "855af072b6c40aeb266f4dc98fd9a6a49edf22af",
      "tree": "23c097da09171f9290450ccf30a68606f86e7db5",
      "parents": [
        "4b2bd5fec007a4fd3fc82474b9199af25013de4c"
      ],
      "author": {
        "name": "Robert Ho",
        "email": "robert.hu@intel.com",
        "time": "Fri Oct 07 17:02:36 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "mm, proc: fix region lost in /proc/self/smaps\n\nRecently, Redhat reported that nvml test suite failed on QEMU/KVM,\nmore detailed info please refer to:\n\n   https://bugzilla.redhat.com/show_bug.cgi?id\u003d1365721\n\nActually, this bug is not only for NVDIMM/DAX but also for any other\nfile systems.  This simple test case abstracted from nvml can easily\nreproduce this bug in common environment:\n\n-------------------------- testcase.c -----------------------------\n\nint\nis_pmem_proc(const void *addr, size_t len)\n{\n        const char *caddr \u003d addr;\n\n        FILE *fp;\n        if ((fp \u003d fopen(\"/proc/self/smaps\", \"r\")) \u003d\u003d NULL) {\n                printf(\"!/proc/self/smaps\");\n                return 0;\n        }\n\n        int retval \u003d 0;         /* assume false until proven otherwise */\n        char line[PROCMAXLEN];  /* for fgets() */\n        char *lo \u003d NULL;        /* beginning of current range in smaps file */\n        char *hi \u003d NULL;        /* end of current range in smaps file */\n        int needmm \u003d 0;         /* looking for mm flag for current range */\n        while (fgets(line, PROCMAXLEN, fp) !\u003d NULL) {\n                static const char vmflags[] \u003d \"VmFlags:\";\n                static const char mm[] \u003d \" wr\";\n\n                /* check for range line */\n                if (sscanf(line, \"%p-%p\", \u0026lo, \u0026hi) \u003d\u003d 2) {\n                        if (needmm) {\n                                /* last range matched, but no mm flag found */\n                                printf(\"never found mm flag.\\n\");\n                                break;\n                        } else if (caddr \u003c lo) {\n                                /* never found the range for caddr */\n                                printf(\"#######no match for addr %p.\\n\", caddr);\n                                break;\n                        } else if (caddr \u003c hi) {\n                                /* start address is in this range */\n                                size_t rangelen \u003d (size_t)(hi - caddr);\n\n                                /* remember that matching has started */\n                                needmm \u003d 1;\n\n                                /* calculate remaining range to search for */\n                                if (len \u003e rangelen) {\n                                        len -\u003d rangelen;\n                                        caddr +\u003d rangelen;\n                                        printf(\"matched %zu bytes in range \"\n                                                \"%p-%p, %zu left over.\\n\",\n                                                        rangelen, lo, hi, len);\n                                } else {\n                                        len \u003d 0;\n                                        printf(\"matched all bytes in range \"\n                                                        \"%p-%p.\\n\", lo, hi);\n                                }\n                        }\n                } else if (needmm \u0026\u0026 strncmp(line, vmflags,\n                                        sizeof(vmflags) - 1) \u003d\u003d 0) {\n                        if (strstr(\u0026line[sizeof(vmflags) - 1], mm) !\u003d NULL) {\n                                printf(\"mm flag found.\\n\");\n                                if (len \u003d\u003d 0) {\n                                        /* entire range matched */\n                                        retval \u003d 1;\n                                        break;\n                                }\n                                needmm \u003d 0;     /* saw what was needed */\n                        } else {\n                                /* mm flag not set for some or all of range */\n                                printf(\"range has no mm flag.\\n\");\n                                break;\n                        }\n                }\n        }\n\n        fclose(fp);\n\n        printf(\"returning %d.\\n\", retval);\n        return retval;\n}\n\nvoid *Addr;\nsize_t Size;\n\n/*\n * worker -- the work each thread performs\n */\nstatic void *\nworker(void *arg)\n{\n        int *ret \u003d (int *)arg;\n        *ret \u003d  is_pmem_proc(Addr, Size);\n        return NULL;\n}\n\nint main(int argc, char *argv[])\n{\n        if (argc \u003c  2 || argc \u003e 3) {\n                printf(\"usage: %s file [env].\\n\", argv[0]);\n                return -1;\n        }\n\n        int fd \u003d open(argv[1], O_RDWR);\n\n        struct stat stbuf;\n        fstat(fd, \u0026stbuf);\n\n        Size \u003d stbuf.st_size;\n        Addr \u003d mmap(0, stbuf.st_size, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0);\n\n        close(fd);\n\n        pthread_t threads[NTHREAD];\n        int ret[NTHREAD];\n\n        /* kick off NTHREAD threads */\n        for (int i \u003d 0; i \u003c NTHREAD; i++)\n                pthread_create(\u0026threads[i], NULL, worker, \u0026ret[i]);\n\n        /* wait for all the threads to complete */\n        for (int i \u003d 0; i \u003c NTHREAD; i++)\n                pthread_join(threads[i], NULL);\n\n        /* verify that all the threads return the same value */\n        for (int i \u003d 1; i \u003c NTHREAD; i++) {\n                if (ret[0] !\u003d ret[i]) {\n                        printf(\"Error i %d ret[0] \u003d %d ret[i] \u003d %d.\\n\", i,\n                                ret[0], ret[i]);\n                }\n        }\n\n        printf(\"%d\", ret[0]);\n        return 0;\n}\n\nIt failed as some threads can not find the memory region in\n\"/proc/self/smaps\" which is allocated in the main process\n\nIt is caused by proc fs which uses \u0027file-\u003eversion\u0027 to indicate the VMA that\nis the last one has already been handled by read() system call. When the\nnext read() issues, it uses the \u0027version\u0027 to find the VMA, then the next\nVMA is what we want to handle, the related code is as follows:\n\n        if (last_addr) {\n                vma \u003d find_vma(mm, last_addr);\n                if (vma \u0026\u0026 (vma \u003d m_next_vma(priv, vma)))\n                        return vma;\n        }\n\nHowever, VMA will be lost if the last VMA is gone, e.g:\n\nThe process VMA list is A-\u003eB-\u003eC-\u003eD\n\nCPU 0                                  CPU 1\nread() system call\n   handle VMA B\n   version \u003d B\nreturn to userspace\n\n                                   unmap VMA B\n\nissue read() again to continue to get\nthe region info\n   find_vma(version) will get VMA C\n   m_next_vma(C) will get VMA D\n   handle D\n   !!! VMA C is lost !!!\n\nIn order to fix this bug, we make \u0027file-\u003eversion\u0027 indicate the end address\nof the current VMA.  m_start will then look up a vma which with vma_start\n\u003c last_vm_end and moves on to the next vma if we found the same or an\noverlapping vma.  This will guarantee that we will not miss an exclusive\nvma but we can still miss one if the previous vma was shrunk.  This is\nacceptable because guaranteeing \"never miss a vma\" is simply not feasible.\nUser has to cope with some inconsistencies if the file is not read in one\ngo.\n\n[mhocko@suse.com: changelog fixes]\nLink: http://lkml.kernel.org/r/1475296958-27652-1-git-send-email-robert.hu@intel.com\nAcked-by: Dave Hansen \u003cdave.hansen@intel.com\u003e\nSigned-off-by: Xiao Guangrong \u003cguangrong.xiao@linux.intel.com\u003e\nSigned-off-by: Robert Hu \u003crobert.hu@intel.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\nCc: Dan Williams \u003cdan.j.williams@intel.com\u003e\nCc: Gleb Natapov \u003cgleb@kernel.org\u003e\nCc: Marcelo Tosatti \u003cmtosatti@redhat.com\u003e\nCc: Stefan Hajnoczi \u003cstefanha@redhat.com\u003e\nCc: Ross Zwisler \u003cross.zwisler@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "4b2bd5fec007a4fd3fc82474b9199af25013de4c",
      "tree": "6cd4e88c476f3b7940df7e09e01c0a5355c2c886",
      "parents": [
        "904763e1fb5eebf8249ec41a2019e5e32246df2f"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Oct 07 17:02:33 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "proc: fix timerslack_ns CAP_SYS_NICE check when adjusting self\n\nIn changing from checking ptrace_may_access(p, PTRACE_MODE_ATTACH_FSCREDS)\nto capable(CAP_SYS_NICE), I missed that ptrace_my_access succeeds when p\n\u003d\u003d current, but the CAP_SYS_NICE doesn\u0027t.\n\nThus while the previous commit was intended to loosen the needed\nprivileges to modify a processes timerslack, it needlessly restricted a\ntask modifying its own timerslack via the proc/\u003ctid\u003e/timerslack_ns\n(which is permitted also via the PR_SET_TIMERSLACK method).\n\nThis patch corrects this by checking if p \u003d\u003d current before checking the\nCAP_SYS_NICE value.\n\nThis patch applies on top of my two previous patches currently in -mm\n\nLink: http://lkml.kernel.org/r/1471906870-28624-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: \"Serge E. Hallyn\" \u003cserge@hallyn.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Oren Laadan \u003corenl@cellrox.com\u003e\nCc: Ruchi Kandoi \u003ckandoiruchi@google.com\u003e\nCc: Rom Lemarchand \u003cromlem@android.com\u003e\nCc: Todd Kjos \u003ctkjos@google.com\u003e\nCc: Colin Cross \u003cccross@android.com\u003e\nCc: Nick Kralevich \u003cnnk@google.com\u003e\nCc: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\nCc: Elliott Hughes \u003cenh@google.com\u003e\nCc: Android Kernel Team \u003ckernel-team@android.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "904763e1fb5eebf8249ec41a2019e5e32246df2f",
      "tree": "c74767dca5a638371a2cb3121a207ed7137b7b2a",
      "parents": [
        "7abbaf94049914f074306d960b0f968ffe52e59f"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Oct 07 17:02:29 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "proc: add LSM hook checks to /proc/\u003ctid\u003e/timerslack_ns\n\nAs requested, this patch checks the existing LSM hooks\ntask_getscheduler/task_setscheduler when reading or modifying the task\u0027s\ntimerslack value.\n\nPrevious versions added new get/settimerslack LSM hooks, but since they\nchecked the same PROCESS__SET/GETSCHED values as existing hooks, it was\nsuggested we just use the existing ones.\n\nLink: http://lkml.kernel.org/r/1469132667-17377-2-git-send-email-john.stultz@linaro.org\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: \"Serge E. Hallyn\" \u003cserge@hallyn.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Oren Laadan \u003corenl@cellrox.com\u003e\nCc: Ruchi Kandoi \u003ckandoiruchi@google.com\u003e\nCc: Rom Lemarchand \u003cromlem@android.com\u003e\nCc: Todd Kjos \u003ctkjos@google.com\u003e\nCc: Colin Cross \u003cccross@android.com\u003e\nCc: Nick Kralevich \u003cnnk@google.com\u003e\nCc: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\nCc: Elliott Hughes \u003cenh@google.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nCc: Android Kernel Team \u003ckernel-team@android.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7abbaf94049914f074306d960b0f968ffe52e59f",
      "tree": "8b0166be20e0400467cd7441783ba7b34b32985b",
      "parents": [
        "e16e2d8e14a14bd87df8482c637dde8f760a8d5f"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Oct 07 17:02:26 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "proc: relax /proc/\u003ctid\u003e/timerslack_ns capability requirements\n\nWhen an interface to allow a task to change another tasks timerslack was\nfirst proposed, it was suggested that something greater then\nCAP_SYS_NICE would be needed, as a task could be delayed further then\nwhat normally could be done with nice adjustments.\n\nSo CAP_SYS_PTRACE was adopted instead for what became the\n/proc/\u003ctid\u003e/timerslack_ns interface.  However, for Android (where this\nfeature originates), giving the system_server CAP_SYS_PTRACE would allow\nit to observe and modify all tasks memory.  This is considered too high\na privilege level for only needing to change the timerslack.\n\nAfter some discussion, it was realized that a CAP_SYS_NICE process can\nset a task as SCHED_FIFO, so they could fork some spinning processes and\nset them all SCHED_FIFO 99, in effect delaying all other tasks for an\ninfinite amount of time.\n\nSo as a CAP_SYS_NICE task can already cause trouble for other tasks,\nusing it as a required capability for accessing and modifying\n/proc/\u003ctid\u003e/timerslack_ns seems sufficient.\n\nThus, this patch loosens the capability requirements to CAP_SYS_NICE and\nremoves CAP_SYS_PTRACE, simplifying some of the code flow as well.\n\nThis is technically an ABI change, but as the feature just landed in\n4.6, I suspect no one is yet using it.\n\nLink: http://lkml.kernel.org/r/1469132667-17377-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nReviewed-by: Nick Kralevich \u003cnnk@google.com\u003e\nAcked-by: Serge Hallyn \u003cserge@hallyn.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: \"Serge E. Hallyn\" \u003cserge@hallyn.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nCc: Oren Laadan \u003corenl@cellrox.com\u003e\nCc: Ruchi Kandoi \u003ckandoiruchi@google.com\u003e\nCc: Rom Lemarchand \u003cromlem@android.com\u003e\nCc: Todd Kjos \u003ctkjos@google.com\u003e\nCc: Colin Cross \u003cccross@android.com\u003e\nCc: Nick Kralevich \u003cnnk@google.com\u003e\nCc: Dmitry Shmidt \u003cdimitrysh@google.com\u003e\nCc: Elliott Hughes \u003cenh@google.com\u003e\nCc: Android Kernel Team \u003ckernel-team@android.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e16e2d8e14a14bd87df8482c637dde8f760a8d5f",
      "tree": "43463e9f8328779001b89cac45c147525f6afc5c",
      "parents": [
        "75ba1d07fd6a494851db5132612944a9d4773f9c"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Oct 07 17:02:23 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "meminfo: break apart a very long seq_printf with #ifdefs\n\nUse a specific routine to emit most lines so that the code is easier to\nread and maintain.\n\nakpm:\n   text    data     bss     dec     hex filename\n   2976       8       0    2984     ba8 fs/proc/meminfo.o before\n   2669       8       0    2677     a75 fs/proc/meminfo.o after\n\nLink: http://lkml.kernel.org/r/8fce7fdef2ba081a4ef531594e97da8a9feebb58.1470810406.git.joe@perches.com\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "75ba1d07fd6a494851db5132612944a9d4773f9c",
      "tree": "7a4d91412f3beefe884b3ef8cac536d304d66fa9",
      "parents": [
        "f7a5f132b447cb6301ab3f0b0468a63db29e41f5"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Fri Oct 07 17:02:20 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "seq/proc: modify seq_put_decimal_[u]ll to take a const char *, not char\n\nAllow some seq_puts removals by taking a string instead of a single\nchar.\n\n[akpm@linux-foundation.org: update vmstat_show(), per Joe]\nLink: http://lkml.kernel.org/r/667e1cf3d436de91a5698170a1e98d882905e956.1470704995.git.joe@perches.com\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f7a5f132b447cb6301ab3f0b0468a63db29e41f5",
      "tree": "a164515c5507cd32f548bd8f9ab559dee6a508fa",
      "parents": [
        "68ba0326b4e14988f9e0c24a6e12a85cf2acd1ca"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 07 17:02:17 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "proc: faster /proc/*/status\n\ntop(1) opens the following files for every PID:\n\n\t/proc/*/stat\n\t/proc/*/statm\n\t/proc/*/status\n\nThis patch switches /proc/*/status away from seq_printf().\nThe result is 13.5% speedup.\n\nBenchmark is open(\"/proc/self/status\")+read+close 1.000.000 million times.\n\n\t\t\t\tBEFORE\n$ perf stat -r 10 taskset -c 3 ./proc-self-status\n\n Performance counter stats for \u0027taskset -c 3 ./proc-self-status\u0027 (10 runs):\n\n      10748.474301      task-clock (msec)         #    0.954 CPUs utilized            ( +-  0.91% )\n                12      context-switches          #    0.001 K/sec                    ( +-  1.09% )\n                 1      cpu-migrations            #    0.000 K/sec\n               104      page-faults               #    0.010 K/sec                    ( +-  0.45% )\n    37,424,127,876      cycles                    #    3.482 GHz                      ( +-  0.04% )\n     8,453,010,029      stalled-cycles-frontend   #   22.59% frontend cycles idle     ( +-  0.12% )\n     3,747,609,427      stalled-cycles-backend    #  10.01% backend cycles idle       ( +-  0.68% )\n    65,632,764,147      instructions              #    1.75  insn per cycle\n                                                  #    0.13  stalled cycles per insn  ( +-  0.00% )\n    13,981,324,775      branches                  # 1300.773 M/sec                    ( +-  0.00% )\n       138,967,110      branch-misses             #    0.99% of all branches          ( +-  0.18% )\n\n      11.263885428 seconds time elapsed                                          ( +-  0.04% )\n      ^^^^^^^^^^^^\n\n\t\t\t\tAFTER\n$ perf stat -r 10 taskset -c 3 ./proc-self-status\n\n Performance counter stats for \u0027taskset -c 3 ./proc-self-status\u0027 (10 runs):\n\n       9010.521776      task-clock (msec)         #    0.925 CPUs utilized            ( +-  1.54% )\n                11      context-switches          #    0.001 K/sec                    ( +-  1.54% )\n                 1      cpu-migrations            #    0.000 K/sec                    ( +- 11.11% )\n               103      page-faults               #    0.011 K/sec                    ( +-  0.60% )\n    32,352,310,603      cycles                    #    3.591 GHz                      ( +-  0.07% )\n     7,849,199,578      stalled-cycles-frontend   #   24.26% frontend cycles idle     ( +-  0.27% )\n     3,269,738,842      stalled-cycles-backend    #  10.11% backend cycles idle       ( +-  0.73% )\n    56,012,163,567      instructions              #    1.73  insn per cycle\n                                                  #    0.14  stalled cycles per insn  ( +-  0.00% )\n    11,735,778,795      branches                  # 1302.453 M/sec                    ( +-  0.00% )\n        98,084,459      branch-misses             #    0.84% of all branches          ( +-  0.28% )\n\n       9.741247736 seconds time elapsed                                          ( +-  0.07% )\n       ^^^^^^^^^^^\n\nLink: http://lkml.kernel.org/r/20160806125608.GB1187@p183.telecom.by\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "68ba0326b4e14988f9e0c24a6e12a85cf2acd1ca",
      "tree": "fbe44b385222b58c1c563f43c2e87bcc0d36416e",
      "parents": [
        "51a021244b9d579be6b4f8c15c493a76deb2a79e"
      ],
      "author": {
        "name": "Alexey Dobriyan",
        "email": "adobriyan@gmail.com",
        "time": "Fri Oct 07 17:02:14 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "proc: much faster /proc/vmstat\n\nEvery current KDE system has process named ksysguardd polling files\nbelow once in several seconds:\n\n\t$ strace -e trace\u003dopen -p $(pidof ksysguardd)\n\tProcess 1812 attached\n\topen(\"/etc/mtab\", O_RDONLY|O_CLOEXEC)   \u003d 8\n\topen(\"/etc/mtab\", O_RDONLY|O_CLOEXEC)   \u003d 8\n\topen(\"/proc/net/dev\", O_RDONLY)         \u003d 8\n\topen(\"/proc/net/wireless\", O_RDONLY)    \u003d -1 ENOENT (No such file or directory)\n\topen(\"/proc/stat\", O_RDONLY)            \u003d 8\n\topen(\"/proc/vmstat\", O_RDONLY)          \u003d 8\n\nHell knows what it is doing but speed up reading /proc/vmstat by 33%!\n\nBenchmark is open+read+close 1.000.000 times.\n\n\t\t\tBEFORE\n$ perf stat -r 10 taskset -c 3 ./proc-vmstat\n\n Performance counter stats for \u0027taskset -c 3 ./proc-vmstat\u0027 (10 runs):\n\n      13146.768464      task-clock (msec)         #    0.960 CPUs utilized            ( +-  0.60% )\n                15      context-switches          #    0.001 K/sec                    ( +-  1.41% )\n                 1      cpu-migrations            #    0.000 K/sec                    ( +- 11.11% )\n               104      page-faults               #    0.008 K/sec                    ( +-  0.57% )\n    45,489,799,349      cycles                    #    3.460 GHz                      ( +-  0.03% )\n     9,970,175,743      stalled-cycles-frontend   #   21.92% frontend cycles idle     ( +-  0.10% )\n     2,800,298,015      stalled-cycles-backend    #   6.16% backend cycles idle       ( +-  0.32% )\n    79,241,190,850      instructions              #    1.74  insn per cycle\n                                                  #    0.13  stalled cycles per insn  ( +-  0.00% )\n    17,616,096,146      branches                  # 1339.956 M/sec                    ( +-  0.00% )\n       176,106,232      branch-misses             #    1.00% of all branches          ( +-  0.18% )\n\n      13.691078109 seconds time elapsed                                          ( +-  0.03% )\n      ^^^^^^^^^^^^\n\n\t\t\tAFTER\n$ perf stat -r 10 taskset -c 3 ./proc-vmstat\n\n Performance counter stats for \u0027taskset -c 3 ./proc-vmstat\u0027 (10 runs):\n\n       8688.353749      task-clock (msec)         #    0.950 CPUs utilized            ( +-  1.25% )\n                10      context-switches          #    0.001 K/sec                    ( +-  2.13% )\n                 1      cpu-migrations            #    0.000 K/sec\n               104      page-faults               #    0.012 K/sec                    ( +-  0.56% )\n    30,384,010,730      cycles                    #    3.497 GHz                      ( +-  0.07% )\n    12,296,259,407      stalled-cycles-frontend   #   40.47% frontend cycles idle     ( +-  0.13% )\n     3,370,668,651      stalled-cycles-backend    #  11.09% backend cycles idle       ( +-  0.69% )\n    28,969,052,879      instructions              #    0.95  insn per cycle\n                                                  #    0.42  stalled cycles per insn  ( +-  0.01% )\n     6,308,245,891      branches                  #  726.058 M/sec                    ( +-  0.00% )\n       214,685,502      branch-misses             #    3.40% of all branches          ( +-  0.26% )\n\n       9.146081052 seconds time elapsed                                          ( +-  0.07% )\n       ^^^^^^^^^^^\n\nvsnprintf() is slow because:\n\n1. format_decode() is busy looking for format specifier: 2 branches\n   per character (not in this case, but in others)\n\n2. approximately million branches while parsing format mini language\n   and everywhere\n\n3.  just look at what string() does /proc/vmstat is good case because\n   most of its content are strings\n\nLink: http://lkml.kernel.org/r/20160806125455.GA1187@p183.telecom.by\nSigned-off-by: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Andi Kleen \u003candi@firstfloor.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "51a021244b9d579be6b4f8c15c493a76deb2a79e",
      "tree": "85fb43913c3f44a3e54d771f003ac5307150e814",
      "parents": [
        "445ed0a0eac50d2a76441278a084554a4b9dcfda"
      ],
      "author": {
        "name": "Vineet Gupta",
        "email": "Vineet.Gupta1@synopsys.com",
        "time": "Fri Oct 07 17:02:10 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "atomic64: no need for CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE\n\nThis came to light when implementing native 64-bit atomics for ARCv2.\n\nThe atomic64 self-test code uses CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE\nto check whether atomic64_dec_if_positive() is available.  It seems it\nwas needed when not every arch defined it.  However as of current code\nthe Kconfig option seems needless\n\n - for CONFIG_GENERIC_ATOMIC64 it is auto-enabled in lib/Kconfig and a\n   generic definition of API is present lib/atomic64.c\n - arches with native 64-bit atomics select it in arch/*/Kconfig and\n   define the API in their headers\n\nSo I see no point in keeping the Kconfig option\n\nCompile tested for:\n - blackfin (CONFIG_GENERIC_ATOMIC64)\n - x86 (!CONFIG_GENERIC_ATOMIC64)\n - ia64\n\nLink: http://lkml.kernel.org/r/1473703083-8625-3-git-send-email-vgupta@synopsys.com\nSigned-off-by: Vineet Gupta \u003cvgupta@synopsys.com\u003e\nCc: Richard Henderson \u003crth@twiddle.net\u003e\nCc: Ivan Kokshaysky \u003cink@jurassic.park.msu.ru\u003e\nCc: Matt Turner \u003cmattst88@gmail.com\u003e\nCc: Russell King \u003clinux@armlinux.org.uk\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: \"James E.J. Bottomley\" \u003cjejb@parisc-linux.org\u003e\nCc: Helge Deller \u003cdeller@gmx.de\u003e\nCc: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Michael Ellerman \u003cmpe@ellerman.id.au\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@mellanox.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: Vineet Gupta \u003cvgupta@synopsys.com\u003e\nCc: Zhaoxiu Zeng \u003czhaoxiu.zeng@gmail.com\u003e\nCc: Linus Walleij \u003clinus.walleij@linaro.org\u003e\nCc: Alexander Potapenko \u003cglider@google.com\u003e\nCc: Andrey Ryabinin \u003caryabinin@virtuozzo.com\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Ming Lin \u003cming.l@ssi.samsung.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Borislav Petkov \u003cbp@suse.de\u003e\nCc: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Boqun Feng \u003cboqun.feng@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": "445ed0a0eac50d2a76441278a084554a4b9dcfda",
      "tree": "f3a8477d8dbe38e31a9297ca0d3a20b925b82bf8",
      "parents": [
        "1061b0d21e16550e7d7893a5deee2e49ea3990ad"
      ],
      "author": {
        "name": "Vineet Gupta",
        "email": "Vineet.Gupta1@synopsys.com",
        "time": "Fri Oct 07 17:02:07 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "ia64: implement atomic64_dec_if_positive\n\nThis is based on s390 version and needed to get rid of\nCONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE\n\nLink: http://lkml.kernel.org/r/1473703083-8625-2-git-send-email-vgupta@synopsys.com\nSigned-off-by: Vineet Gupta \u003cvgupta@synopsys.com\u003e\nReported-by: kbuild test robot \u003cfengguang.wu@intel.com\u003e\nCc: Tony Luck \u003ctony.luck@intel.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1061b0d21e16550e7d7893a5deee2e49ea3990ad",
      "tree": "c2af4ee79f01f670a3a8b395bcef12da61347c5b",
      "parents": [
        "72e2936c04f7d2a4bf87d7f72d3bf11cf91ebb47"
      ],
      "author": {
        "name": "zijun_hu",
        "email": "zijun_hu@htc.com",
        "time": "Fri Oct 07 17:02:04 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:30 2016 -0700"
      },
      "message": "linux/mm.h: canonicalize macro PAGE_ALIGNED() definition\n\nThe macro PAGE_ALIGNED() is prone to cause error because it doesn\u0027t\nfollow convention to parenthesize parameter @addr within macro body, for\nexample unsigned long *ptr \u003d kmalloc(...); PAGE_ALIGNED(ptr + 16); for\nthe left parameter of macro IS_ALIGNED(), (unsigned long)(ptr + 16) is\ndesired but the actual one is (unsigned long)ptr + 16.\n\nIt is fixed by simply canonicalizing macro PAGE_ALIGNED() definition.\n\nLink: http://lkml.kernel.org/r/57EA6AE7.7090807@zoho.com\nSigned-off-by: zijun_hu \u003czijun_hu@htc.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "72e2936c04f7d2a4bf87d7f72d3bf11cf91ebb47",
      "tree": "e074463b15c0c725afca88f16a5683ae437e0459",
      "parents": [
        "63f53dea0c9866e93802d50a230c460a024c44e5"
      ],
      "author": {
        "name": "zhong jiang",
        "email": "zhongjiang@huawei.com",
        "time": "Fri Oct 07 17:02:01 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: remove unnecessary condition in remove_inode_hugepages\n\nWhen the huge page is added to the page cahce (huge_add_to_page_cache),\nthe page private flag will be cleared.  since this code\n(remove_inode_hugepages) will only be called for pages in the page\ncahce, PagePrivate(page) will always be false.\n\nThe patch remove the code without any functional change.\n\nLink: http://lkml.kernel.org/r/1475113323-29368-1-git-send-email-zhongjiang@huawei.com\nSigned-off-by: zhong jiang \u003czhongjiang@huawei.com\u003e\nReviewed-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nReviewed-by: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nTested-by: Mike Kravetz \u003cmike.kravetz@oracle.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": "63f53dea0c9866e93802d50a230c460a024c44e5",
      "tree": "8045e5150c6f016b9fd5040e10f57d4c9394a4a9",
      "parents": [
        "7877cdcc3893c1bd9a833b2f0398e7320794c6e6"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Oct 07 17:01:58 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: warn about allocations which stall for too long\n\nCurrently we do warn only about allocation failures but small\nallocations are basically nofail and they might loop in the page\nallocator for a long time.  Especially when the reclaim cannot make any\nprogress - e.g.  GFP_NOFS cannot invoke the oom killer and rely on a\ndifferent context to make a forward progress in case there is a lot\nmemory used by filesystems.\n\nGive us at least a clue when something like this happens and warn about\nallocations which take more than 10s.  Print the basic allocation\ncontext information along with the cumulative time spent in the\nallocation as well as the allocation stack.  Repeat the warning after\nevery 10 seconds so that we know that the problem is permanent rather\nthan ephemeral.\n\nLink: http://lkml.kernel.org/r/20160929084407.7004-3-mhocko@kernel.org\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7877cdcc3893c1bd9a833b2f0398e7320794c6e6",
      "tree": "ab2c1885303f60c534a981d42eac6e035c7acd04",
      "parents": [
        "c2a9737f45e27d8263ff9643f994bda9bac0b944"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Oct 07 17:01:55 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: consolidate warn_alloc_failed users\n\nwarn_alloc_failed is currently used from the page and vmalloc\nallocators.  This is a good reuse of the code except that vmalloc would\nappreciate a slightly different warning message.  This is already\nhandled by the fmt parameter except that\n\n  \"%s: page allocation failure: order:%u, mode:%#x(%pGg)\"\n\nis printed anyway.  This might be quite misleading because it might be a\nvmalloc failure which leads to the warning while the page allocator is\nnot the culprit here.  Fix this by always using the fmt string and only\nprint the context that makes sense for the particular context (e.g.\norder makes only very little sense for the vmalloc context).\n\nRename the function to not miss any user and also because a later patch\nwill reuse it also for !failure cases.\n\nLink: http://lkml.kernel.org/r/20160929084407.7004-2-mhocko@kernel.org\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: Johannes Weiner \u003channes@cmpxchg.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c2a9737f45e27d8263ff9643f994bda9bac0b944",
      "tree": "fda4cf829320f7a3334c75e50308dfcb6daea0f3",
      "parents": [
        "14f099107aacea5ffa77d4fd3be52671e3925b93"
      ],
      "author": {
        "name": "Wei Fang",
        "email": "fangwei1@huawei.com",
        "time": "Fri Oct 07 17:01:52 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "vfs,mm: fix a dead loop in truncate_inode_pages_range()\n\nWe triggered a deadloop in truncate_inode_pages_range() on 32 bits\narchitecture with the test case bellow:\n\n\t...\n\tfd \u003d open();\n\twrite(fd, buf, 4096);\n\tpreadv64(fd, \u0026iovec, 1, 0xffffffff000);\n\tftruncate(fd, 0);\n\t...\n\nThen ftruncate() will not return forever.\n\nThe filesystem used in this case is ubifs, but it can be triggered on\nmany other filesystems.\n\nWhen preadv64() is called with offset\u003d0xffffffff000, a page with\nindex\u003d0xffffffff will be added to the radix tree of -\u003emapping.  Then\nthis page can be found in -\u003emapping with pagevec_lookup().  After that,\ntruncate_inode_pages_range(), which is called in ftruncate(), will fall\ninto an infinite loop:\n\n - find a page with index\u003d0xffffffff, since index\u003e\u003dend, this page won\u0027t\n   be truncated\n\n - index++, and index become 0\n\n - the page with index\u003d0xffffffff will be found again\n\nThe data type of index is unsigned long, so index won\u0027t overflow to 0 on\n64 bits architecture in this case, and the dead loop won\u0027t happen.\n\nSince truncate_inode_pages_range() is executed with holding lock of\ninode-\u003ei_rwsem, any operation related with this lock will be blocked,\nand a hung task will happen, e.g.:\n\n  INFO: task truncate_test:3364 blocked for more than 120 seconds.\n  ...\n     call_rwsem_down_write_failed+0x17/0x30\n     generic_file_write_iter+0x32/0x1c0\n     ubifs_write_iter+0xcc/0x170\n     __vfs_write+0xc4/0x120\n     vfs_write+0xb2/0x1b0\n     SyS_write+0x46/0xa0\n\nThe page with index\u003d0xffffffff added to -\u003emapping is useless.  Fix this\nby checking the read position before allocating pages.\n\nLink: http://lkml.kernel.org/r/1475151010-40166-1-git-send-email-fangwei1@huawei.com\nSigned-off-by: Wei Fang \u003cfangwei1@huawei.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\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": "14f099107aacea5ffa77d4fd3be52671e3925b93",
      "tree": "86f2c828d134f160341aefdf3899cd8246873d48",
      "parents": [
        "461a7184320a1b4d2c12ad538354062fef4ee0f1"
      ],
      "author": {
        "name": "Yisheng Xie",
        "email": "xieyisheng1@huawei.com",
        "time": "Fri Oct 07 17:01:49 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "arm64 Kconfig: select gigantic page\n\nArm64 supports gigantic pages after commit 084bd29810a5 (\"ARM64: mm:\nHugeTLB support.\") however, it can only be allocated at boottime and\ncan\u0027t be freed.\n\nThis patch selects ARCH_HAS_GIGANTIC_PAGE to make gigantic pages can be\nallocated and freed at runtime for arch arm64.\n\nLink: http://lkml.kernel.org/r/1475227569-63446-3-git-send-email-xieyisheng1@huawei.com\nSigned-off-by: Yisheng Xie \u003cxieyisheng1@huawei.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: Hanjun Guo \u003cguohanjun@huawei.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Sudeep Holla \u003csudeep.holla@arm.com\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Rob Herring \u003crobh+dt@kernel.org\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.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": "461a7184320a1b4d2c12ad538354062fef4ee0f1",
      "tree": "275112facfca37fbd1f6e566c2d905b4a6727d00",
      "parents": [
        "82e7d3abec86cba9df945a765bba384f8ac113a7"
      ],
      "author": {
        "name": "Yisheng Xie",
        "email": "xieyisheng1@huawei.com",
        "time": "Fri Oct 07 17:01:46 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm/hugetlb: introduce ARCH_HAS_GIGANTIC_PAGE\n\nAvoid making ifdef get pretty unwieldy if many ARCHs support gigantic\npage.  No functional change with this patch.\n\nLink: http://lkml.kernel.org/r/1475227569-63446-2-git-send-email-xieyisheng1@huawei.com\nSigned-off-by: Yisheng Xie \u003cxieyisheng1@huawei.com\u003e\nSuggested-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nCc: Hanjun Guo \u003cguohanjun@huawei.com\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Dave Hansen \u003cdave.hansen@intel.com\u003e\nCc: Sudeep Holla \u003csudeep.holla@arm.com\u003e\nCc: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: Rob Herring \u003crobh+dt@kernel.org\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "82e7d3abec86cba9df945a765bba384f8ac113a7",
      "tree": "7ae645dbf69e8fee85be31e150dc381205525d2a",
      "parents": [
        "9996f05eac09815121bb718249f21914a667791f"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Fri Oct 07 17:01:43 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "oom: print nodemask in the oom report\n\nWe have received a hard to explain oom report from a customer.  The oom\ntriggered regardless there is a lot of free memory:\n\n  PoolThread invoked oom-killer: gfp_mask\u003d0x280da, order\u003d0, oom_adj\u003d0, oom_score_adj\u003d0\n  PoolThread cpuset\u003d/ mems_allowed\u003d0-7\n  Pid: 30055, comm: PoolThread Tainted: G           E X 3.0.101-80-default #1\n  Call Trace:\n    dump_trace+0x75/0x300\n    dump_stack+0x69/0x6f\n    dump_header+0x8e/0x110\n    oom_kill_process+0xa6/0x350\n    out_of_memory+0x2b7/0x310\n    __alloc_pages_slowpath+0x7dd/0x820\n    __alloc_pages_nodemask+0x1e9/0x200\n    alloc_pages_vma+0xe1/0x290\n    do_anonymous_page+0x13e/0x300\n    do_page_fault+0x1fd/0x4c0\n    page_fault+0x25/0x30\n  [...]\n  active_anon:1135959151 inactive_anon:1051962 isolated_anon:0\n   active_file:13093 inactive_file:222506 isolated_file:0\n   unevictable:262144 dirty:2 writeback:0 unstable:0\n   free:432672819 slab_reclaimable:7917 slab_unreclaimable:95308\n   mapped:261139 shmem:166297 pagetables:2228282 bounce:0\n  [...]\n  Node 0 DMA free:15896kB min:0kB low:0kB high:0kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:15672kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes\n  lowmem_reserve[]: 0 2892 775542 775542\n  Node 0 DMA32 free:2783784kB min:28kB low:32kB high:40kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB isolated(anon):0kB isolated(file):0kB present:2961572kB mlocked:0kB dirty:0kB writeback:0kB mapped:0kB shmem:0kB slab_reclaimable:0kB slab_unreclaimable:0kB kernel_stack:0kB pagetables:0kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? yes\n  lowmem_reserve[]: 0 0 772650 772650\n  Node 0 Normal free:8120kB min:8160kB low:10200kB high:12240kB active_anon:779334960kB inactive_anon:2198744kB active_file:0kB inactive_file:180kB unevictable:131072kB isolated(anon):0kB isolated(file):0kB present:791193600kB mlocked:131072kB dirty:0kB writeback:0kB mapped:372940kB shmem:361480kB slab_reclaimable:4536kB slab_unreclaimable:68472kB kernel_stack:10104kB pagetables:1414820kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:2280 all_unreclaimable? yes\n  lowmem_reserve[]: 0 0 0 0\n  Node 1 Normal free:476718144kB min:8192kB low:10240kB high:12288kB active_anon:307623696kB inactive_anon:283620kB active_file:10392kB inactive_file:69908kB unevictable:131072kB isolated(anon):0kB isolated(file):0kB present:794296320kB mlocked:131072kB dirty:4kB writeback:0kB mapped:257208kB shmem:189896kB slab_reclaimable:3868kB slab_unreclaimable:44756kB kernel_stack:1848kB pagetables:1369432kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no\n  lowmem_reserve[]: 0 0 0 0\n  Node 2 Normal free:386002452kB min:8192kB low:10240kB high:12288kB active_anon:398563752kB inactive_anon:68184kB active_file:10292kB inactive_file:29936kB unevictable:131072kB isolated(anon):0kB isolated(file):0kB present:794296320kB mlocked:131072kB dirty:0kB writeback:0kB mapped:32084kB shmem:776kB slab_reclaimable:6888kB slab_unreclaimable:60056kB kernel_stack:8208kB pagetables:1282880kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no\n  lowmem_reserve[]: 0 0 0 0\n  Node 3 Normal free:196406760kB min:8192kB low:10240kB high:12288kB active_anon:587445640kB inactive_anon:164396kB active_file:5716kB inactive_file:709844kB unevictable:131072kB isolated(anon):0kB isolated(file):0kB present:794296320kB mlocked:131072kB dirty:0kB writeback:0kB mapped:291776kB shmem:111416kB slab_reclaimable:5152kB slab_unreclaimable:44516kB kernel_stack:2168kB pagetables:1455956kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no\n  lowmem_reserve[]: 0 0 0 0\n  Node 4 Normal free:425338880kB min:8192kB low:10240kB high:12288kB active_anon:359695204kB inactive_anon:43216kB active_file:5748kB inactive_file:14772kB unevictable:131072kB isolated(anon):0kB isolated(file):0kB present:794296320kB mlocked:131072kB dirty:0kB writeback:0kB mapped:24708kB shmem:1120kB slab_reclaimable:1884kB slab_unreclaimable:41060kB kernel_stack:1856kB pagetables:1100208kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no\n  lowmem_reserve[]: 0 0 0 0\n  Node 5 Normal free:11140kB min:8192kB low:10240kB high:12288kB active_anon:784240872kB inactive_anon:1217164kB active_file:28kB inactive_file:48kB unevictable:131072kB isolated(anon):0kB isolated(file):0kB present:794296320kB mlocked:131072kB dirty:0kB writeback:0kB mapped:11408kB shmem:0kB slab_reclaimable:2008kB slab_unreclaimable:49220kB kernel_stack:1360kB pagetables:531600kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:1202 all_unreclaimable? yes\n  lowmem_reserve[]: 0 0 0 0\n  Node 6 Normal free:243395332kB min:8192kB low:10240kB high:12288kB active_anon:542015544kB inactive_anon:40208kB active_file:968kB inactive_file:8484kB unevictable:131072kB isolated(anon):0kB isolated(file):0kB present:794296320kB mlocked:131072kB dirty:0kB writeback:0kB mapped:19992kB shmem:496kB slab_reclaimable:1672kB slab_unreclaimable:37052kB kernel_stack:2088kB pagetables:750264kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no\n  lowmem_reserve[]: 0 0 0 0\n  Node 7 Normal free:10768kB min:8192kB low:10240kB high:12288kB active_anon:784916936kB inactive_anon:192316kB active_file:19228kB inactive_file:56852kB unevictable:131072kB isolated(anon):0kB isolated(file):0kB present:794296320kB mlocked:131072kB dirty:4kB writeback:0kB mapped:34440kB shmem:4kB slab_reclaimable:5660kB slab_unreclaimable:36100kB kernel_stack:1328kB pagetables:1007968kB unstable:0kB bounce:0kB writeback_tmp:0kB pages_scanned:0 all_unreclaimable? no\n  lowmem_reserve[]: 0 0 0 0\n\nSo all nodes but Node 0 have a lot of free memory which should suggest\nthat there is an available memory especially when mems_allowed\u003d0-7.  One\ncould speculate that a massive process has managed to terminate and free\nup a lot of memory while racing with the above allocation request.\nAlthough this is highly unlikely it cannot be ruled out.\n\nA further debugging, however shown that the faulting process had\nmempolicy (not cpuset) to bind to Node 0.  We cannot see that\ninformation from the report though.  mems_allowed turned out to be more\nconfusing than really helpful.\n\nFix this by always priting the nodemask.  It is either mempolicy mask\n(and non-null) or the one defined by the cpusets.  The new output for\nthe above oom report would be\n\n  PoolThread invoked oom-killer: gfp_mask\u003d0x280da(GFP_HIGHUSER_MOVABLE|__GFP_ZERO), nodemask\u003d0, order\u003d0, oom_adj\u003d0, oom_score_adj\u003d0\n\nThis patch doesn\u0027t touch show_mem and the node filtering based on the\ncpuset node mask because mempolicy is always a subset of cpusets and\nseeing the full cpuset oom context might be helpful for tunning more\nspecific mempolicies inside cpusets (e.g.  when they turn out to be too\nrestrictive).  To prevent from ugly ifdefs the mask is printed even for\n!NUMA configurations but this should be OK (a single node will be\nprinted).\n\nLink: http://lkml.kernel.org/r/20160930214146.28600-1-mhocko@kernel.org\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\nReported-by: Sellami Abdelkader \u003cabdelkader.sellami@sap.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Sellami Abdelkader \u003cabdelkader.sellami@sap.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9996f05eac09815121bb718249f21914a667791f",
      "tree": "5895100f41462c5aa2c68a8b992ba2f2845b134b",
      "parents": [
        "8f26e0b176f3484c49d55d88fe6083a9cf9ff443"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Fri Oct 07 17:01:40 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: clarify why we avoid page_mapcount() for slab pages in dump_page()\n\nLet\u0027s add comment on why we skip page_mapcount() for sl[aou]b pages.\n\nLink: http://lkml.kernel.org/r/20160922105532.GB24593@node\nSigned-off-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nAcked-by: Vlastimil Babka \u003cvbabka@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": "8f26e0b176f3484c49d55d88fe6083a9cf9ff443",
      "tree": "817114a7c54148b01bd4dc4327b1bf84b4f5a158",
      "parents": [
        "86d12e471d9f152217744f2054e63e3742949879"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Fri Oct 07 17:01:37 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: vma_merge: correct false positive from __vma_unlink-\u003evalidate_mm_rb\n\nThe old code was always doing:\n\n   vma-\u003evm_end \u003d next-\u003evm_end\n   vma_rb_erase(next) // in __vma_unlink\n   vma-\u003evm_next \u003d next-\u003evm_next // in __vma_unlink\n   next \u003d vma-\u003evm_next\n   vma_gap_update(next)\n\nThe new code still does the above for remove_next \u003d\u003d 1 and 2, but for\nremove_next \u003d\u003d 3 it has been changed and it does:\n\n   next-\u003evm_start \u003d vma-\u003evm_start\n   vma_rb_erase(vma) // in __vma_unlink\n   vma_gap_update(next)\n\nIn the latter case, while unlinking \"vma\", validate_mm_rb() is told to\nignore \"vma\" that is being removed, but next-\u003evm_start was reduced\ninstead. So for the new case, to avoid the false positive from\nvalidate_mm_rb, it should be \"next\" that is ignored when \"vma\" is\nbeing unlinked.\n\n\"vma\" and \"next\" in the above comment, considered pre-swap().\n\nLink: http://lkml.kernel.org/r/1474492522-2261-4-git-send-email-aarcange@redhat.com\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nTested-by: Shaun Tancheff \u003cshaun.tancheff@seagate.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: Jan Vorlicek \u003cjanvorli@microsoft.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "86d12e471d9f152217744f2054e63e3742949879",
      "tree": "07d188daaeef4bcef7008e8f87f2c9a1d30d0977",
      "parents": [
        "97a42cd4398162aba77da55b568d85e5ec6b7705"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Fri Oct 07 17:01:34 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: vma_adjust: minor comment correction\n\nThe cases are three not two.\n\nLink: http://lkml.kernel.org/r/1474492522-2261-3-git-send-email-aarcange@redhat.com\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: Jan Vorlicek \u003cjanvorli@microsoft.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "97a42cd4398162aba77da55b568d85e5ec6b7705",
      "tree": "238dd26c444f84c69169c38a26e2ecff8f95a8b7",
      "parents": [
        "e86f15ee64d8ee46255d964d55f74f5ba9af8c36"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Fri Oct 07 17:01:31 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: vma_adjust: remove superfluous check for next not NULL\n\nIf next would be NULL we couldn\u0027t reach such code path.\n\nLink: http://lkml.kernel.org/r/1474309513-20313-2-git-send-email-aarcange@redhat.com\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: Jan Vorlicek \u003cjanvorli@microsoft.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e86f15ee64d8ee46255d964d55f74f5ba9af8c36",
      "tree": "038bb07471fe5673221880f24ca06716403cad42",
      "parents": [
        "fb8c41e9ad1f356b06b46a63ada10b7dce2a5d94"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Fri Oct 07 17:01:28 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: vma_merge: fix vm_page_prot SMP race condition against rmap_walk\n\nThe rmap_walk can access vm_page_prot (and potentially vm_flags in the\npte/pmd manipulations).  So it\u0027s not safe to wait the caller to update\nthe vm_page_prot/vm_flags after vma_merge returned potentially removing\nthe \"next\" vma and extending the \"current\" vma over the\nnext-\u003evm_start,vm_end range, but still with the \"current\" vma\nvm_page_prot, after releasing the rmap locks.\n\nThe vm_page_prot/vm_flags must be transferred from the \"next\" vma to the\ncurrent vma while vma_merge still holds the rmap locks.\n\nThe side effect of this race condition is pte corruption during migrate\nas remove_migration_ptes when run on a address of the \"next\" vma that\ngot removed, used the vm_page_prot of the current vma.\n\n  migrate   \t      \t        mprotect\n  ------------\t\t\t-------------\n  migrating in \"next\" vma\n\t\t\t\tvma_merge() # removes \"next\" vma and\n\t\t\t        \t    # extends \"current\" vma\n\t\t\t\t\t    # current vma is not with\n\t\t\t\t\t    # vm_page_prot updated\n  remove_migration_ptes\n  read vm_page_prot of current \"vma\"\n  establish pte with wrong permissions\n\t\t\t\tvm_set_page_prot(vma) # too late!\n\t\t\t\tchange_protection in the old vma range\n\t\t\t\tonly, next range is not updated\n\nThis caused segmentation faults and potentially memory corruption in\nheavy mprotect loads with some light page migration caused by compaction\nin the background.\n\nHugh Dickins pointed out the comment about the Odd case 8 in vma_merge\nwhich confirms the case 8 is only buggy one where the race can trigger,\nin all other vma_merge cases the above cannot happen.\n\nThis fix removes the oddness factor from case 8 and it converts it from:\n\n      AAAA\n  PPPPNNNNXXXX -\u003e PPPPNNNNNNNN\n\nto:\n\n      AAAA\n  PPPPNNNNXXXX -\u003e PPPPXXXXXXXX\n\nXXXX has the right vma properties for the whole merged vma returned by\nvma_adjust, so it solves the problem fully.  It has the added benefits\nthat the callers could stop updating vma properties when vma_merge\nsucceeds however the callers are not updated by this patch (there are\nbits like VM_SOFTDIRTY that still need special care for the whole range,\nas the vma merging ignores them, but as long as they\u0027re not processed by\nrmap walks and instead they\u0027re accessed with the mmap_sem at least for\nreading, they are fine not to be updated within vma_adjust before\nreleasing the rmap_locks).\n\nLink: http://lkml.kernel.org/r/1474309513-20313-1-git-send-email-aarcange@redhat.com\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nReported-by: Aditya Mandaleeka \u003cadityam@microsoft.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: Jan Vorlicek \u003cjanvorli@microsoft.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "fb8c41e9ad1f356b06b46a63ada10b7dce2a5d94",
      "tree": "dae7e1ad1d4e34ef6fb70c33f63f97ebe10722d1",
      "parents": [
        "6d2329f8872f23e46a19d240930571510ce525eb"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Fri Oct 07 17:01:25 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: vma_adjust: remove superfluous confusing update in remove_next \u003d\u003d 1 case\n\nmm-\u003ehighest_vm_end doesn\u0027t need any update.\n\nAfter finally removing the oddness from vma_merge case 8 that was\ncausing:\n\n1) constant risk of trouble whenever anybody would check vma fields\n   from rmap_walks, like it happened when page migration was\n   introduced and it read the vma-\u003evm_page_prot from a rmap_walk\n\n2) the callers of vma_merge to re-initialize any value different from\n   the current vma, instead of vma_merge() more reliably returning a\n   vma that already matches all fields passed as parameter\n\n.. it is also worth to take the opportunity of cleaning up superfluous\ncode in vma_adjust(), that if not removed adds up to the hard\nreadability of the function.\n\nLink: http://lkml.kernel.org/r/1474492522-2261-5-git-send-email-aarcange@redhat.com\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: Jan Vorlicek \u003cjanvorli@microsoft.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6d2329f8872f23e46a19d240930571510ce525eb",
      "tree": "598cc5a8d764aa497570b359fc1328be5fa105cc",
      "parents": [
        "6213055f2c068b63078649457391ecea9b489ea3"
      ],
      "author": {
        "name": "Andrea Arcangeli",
        "email": "aarcange@redhat.com",
        "time": "Fri Oct 07 17:01:22 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: vm_page_prot: update with WRITE_ONCE/READ_ONCE\n\nvma-\u003evm_page_prot is read lockless from the rmap_walk, it may be updated\nconcurrently and this prevents the risk of reading intermediate values.\n\nLink: http://lkml.kernel.org/r/1474660305-19222-1-git-send-email-aarcange@redhat.com\nSigned-off-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: Jan Vorlicek \u003cjanvorli@microsoft.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6213055f2c068b63078649457391ecea9b489ea3",
      "tree": "bb0c8260b211a968de71a05190155fe76da8c3bf",
      "parents": [
        "ac34dcd263a3afe9a2e4d58a2d93bb66d700ac7c"
      ],
      "author": {
        "name": "zhong jiang",
        "email": "zhongjiang@huawei.com",
        "time": "Fri Oct 07 17:01:19 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm,ksm: add __GFP_HIGH to the allocation in alloc_stable_node()\n\nAccording to Hugh\u0027s suggestion, alloc_stable_node() with GFP_KERNEL can\nin rare cases cause a hung task warning.\n\nAt present, if alloc_stable_node() allocation fails, two break_cows may\nwant to allocate a couple of pages, and the issue will come up when free\nmemory is under pressure.\n\nWe fix it by adding __GFP_HIGH to GFP, to grant access to memory\nreserves, increasing the likelihood of allocation success.\n\n[akpm@linux-foundation.org: tweak comment]\nLink: http://lkml.kernel.org/r/1474354484-58233-1-git-send-email-zhongjiang@huawei.com\nSigned-off-by: zhong jiang \u003czhongjiang@huawei.com\u003e\nSuggested-by: Hugh Dickins \u003chughd@google.com\u003e\nAcked-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": "ac34dcd263a3afe9a2e4d58a2d93bb66d700ac7c",
      "tree": "8be03c4dae7daa9253d5f7b80337e95b5fd3a11f",
      "parents": [
        "eb03aa008561004257900983193d024e57abdd96"
      ],
      "author": {
        "name": "Yisheng Xie",
        "email": "xieyisheng1@huawei.com",
        "time": "Fri Oct 07 17:01:16 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm/page_isolation: fix typo: \"paes\" -\u003e \"pages\"\n\nFix typo in comment.\n\nLink: http://lkml.kernel.org/r/1474788764-5774-1-git-send-email-ysxie@foxmail.com\nSigned-off-by: Yisheng Xie \u003cxieyisheng1@huawei.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "eb03aa008561004257900983193d024e57abdd96",
      "tree": "96080a7d5c80e9c5ffbb8072f5f90abc84afbb6e",
      "parents": [
        "082d5b6b60e9f25e1511557fcfcb21eedd267446"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Fri Oct 07 17:01:13 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm/hugetlb: improve locking in dissolve_free_huge_pages()\n\nFor every pfn aligned to minimum_order, dissolve_free_huge_pages() will\ncall dissolve_free_huge_page() which takes the hugetlb spinlock, even if\nthe page is not huge at all or a hugepage that is in-use.\n\nImprove this by doing the PageHuge() and page_count() checks already in\ndissolve_free_huge_pages() before calling dissolve_free_huge_page().  In\ndissolve_free_huge_page(), when holding the spinlock, those checks need\nto be revalidated.\n\nLink: http://lkml.kernel.org/r/20160926172811.94033-4-gerald.schaefer@de.ibm.com\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: \"Kirill A . Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: \"Aneesh Kumar K . V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Rui Teng \u003crui.teng@linux.vnet.ibm.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "082d5b6b60e9f25e1511557fcfcb21eedd267446",
      "tree": "96193389b0c0ec724e7cb8ae8c34270642fbd15b",
      "parents": [
        "2247bb335ab9c40058484cac36ea74ee652f3b7b"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Fri Oct 07 17:01:10 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm/hugetlb: check for reserved hugepages during memory offline\n\nIn dissolve_free_huge_pages(), free hugepages will be dissolved without\nmaking sure that there are enough of them left to satisfy hugepage\nreservations.\n\nFix this by adding a return value to dissolve_free_huge_pages() and\nchecking h-\u003efree_huge_pages vs.  h-\u003eresv_huge_pages.  Note that this may\nlead to the situation where dissolve_free_huge_page() returns an error\nand all free hugepages that were dissolved before that error are lost,\nwhile the memory block still cannot be set offline.\n\nFixes: c8721bbb (\"mm: memory-hotplug: enable memory hotplug to handle hugepage\")\nLink: http://lkml.kernel.org/r/20160926172811.94033-3-gerald.schaefer@de.ibm.com\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: \"Kirill A . Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: \"Aneesh Kumar K . V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Rui Teng \u003crui.teng@linux.vnet.ibm.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2247bb335ab9c40058484cac36ea74ee652f3b7b",
      "tree": "c566a81b2150542b90eabfd71ede105567f3bd1b",
      "parents": [
        "914a051654c5401cb216a939e214e17ec018b6a9"
      ],
      "author": {
        "name": "Gerald Schaefer",
        "email": "gerald.schaefer@de.ibm.com",
        "time": "Fri Oct 07 17:01:07 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm/hugetlb: fix memory offline with hugepage size \u003e memory block size\n\nPatch series \"mm/hugetlb: memory offline issues with hugepages\", v4.\n\nThis addresses several issues with hugepages and memory offline.  While\nthe first patch fixes a panic, and is therefore rather important, the\nlast patch is just a performance optimization.\n\nThe second patch fixes a theoretical issue with reserved hugepages,\nwhile still leaving some ugly usability issue, see description.\n\nThis patch (of 3):\n\ndissolve_free_huge_pages() will either run into the VM_BUG_ON() or a\nlist corruption and addressing exception when trying to set a memory\nblock offline that is part (but not the first part) of a \"gigantic\"\nhugetlb page with a size \u003e memory block size.\n\nWhen no other smaller hugetlb page sizes are present, the VM_BUG_ON()\nwill trigger directly.  In the other case we will run into an addressing\nexception later, because dissolve_free_huge_page() will not work on the\nhead page of the compound hugetlb page which will result in a NULL\nhstate from page_hstate().\n\nTo fix this, first remove the VM_BUG_ON() because it is wrong, and then\nuse the compound head page in dissolve_free_huge_page().  This means\nthat an unused pre-allocated gigantic page that has any part of itself\ninside the memory block that is going offline will be dissolved\ncompletely.  Losing an unused gigantic hugepage is preferable to failing\nthe memory offline, for example in the situation where a (possibly\nfaulty) memory DIMM needs to go offline.\n\nFixes: c8721bbb (\"mm: memory-hotplug: enable memory hotplug to handle hugepage\")\nLink: http://lkml.kernel.org/r/20160926172811.94033-2-gerald.schaefer@de.ibm.com\nSigned-off-by: Gerald Schaefer \u003cgerald.schaefer@de.ibm.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nAcked-by: Naoya Horiguchi \u003cn-horiguchi@ah.jp.nec.com\u003e\nCc: \"Kirill A . Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nCc: Mike Kravetz \u003cmike.kravetz@oracle.com\u003e\nCc: \"Aneesh Kumar K . V\" \u003caneesh.kumar@linux.vnet.ibm.com\u003e\nCc: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Rui Teng \u003crui.teng@linux.vnet.ibm.com\u003e\nCc: Dave Hansen \u003cdave.hansen@linux.intel.com\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": "914a051654c5401cb216a939e214e17ec018b6a9",
      "tree": "0a4415bbe49e60da7fb4a0f508e6d311c250bdcd",
      "parents": [
        "19938e350adc60f3b9381ae6fc68da40f7d1a9f6"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "wanlong.gao@gmail.com",
        "time": "Fri Oct 07 17:01:04 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: nobootmem: move the comment of free_all_bootmem\n\nCommit b4def3509d18 (\"mm, nobootmem: clean-up of free_low_memory_core_early()\")\nremoved the unnecessary nodeid argument, after that, this comment\nbecomes more confused.  We should move it to the right place.\n\nFixes: b4def3509d18c1db9 (\"mm, nobootmem: clean-up of free_low_memory_core_early()\")\nLink: http://lkml.kernel.org/r/1473996082-14603-1-git-send-email-wanlong.gao@gmail.com\nSigned-off-by: Wanlong Gao \u003cwanlong.gao@gmail.com\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "19938e350adc60f3b9381ae6fc68da40f7d1a9f6",
      "tree": "e36d51783739c8bd79b0905577314176cd23cc13",
      "parents": [
        "2d75807383459c04d457bf2d295fa6ad858507d2"
      ],
      "author": {
        "name": "Rasmus Villemoes",
        "email": "linux@rasmusvillemoes.dk",
        "time": "Fri Oct 07 17:01:01 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm/shmem.c: constify anon_ops\n\nEvery other dentry_operations instance is const, and this one might as\nwell be.\n\nLink: http://lkml.kernel.org/r/1473890528-7009-1-git-send-email-linux@rasmusvillemoes.dk\nSigned-off-by: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nAcked-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": "2d75807383459c04d457bf2d295fa6ad858507d2",
      "tree": "66463e88f69356ec92d59d1c8416b076181970e6",
      "parents": [
        "08ea8c07fb56d6eb8194d8ad408b469544bf2c29"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Fri Oct 07 17:00:58 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: memcontrol: consolidate cgroup socket tracking\n\nThe cgroup core and the memory controller need to track socket ownership\nfor different purposes, but the tracking sites being entirely different\nis kind of ugly.\n\nBe a better citizen and rename the memory controller callbacks to match\nthe cgroup core callbacks, then move them to the same place.\n\n[akpm@linux-foundation.org: coding-style fixes]\nLink: http://lkml.kernel.org/r/20160914194846.11153-3-hannes@cmpxchg.org\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"David S. Miller\" \u003cdavem@davemloft.net\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Vladimir Davydov \u003cvdavydov@virtuozzo.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "08ea8c07fb56d6eb8194d8ad408b469544bf2c29",
      "tree": "59ecdc97181fc0b14c335268b390dcad2cbf218b",
      "parents": [
        "cc30c5d6461a2813406f7f84d581643781922a82"
      ],
      "author": {
        "name": "Baoyou Xie",
        "email": "baoyou.xie@linaro.org",
        "time": "Fri Oct 07 17:00:55 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: move phys_mem_access_prot_allowed() declaration to pgtable.h\n\nWe get 1 warning when building kernel with W\u003d1:\n\n  drivers/char/mem.c:220:12: warning: no previous prototype for \u0027phys_mem_access_prot_allowed\u0027 [-Wmissing-prototypes]\n   int __weak phys_mem_access_prot_allowed(struct file *file,\n\nIn fact, its declaration is spreading to several header files in\ndifferent architecture, but need to be declare in common header file.\n\nSo this patch moves phys_mem_access_prot_allowed() to pgtable.h.\n\nLink: http://lkml.kernel.org/r/1473751597-12139-1-git-send-email-baoyou.xie@linaro.org\nSigned-off-by: Baoyou Xie \u003cbaoyou.xie@linaro.org\u003e\nAcked-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc30c5d6461a2813406f7f84d581643781922a82",
      "tree": "663ceb261feec5694904bbed32a02b64b891d814",
      "parents": [
        "a104808e212a9ee97e6b9cb6945185e50905f009"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Fri Oct 07 17:00:52 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm/page_io.c: replace some BUG_ON()s with VM_BUG_ON_PAGE()\n\nSo they are CONFIG_DEBUG_VM-only and more informative.\n\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jens Axboe \u003caxboe@fb.com\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Santosh Shilimkar \u003csantosh.shilimkar@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "a104808e212a9ee97e6b9cb6945185e50905f009",
      "tree": "f64f0b298d6b015bf784df5af8810caff6df08b8",
      "parents": [
        "20311420282f3402888f1d9b8b80d924d491aadf"
      ],
      "author": {
        "name": "Tetsuo Handa",
        "email": "penguin-kernel@I-love.SAKURA.ne.jp",
        "time": "Fri Oct 07 17:00:49 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm: don\u0027t emit warning from pagefault_out_of_memory()\n\nCommit c32b3cbe0d06 (\"oom, PM: make OOM detection in the freezer path\nraceless\") inserted a WARN_ON() into pagefault_out_of_memory() in order\nto warn when we raced with disabling the OOM killer.\n\nNow, patch \"oom, suspend: fix oom_killer_disable vs.  pm suspend\nproperly\" introduced a timeout for oom_killer_disable().  Even if we\nraced with disabling the OOM killer and the system is OOM livelocked,\nthe OOM killer will be enabled eventually (in 20 seconds by default) and\nthe OOM livelock will be solved.  Therefore, we no longer need to warn\nwhen we raced with disabling the OOM killer.\n\nLink: http://lkml.kernel.org/r/1473442120-7246-1-git-send-email-penguin-kernel@I-love.SAKURA.ne.jp\nSigned-off-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: 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": "20311420282f3402888f1d9b8b80d924d491aadf",
      "tree": "6ef33e5e616118f2000188440290e52709a0d488",
      "parents": [
        "cc5c9f098fe48a8736add8a23c983524ca16cea5"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Fri Oct 07 17:00:46 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm, compaction: restrict fragindex to costly orders\n\nFragmentation index and the vm.extfrag_threshold sysctl is meant as a\nheuristic to prevent excessive compaction for costly orders (i.e.  THP).\nIt\u0027s unlikely to make any difference for non-costly orders, especially\nwith the default threshold.  But we cannot afford any uncertainty for\nthe non-costly orders where the only alternative to successful\nreclaim/compaction is OOM.  After the recent patches we are guaranteed\nmaximum effort without heuristics from compaction before deciding OOM,\nand fragindex is the last remaining heuristic.  Therefore skip fragindex\naltogether for non-costly orders.\n\nSuggested-by: Michal Hocko \u003cmhocko@suse.com\u003e\nLink: http://lkml.kernel.org/r/20160926162025.21555-5-vbabka@suse.cz\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cc5c9f098fe48a8736add8a23c983524ca16cea5",
      "tree": "d48d2ff7f7c1351b3a6b1739e6bcf1c6264f0226",
      "parents": [
        "423b452e1553e3d19b632880bf2adf1f058ab267"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Fri Oct 07 17:00:43 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm, compaction: ignore fragindex from compaction_zonelist_suitable()\n\nThe compaction_zonelist_suitable() function tries to determine if\ncompaction will be able to proceed after sufficient reclaim, i.e.\nwhether there are enough reclaimable pages to provide enough order-0\nfreepages for compaction.\n\nThis addition of reclaimable pages to the free pages works well for the\norder-0 watermark check, but in the fragmentation index check we only\nconsider truly free pages.  Thus we can get fragindex value close to 0\nwhich indicates failure do to lack of memory, and wrongly decide that\ncompaction won\u0027t be suitable even after reclaim.\n\nInstead of trying to somehow adjust fragindex for reclaimable pages,\nlet\u0027s just skip it from compaction_zonelist_suitable().\n\nLink: http://lkml.kernel.org/r/20160926162025.21555-4-vbabka@suse.cz\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "423b452e1553e3d19b632880bf2adf1f058ab267",
      "tree": "0bdea616f1b8155ca4c47aa3172e0eadc0540f60",
      "parents": [
        "9f7e3387939b036faacf4e7f32de7bb92a6635d6"
      ],
      "author": {
        "name": "Vlastimil Babka",
        "email": "vbabka@suse.cz",
        "time": "Fri Oct 07 17:00:40 2016 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Oct 07 18:46:29 2016 -0700"
      },
      "message": "mm, page_alloc: pull no_progress_loops update to should_reclaim_retry()\n\nThe should_reclaim_retry() makes decisions based on no_progress_loops,\nso it makes sense to also update the counter there.  It will be also\nconsistent with should_compact_retry() and compaction_retries.  No\nfunctional change.\n\n[hillf.zj@alibaba-inc.com: fix missing pointer dereferences]\nLink: http://lkml.kernel.org/r/20160926162025.21555-3-vbabka@suse.cz\nSigned-off-by: Vlastimil Babka \u003cvbabka@suse.cz\u003e\nAcked-by: Hillf Danton \u003chillf.zj@alibaba-inc.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Mel Gorman \u003cmgorman@techsingularity.net\u003e\nCc: Joonsoo Kim \u003ciamjoonsoo.kim@lge.com\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "9f7e3387939b036faacf4e7f32de7bb92a6635d6"
}
