)]}'
{
  "log": [
    {
      "commit": "43b16820249396aea7eb57c747106e211e54bed5",
      "tree": "a113c730fbd40470f6c2cb40993c154fd0630571",
      "parents": [
        "b2ddedcd21f44a5873ee3d6ff6118a2318e01e18"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 19 13:29:54 2013 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sat Jan 19 13:29:54 2013 -0500"
      },
      "message": "make sure that /linuxrc has std{in,out,err}\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "b2ddedcd21f44a5873ee3d6ff6118a2318e01e18",
      "tree": "8ebc45893c633d451819ae6d2046cc8a4ae14446",
      "parents": [
        "a566c288826ad4502e43b59570214f18173d7744"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Mon Dec 24 12:31:00 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 26 01:15:03 2012 -0500"
      },
      "message": "x32: fix sigtimedwait\n\nIt needs 64bit timespec.  As it is, we end up truncating the timeout\nto whole seconds; usually it doesn\u0027t matter, but for having all\nsub-second timeouts truncated to one jiffy is visibly wrong.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a566c288826ad4502e43b59570214f18173d7744",
      "tree": "f95245e6aa2d4ba9edf7d065645254e19eefd693",
      "parents": [
        "8d9807b109497ca41d363dc7b6ff2bb6c0d52524"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 23 23:14:49 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 26 01:15:03 2012 -0500"
      },
      "message": "x32: fix waitid()\n\nIt needs 64bit rusage and 32bit siginfo.  glibc never calls it with\nnon-NULL rusage pointer, or we would\u0027ve seen breakage already...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "8d9807b109497ca41d363dc7b6ff2bb6c0d52524",
      "tree": "3f6768b1ab6ee104c7e41253474e358291bc0537",
      "parents": [
        "90228fc110303549aa1d4d86083bf585df8624c3"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 23 14:56:40 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 26 01:15:02 2012 -0500"
      },
      "message": "switch compat_sys_wait4() and compat_sys_waitid() to COMPAT_SYSCALL_DEFINE\n\nStrictly speaking, ppc64 needs it for C ABI compliance.  Realistically\nI would be very surprised if e.g. passing 0xffffffff as \u0027options\u0027\nargument to waitid() from 32bit task would cause problems, but yes,\nit puts us into undefined behaviour territory.  ppc64 expects int\nargument to be passed in 64bit register with bits 31..63 containing\nthe same value.  SYSCALL_DEFINE on ppc provides a wrapper that normalizes\nthe value passed from userland; so does COMPAT_SYSCALL_DEFINE.  Plain\ndeclaration of compat_sys_something() with an int argument obviously\ndoesn\u0027t.  Again, for wait4 and waitid I would be extremely surprised\nif gcc started to produce code depending on that value having been\nproperly sign-extended - the argument(s) in question end up passed\nblindly to sys_wait4 and sys_waitid resp. and normalization for native\nsyscalls takes care of their use there.  Still, better to use\nCOMPAT_SYSCALL_DEFINE here than worry about nasal daemons...\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "90228fc110303549aa1d4d86083bf585df8624c3",
      "tree": "5e696392110eb20c67d2ffc9c35eae781e4f5821",
      "parents": [
        "f13a3664e4d1de8adc1fc82b981ba4699a731fa1"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Dec 23 03:33:38 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 26 01:15:02 2012 -0500"
      },
      "message": "switch compat_sys_sigaltstack() to COMPAT_SYSCALL_DEFINE\n\nMakes sigaltstack conversion easier to split into per-architecture\nparts.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f13a3664e4d1de8adc1fc82b981ba4699a731fa1",
      "tree": "c7ee77b81dd73362586716cbdafd1cf11a46a591",
      "parents": [
        "f80b0c904da93b9ad7db2fd9823dd701932df779"
      ],
      "author": {
        "name": "Vineet Gupta",
        "email": "Vineet.Gupta1@synopsys.com",
        "time": "Mon Dec 24 10:51:36 2012 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 26 01:15:01 2012 -0500"
      },
      "message": "CONFIG_GENERIC_SIGALTSTACK build breakage with asm-generic/syscalls.h\n\nSaner transition plan for GENERIC_SIGALTSTACK conversion - instead of\nadding #define sys_sigaltstack sys_sigaltstack in asm/syscalls.h of\narchitecture if it\u0027s pulls asm-generic/syscalls.h, only to have those\ndefines removed once all architectures are converted, make the\ndeclaration in said asm-generic/syscalls.h conditional on the lack\nof GENERIC_SIGALTSTACK.  Less messy in intermediate stages that way...\n\nSigned-off-by: Vineet Gupta \u003cvgupta@synopsys.com\u003e\nAcked-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: james.hogan@imgtec.com\nCc: arnd@arndb.de\nCc: torvalds@linux-foundation.org\nCc: linux-kernel@vger.kernel.org\nCc: linux-arch@vger.kernel.org\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "f80b0c904da93b9ad7db2fd9823dd701932df779",
      "tree": "a226468f666012471d9a43a8f48c9588a3fd43b3",
      "parents": [
        "a49f0d1ea3ec94fc7cf33a7c36a16343b74bd565"
      ],
      "author": {
        "name": "Vineet Gupta",
        "email": "Vineet.Gupta1@synopsys.com",
        "time": "Fri Dec 21 12:25:44 2012 +0530"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Wed Dec 26 01:14:12 2012 -0500"
      },
      "message": "Ensure that kernel_init_freeable() is not inlined into non __init code\n\nCommit d6b2123802d \"make sure that we always have a return path from\nkernel_execve()\" reshuffled kernel_init()/init_post() to ensure that\nkernel_execve() has a caller to return to.\n\nIt removed __init annotation for kernel_init() and introduced/calls a\nnew routine kernel_init_freeable(). Latter however is inlined by any\nreasonable compiler (ARC gcc 4.4 in this case), causing slight code\nbloat.\n\nThis patch forces kernel_init_freeable() as noinline reducing the .text\n\nbloat-o-meter vmlinux vmlinux_new\nadd/remove: 1/0 grow/shrink: 0/1 up/down: 374/-334 (40)\nfunction                        old     new   delta\nkernel_init_freeable              -     374    +374 (.init.text)\nkernel_init                     628     294    -334 (.text)\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a49f0d1ea3ec94fc7cf33a7c36a16343b74bd565",
      "tree": "f25647b22daf2c4137b7f94b23650e8d56975d61",
      "parents": [
        "4fe19a136a8871e5fc6e44d72979f18a4968c2ab"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:19:00 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:19:00 2012 -0800"
      },
      "message": "Linux 3.8-rc1\n"
    },
    {
      "commit": "4fe19a136a8871e5fc6e44d72979f18a4968c2ab",
      "tree": "785366514a250acd3f38f91686f2c886dc34cfb9",
      "parents": [
        "769cb858c23ba7379ea27208624b444cd7b61af2",
        "d692170037c0338b31dac5ac4722c1360a4b5257"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:10:29 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:10:29 2012 -0800"
      },
      "message": "Merge git://www.linux-watchdog.org/linux-watchdog\n\nPull watchdog updates from Wim Van Sebroeck:\n \"This includes some fixes and code improvements (like\n  clk_prepare_enable and clk_disable_unprepare), conversion from the\n  omap_wdt and twl4030_wdt drivers to the watchdog framework, addition\n  of the SB8x0 chipset support and the DA9055 Watchdog driver and some\n  OF support for the davinci_wdt driver.\"\n\n* git://www.linux-watchdog.org/linux-watchdog: (22 commits)\n  watchdog: mei: avoid oops in watchdog unregister code path\n  watchdog: Orion: Fix possible null-deference in orion_wdt_probe\n  watchdog: sp5100_tco: Add SB8x0 chipset support\n  watchdog: davinci_wdt: add OF support\n  watchdog: da9052: Fix invalid free of devm_ allocated data\n  watchdog: twl4030_wdt: Change TWL4030_MODULE_PM_RECEIVER to TWL_MODULE_PM_RECEIVER\n  watchdog: remove depends on CONFIG_EXPERIMENTAL\n  watchdog: Convert dev_printk(KERN_\u003cLEVEL\u003e to dev_\u003clevel\u003e(\n  watchdog: DA9055 Watchdog driver\n  watchdog: omap_wdt: eliminate goto\n  watchdog: omap_wdt: delete redundant platform_set_drvdata() calls\n  watchdog: omap_wdt: convert to devm_ functions\n  watchdog: omap_wdt: convert to new watchdog core\n  watchdog: WatchDog Timer Driver Core: fix comment\n  watchdog: s3c2410_wdt: use clk_prepare_enable and clk_disable_unprepare\n  watchdog: imx2_wdt: Select the driver via ARCH_MXC\n  watchdog: cpu5wdt.c: add missing del_timer call\n  watchdog: hpwdt.c: Increase version string\n  watchdog: Convert twl4030_wdt to watchdog core\n  davinci_wdt: preparation for switch to common clock framework\n  ...\n"
    },
    {
      "commit": "769cb858c23ba7379ea27208624b444cd7b61af2",
      "tree": "ba4227309416ae19d56ac7191dbb4fd0c1784a8c",
      "parents": [
        "b49249d10324d0fd6fb29725c2807dfd80d0edbc",
        "9acbd26b0a5ac4a3d52d31034feb3d935e39032a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:09:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:09:07 2012 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6\n\nPull CIFS fixes from Steve French:\n \"Misc small cifs fixes\"\n\n* \u0027for-next\u0027 of git://git.samba.org/sfrench/cifs-2.6:\n  cifs: eliminate cifsERROR variable\n  cifs: don\u0027t compare uniqueids in cifs_prime_dcache unless server inode numbers are in use\n  cifs: fix double-free of \"string\" in cifs_parse_mount_options\n"
    },
    {
      "commit": "b49249d10324d0fd6fb29725c2807dfd80d0edbc",
      "tree": "9a8fa724e6c9f9283530979c6e32a311c74999d5",
      "parents": [
        "10532b560bacf23766f9c7dc09778b31b198ff45",
        "45e621d45e24ffc4cb2b2935e8438987b860063a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:08:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:08:06 2012 -0800"
      },
      "message": "Merge tag \u0027dm-3.8-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm\n\nPull dm update from Alasdair G Kergon:\n \"Miscellaneous device-mapper fixes, cleanups and performance\n  improvements.\n\n  Of particular note:\n   - Disable broken WRITE SAME support in all targets except linear and\n     striped.  Use it when kcopyd is zeroing blocks.\n   - Remove several mempools from targets by moving the data into the\n     bio\u0027s new front_pad area(which dm calls \u0027per_bio_data\u0027).\n   - Fix a race in thin provisioning if discards are misused.\n   - Prevent userspace from interfering with the ioctl parameters and\n     use kmalloc for the data buffer if it\u0027s small instead of vmalloc.\n   - Throttle some annoying error messages when I/O fails.\"\n\n* tag \u0027dm-3.8-fixes\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/agk/linux-dm: (36 commits)\n  dm stripe: add WRITE SAME support\n  dm: remove map_info\n  dm snapshot: do not use map_context\n  dm thin: dont use map_context\n  dm raid1: dont use map_context\n  dm flakey: dont use map_context\n  dm raid1: rename read_record to bio_record\n  dm: move target request nr to dm_target_io\n  dm snapshot: use per_bio_data\n  dm verity: use per_bio_data\n  dm raid1: use per_bio_data\n  dm: introduce per_bio_data\n  dm kcopyd: add WRITE SAME support to dm_kcopyd_zero\n  dm linear: add WRITE SAME support\n  dm: add WRITE SAME support\n  dm: prepare to support WRITE SAME\n  dm ioctl: use kmalloc if possible\n  dm ioctl: remove PF_MEMALLOC\n  dm persistent data: improve improve space map block alloc failure message\n  dm thin: use DMERR_LIMIT for errors\n  ...\n"
    },
    {
      "commit": "10532b560bacf23766f9c7dc09778b31b198ff45",
      "tree": "14eb44215dbcb3143222f3a865ae7f728a60628e",
      "parents": [
        "184e2516614f7055d4c3a2e63fd8a3eb95fff6d6"
      ],
      "author": {
        "name": "J. Bruce Fields",
        "email": "bfields@redhat.com",
        "time": "Fri Dec 21 19:48:59 2012 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 17:07:45 2012 -0800"
      },
      "message": "Revert \"nfsd: warn on odd reply state in nfsd_vfs_read\"\n\nThis reverts commit 79f77bf9a4e3dd5ead006b8f17e7c4ff07d8374e.\n\nThis is obviously wrong, and I have no idea how I missed seeing the\nwarning in testing: I must just not have looked at the right logs.  The\ncaller bumps rq_resused/rq_next_page, so it will always be hit on a\nlarge enough read.\n\nReported-by: Dave Jones \u003cdavej@redhat.com\u003e\nSigned-off-by: J. Bruce Fields \u003cbfields@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "184e2516614f7055d4c3a2e63fd8a3eb95fff6d6",
      "tree": "9822dd3cc97f8cfed3cbda6167818b60355cc7ec",
      "parents": [
        "0264405b84505f60ae00625f261e75a32c7ddf56",
        "d72623b665d84b1e07fe43854e83387fce8dd134"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 16:40:26 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 16:40:26 2012 -0800"
      },
      "message": "Merge tag \u0027rdma-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband\n\nPull more infiniband changes from Roland Dreier:\n \"Second batch of InfiniBand/RDMA changes for 3.8:\n   - cxgb4 changes to fix lookup engine hash collisions\n   - mlx4 changes to make flow steering usable\n   - fix to IPoIB to avoid pinning dst reference for too long\"\n\n* tag \u0027rdma-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:\n  RDMA/cxgb4: Fix bug for active and passive LE hash collision path\n  RDMA/cxgb4: Fix LE hash collision bug for passive open connection\n  RDMA/cxgb4: Fix LE hash collision bug for active open connection\n  mlx4_core: Allow choosing flow steering mode\n  mlx4_core: Adjustments to Flow Steering activation logic for SR-IOV\n  mlx4_core: Fix error flow in the flow steering wrapper\n  mlx4_core: Add QPN enforcement for flow steering rules set by VFs\n  cxgb4: Add LE hash collision bug fix path in LLD driver\n  cxgb4: Add T4 filter support\n  IPoIB: Call skb_dst_drop() once skb is enqueued for sending\n"
    },
    {
      "commit": "0264405b84505f60ae00625f261e75a32c7ddf56",
      "tree": "202eda6bf55fcc8b6235dfe4218cea9442c0ea3c",
      "parents": [
        "7e65df3899cef3193ec44a7870f9bdc1ee6af833",
        "fb9de7ebc3a2eb7ddb83c92e288447a0c313bced"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 16:39:08 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 16:39:08 2012 -0800"
      },
      "message": "Merge tag \u0027asm-generic\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic\n\nPull asm-generic cleanup from Arnd Bergmann:\n \"These are a few cleanups for asm-generic:\n\n   - a set of patches from Lars-Peter Clausen to generalize asm/mmu.h\n     and use it in the architectures that don\u0027t need any special\n     handling.\n   - A patch from Will Deacon to remove the {read,write}s{b,w,l} as\n     discussed during the arm64 review\n   - A patch from James Hogan that helps with the meta architecture\n     series.\"\n\n* tag \u0027asm-generic\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:\n  xtensa: Use generic asm/mmu.h for nommu\n  h8300: Use generic asm/mmu.h\n  c6x: Use generic asm/mmu.h\n  asm-generic/mmu.h: Add support for FDPIC\n  asm-generic/mmu.h: Remove unused vmlist field from mm_context_t\n  asm-generic: io: remove {read,write} string functions\n  asm-generic/io.h: remove asm/cacheflush.h include\n"
    },
    {
      "commit": "7e65df3899cef3193ec44a7870f9bdc1ee6af833",
      "tree": "7de7d03d60ab02d8a52eb06bed33e1fdede00247",
      "parents": [
        "c4271c6e37c32105492cbbed35f45330cb327b94"
      ],
      "author": {
        "name": "Kukjin Kim",
        "email": "kgene.kim@samsung.com",
        "time": "Fri Dec 21 10:02:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 16:38:29 2012 -0800"
      },
      "message": "ARM: dts: fix duplicated build target and alphabetical sort out for exynos\n\nCommit db5b0ae00712 (\"Merge tag \u0027dt\u0027 of git://git.kernel.org/.../arm-soc\")\ncauses a duplicated build target.  This patch fixes it and sorts out the\nbuild target alphabetically so that we can recognize something wrong\neasily.\n\nCc: Olof Johansson \u003colof@lixom.net\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Kukjin Kim \u003ckgene.kim@samsung.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "45e621d45e24ffc4cb2b2935e8438987b860063a",
      "tree": "96c49f06c5bb6b2f6f8d01dc354d59202a7954a5",
      "parents": [
        "7de3ee57da4b717050e79c9313a9bf66ccc72519"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:41 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:41 2012 +0000"
      },
      "message": "dm stripe: add WRITE SAME support\n\nRename stripe_map_discard to stripe_map_range and reuse it for WRITE\nSAME bio processing.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7de3ee57da4b717050e79c9313a9bf66ccc72519",
      "tree": "dd9bf250c6d9139528e563167cabdb811c8fd6cb",
      "parents": [
        "ee18026ac69efba804144541171299efd41747d2"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:41 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:41 2012 +0000"
      },
      "message": "dm: remove map_info\n\nThis patch removes map_info from bio-based device mapper targets.\nmap_info is still used for request-based targets.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ee18026ac69efba804144541171299efd41747d2",
      "tree": "8e6e9e85114a6b6568b8325aca750428150d4b95",
      "parents": [
        "59c3d2c6a12ff580b2c19c3925af4f4552639f8a"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:41 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:41 2012 +0000"
      },
      "message": "dm snapshot: do not use map_context\n\nEliminate struct map_info from dm-snap.\n\nmap_info-\u003eptr was used in dm-snap to indicate if the bio was tracked.\nIf map_info-\u003eptr was non-NULL, the bio was linked in tracked_chunk_hash.\n\nThis patch removes the use of map_info-\u003eptr. We determine if the bio was\ntracked based on hlist_unhashed(\u0026c-\u003enode). If hlist_unhashed is true,\nthe bio is not tracked, if it is false, the bio is tracked.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "59c3d2c6a12ff580b2c19c3925af4f4552639f8a",
      "tree": "c36bffdac55cf1bed47abd0cb194c2c93aa1815c",
      "parents": [
        "0045d61b5b7470f7228b35e1ab7139119e249503"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:40 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:40 2012 +0000"
      },
      "message": "dm thin: dont use map_context\n\nThis patch removes endio_hook_pool from dm-thin and uses per-bio data instead.\n\nThis patch removes any use of map_info in preparation for the next patch\nthat removes map_info from bio-based device mapper.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "0045d61b5b7470f7228b35e1ab7139119e249503",
      "tree": "d4e0f926484cf243141e83aeda5fd82703fc9151",
      "parents": [
        "c7cfdf5973f644a21ef4a0a0f1aa1f081efc42c1"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:40 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:40 2012 +0000"
      },
      "message": "dm raid1: dont use map_context\n\nDon\u0027t use map_info any more in dm-raid1.\n\nmap_info was used for writes to hold the region number. For this purpose\nwe add a new field dm_bio_details to dm_raid1_bio_record.\n\nmap_info was used for reads to hold a pointer to dm_raid1_bio_record (if\nthe pointer was non-NULL, bio details were saved; if the pointer was\nNULL, bio details were not saved). We use\ndm_raid1_bio_record.details-\u003ebi_bdev for this purpose. If bi_bdev is\nNULL, details were not saved, if bi_bdev is non-NULL, details were\nsaved.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c7cfdf5973f644a21ef4a0a0f1aa1f081efc42c1",
      "tree": "fe9c287cca218170bd244ee688888cd775271f89",
      "parents": [
        "89c7cd8974035f1fbfac5c01e668b2de0733b443"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:39 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:39 2012 +0000"
      },
      "message": "dm flakey: dont use map_context\n\nReplace map_info with a per-bio structure \"struct per_bio_data\" in dm-flakey.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "89c7cd8974035f1fbfac5c01e668b2de0733b443",
      "tree": "124543b8fd1283c35fcf1f3ee456c62c73fff299",
      "parents": [
        "ddbd658f6446a35e4d6ba84812fd71023320cae2"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:39 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:39 2012 +0000"
      },
      "message": "dm raid1: rename read_record to bio_record\n\nRename struct read_record to bio_record in dm-raid1.\n\nIn the following patch, the structure will be used for both read and\nwrite bios, so rename it.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "ddbd658f6446a35e4d6ba84812fd71023320cae2",
      "tree": "6c5bf9fd1cab10d20c21eb8582a5cc73f1bccc85",
      "parents": [
        "42bc954f2a4525c9034667dedc9bd1c342208013"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:39 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:39 2012 +0000"
      },
      "message": "dm: move target request nr to dm_target_io\n\nThis patch moves target_request_nr from map_info to dm_target_io and\nmakes it accessible with dm_bio_get_target_request_nr.\n\nThis patch is a preparation for the next patch that removes map_info.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "42bc954f2a4525c9034667dedc9bd1c342208013",
      "tree": "761a324dd360d9f67105c6598a2d62957559acbf",
      "parents": [
        "e42c3f914da79102c54a7002329a086790c15327"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:38 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:38 2012 +0000"
      },
      "message": "dm snapshot: use per_bio_data\n\nReplace tracked_chunk_pool with per_bio_data in dm-snap.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "e42c3f914da79102c54a7002329a086790c15327",
      "tree": "1679b19150c578bc34bc041c203999563c30634c",
      "parents": [
        "39cf0ed27ec70626e416c2f4780ea0449d405941"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:38 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:38 2012 +0000"
      },
      "message": "dm verity: use per_bio_data\n\nReplace io_mempool with per_bio_data in dm-verity.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "39cf0ed27ec70626e416c2f4780ea0449d405941",
      "tree": "3ccd2ada4c4b09e59076304a45e1e267602931f3",
      "parents": [
        "c0820cf5ad09522bdd9ff68e84841a09c9f339d8"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:38 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:38 2012 +0000"
      },
      "message": "dm raid1: use per_bio_data\n\nReplace read_record_pool with per_bio_data in dm-raid1.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c0820cf5ad09522bdd9ff68e84841a09c9f339d8",
      "tree": "04817d6d9a7d213ac96d1e014a9714f8f29ff07a",
      "parents": [
        "70d6c400acc386ea910c77318688541fc32e7ce8"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:38 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:38 2012 +0000"
      },
      "message": "dm: introduce per_bio_data\n\nIntroduce a field per_bio_data_size in struct dm_target.\n\nTargets can set this field in the constructor. If a target sets this\nfield to a non-zero value, \"per_bio_data_size\" bytes of auxiliary data\nare allocated for each bio submitted to the target. These data can be\nused for any purpose by the target and help us improve performance by\nremoving some per-target mempools.\n\nPer-bio data is accessed with dm_per_bio_data. The\nargument data_size must be the same as the value per_bio_data_size in\ndm_target.\n\nIf the target has a pointer to per_bio_data, it can get a pointer to\nthe bio with dm_bio_from_per_bio_data() function (data_size must be the\nsame as the value passed to dm_per_bio_data).\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "70d6c400acc386ea910c77318688541fc32e7ce8",
      "tree": "6ab32a9b9699656c8d9147b38a776f615c1c737a",
      "parents": [
        "4f0b70b0479101522b8645ddc1f5ee7137821db3"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:37 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:37 2012 +0000"
      },
      "message": "dm kcopyd: add WRITE SAME support to dm_kcopyd_zero\n\nAdd WRITE SAME support to dm-io and make it accessible to\ndm_kcopyd_zero().  dm_kcopyd_zero() provides an asynchronous interface\nwhereas the blkdev_issue_write_same() interface is synchronous.\n\nWRITE SAME is a SCSI command that can be leveraged for more efficient\nzeroing of a specified logical extent of a device which supports it.\nOnly a single zeroed logical block is transfered to the target for each\nWRITE SAME and the target then writes that same block across the\nspecified extent.\n\nThe dm thin target uses this.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "4f0b70b0479101522b8645ddc1f5ee7137821db3",
      "tree": "b149c9faa420893ec5d35a227d9de5bd8cfde461",
      "parents": [
        "23508a96cd2e857d57044a2ed7d305f2d9daf441"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:37 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:37 2012 +0000"
      },
      "message": "dm linear: add WRITE SAME support\n\nThe linear target can already support WRITE SAME requests so signal\nthis by setting num_write_same_requests to 1.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "23508a96cd2e857d57044a2ed7d305f2d9daf441",
      "tree": "149ead46c45a0fdd159fb32a6bfb6439eae3d652",
      "parents": [
        "d54eaa5a0fde0a202e4e91f200f818edcef15bee"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:37 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:37 2012 +0000"
      },
      "message": "dm: add WRITE SAME support\n\nWRITE SAME bios have a payload that contain a single page.  When\ncloning WRITE SAME bios DM has no need to modify the bi_io_vec\nattributes (and doing so would be detrimental).  DM need only alter the\nstart and end of the WRITE SAME bio accordingly.\n\nRather than duplicate __clone_and_map_discard, factor out a common\nfunction that is also used by __clone_and_map_write_same.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "d54eaa5a0fde0a202e4e91f200f818edcef15bee",
      "tree": "bb40893166dc8cd1d0f84c8087d021b66774a007",
      "parents": [
        "9c5091f2eeeffe5eca2ffe8a1bc28d312c8a5083"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:36 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:36 2012 +0000"
      },
      "message": "dm: prepare to support WRITE SAME\n\nAllow targets to opt in to WRITE SAME support by setting\n\u0027num_write_same_requests\u0027 in the dm_target structure.\n\nA dm device will only advertise WRITE SAME support if all its\ntargets and all its underlying devices support it.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9c5091f2eeeffe5eca2ffe8a1bc28d312c8a5083",
      "tree": "8452b7ece373cf845bd745ff78750ae325a881d3",
      "parents": [
        "5023e5cf58e1dae904e2e8b5b9779c33512b75a1"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:36 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:36 2012 +0000"
      },
      "message": "dm ioctl: use kmalloc if possible\n\nIf the parameter buffer is small enough, try to allocate it with kmalloc()\nrather than vmalloc().\n\nvmalloc is noticeably slower than kmalloc because it has to manipulate\npage tables.\n\nIn my tests, on PA-RISC this patch speeds up activation 13 times.\nOn Opteron this patch speeds up activation by 5%.\n\nThis patch introduces a new function free_params() to free the\nparameters and this uses new flags that record whether or not vmalloc()\nwas used and whether or not the input buffer must be wiped after use.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "5023e5cf58e1dae904e2e8b5b9779c33512b75a1",
      "tree": "4b006347d01a1526a3ee42b5219b90ea9cf4cae7",
      "parents": [
        "7960123f2d335ded2ac4c510bcd2a236b293b1b1"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:36 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:36 2012 +0000"
      },
      "message": "dm ioctl: remove PF_MEMALLOC\n\nWhen allocating memory for the userspace ioctl data, set some\nappropriate GPF flags directly instead of using PF_MEMALLOC.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7960123f2d335ded2ac4c510bcd2a236b293b1b1",
      "tree": "9a5a925cba57f3ae44d7c7a0a7dafea3d6e33dbf",
      "parents": [
        "c397741c7645de7f2ead1f076f1a40e169875fe3"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Dec 21 20:23:36 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:36 2012 +0000"
      },
      "message": "dm persistent data: improve improve space map block alloc failure message\n\nImprove space map error message when unable to allocate a new\nmetadata block.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c397741c7645de7f2ead1f076f1a40e169875fe3",
      "tree": "dba3e0c8ee01a50fa22f2668c34a0d2ab06dc7ba",
      "parents": [
        "89ddeb8cb1383bfdfaaeb458f1c4a91e890cc60b"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:34 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:34 2012 +0000"
      },
      "message": "dm thin: use DMERR_LIMIT for errors\n\nThrottle all errors logged from the IO path by dm thin.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "89ddeb8cb1383bfdfaaeb458f1c4a91e890cc60b",
      "tree": "6dfbbe972b14927897b6cab55b833b64260d8329",
      "parents": [
        "a5bd968aeb87af4a3a96ecdd78912832997e8a9d"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:34 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:34 2012 +0000"
      },
      "message": "dm persistent data: use DMERR_LIMIT for errors\n\nNearly all of persistent-data is in the IO path so throttle error\nmessages with DMERR_LIMIT to limit the amount logged when\nsomething has gone wrong.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "a5bd968aeb87af4a3a96ecdd78912832997e8a9d",
      "tree": "cb12dce916dfdbde42d1cf283d6756590bfd82fb",
      "parents": [
        "3a0f9aaee02857609d79b20c809c02a8b7c39d06"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:34 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:34 2012 +0000"
      },
      "message": "dm block manager: reinstate message when validator fails\n\nReinstate a useful error message when the block manager buffer validator fails.\nThis was mistakenly eliminated when the block manager was converted to use\ndm-bufio.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "3a0f9aaee02857609d79b20c809c02a8b7c39d06",
      "tree": "274ae68dfc2d955bb8f9a771388947e947b359b4",
      "parents": [
        "2aab38502d0e1bf6cf98183769e35a9ff999dcb1"
      ],
      "author": {
        "name": "Jonathan Brassow",
        "email": "jbrassow@redhat.com",
        "time": "Fri Dec 21 20:23:33 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:33 2012 +0000"
      },
      "message": "dm raid: round region_size to power of two\n\nIf the user does not supply a bitmap region_size to the dm raid target,\na reasonable size is computed automatically.  If this is not a power of 2,\nthe md code will report an error later.\n\nThis patch catches the problem early and rounds the region_size to the\nnext power of two.\n\nSigned-off-by: Jonathan Brassow \u003cjbrassow@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "2aab38502d0e1bf6cf98183769e35a9ff999dcb1",
      "tree": "3836c52183eaee1601060f1ead3c175b4be85ac3",
      "parents": [
        "f286ba0eede3d8f211e6029c2b52f2dbee7d7d35"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Dec 21 20:23:33 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:33 2012 +0000"
      },
      "message": "dm thin: cleanup dead code\n\nRemove unused @data_block parameter from cell_defer.\nChange thin_bio_map to use many returns rather than setting a variable.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "f286ba0eede3d8f211e6029c2b52f2dbee7d7d35",
      "tree": "8f21c0973f2d0fb326834a03fb235f2cafd34ec4",
      "parents": [
        "9aa0c0e60ffc2594acaad23127dbea9f3b61821c"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Dec 21 20:23:33 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:33 2012 +0000"
      },
      "message": "dm thin: rename cell_defer_except to cell_defer_no_holder\n\nRename cell_defer_except() to cell_defer_no_holder() which describes\nits function more clearly.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "9aa0c0e60ffc2594acaad23127dbea9f3b61821c",
      "tree": "4464d72c53cc977dea9ddf071ed8d88ee6c312d9",
      "parents": [
        "19cbbc60c680e2e404bf55458ad2c4ff60d16076"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:33 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:33 2012 +0000"
      },
      "message": "dm snapshot: optimize track_chunk\n\ntrack_chunk is always called with interrupts enabled. Consequently, we\ndo not need to save and restore interrupt state in \"flags\" variable.\nThis patch changes spin_lock_irqsave to spin_lock_irq and\nspin_unlock_irqrestore to spin_unlock_irq.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "19cbbc60c680e2e404bf55458ad2c4ff60d16076",
      "tree": "ad95b111e977da491f5f777873a8c7bf79c60c4e",
      "parents": [
        "7c27213b20f060111d5b6fa14bcdbab6588ae351"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:32 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:32 2012 +0000"
      },
      "message": "dm raid: use DM_ENDIO_INCOMPLETE\n\nUse a defined macro DM_ENDIO_INCOMPLETE instead of a numeric constant.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "7c27213b20f060111d5b6fa14bcdbab6588ae351",
      "tree": "2500a6e11d141c83bf6f22df62b93cc015a9ea99",
      "parents": [
        "018debea8de9b8f17a9637e07c98c61517eb2a6b"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:32 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:32 2012 +0000"
      },
      "message": "dm raid1: remove impossible mempool_alloc error test\n\nmempool_alloc can\u0027t fail if __GFP_WAIT is specified, so the condition\nthat tests if read_record is non-NULL is always true.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "018debea8de9b8f17a9637e07c98c61517eb2a6b",
      "tree": "80fa9a7e9b79e09e31081db699d1ad449cb7f46a",
      "parents": [
        "e3cbf94513c21516fbb44561857b155d1c599625"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:32 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:32 2012 +0000"
      },
      "message": "dm thin: emit ignore_discard in status when discards disabled\n\nIf \"ignore_discard\" is specified when creating the thin pool device then\ndiscard support is disabled for that device.  The pool device\u0027s status\nshould reflect this fact rather than stating \"no_discard_passdown\"\n(which implies discards are enabled but passdown is disabled).\n\nReported-by: Zdenek Kabelac \u003czkabelac@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "e3cbf94513c21516fbb44561857b155d1c599625",
      "tree": "fbcfb3427b34d8469e404d5b8f63c4dc9c0f98c8",
      "parents": [
        "563af186df08002d2600c4e718ad8f3bde109f53"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Dec 21 20:23:32 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:32 2012 +0000"
      },
      "message": "dm persistent data: fix nested btree deletion\n\nWhen deleting nested btrees, the code forgets to delete the innermost\nbtree.  The thin-metadata code serendipitously compensates for this by\nclaiming there is one extra layer in the tree.\n\nThis patch corrects both problems.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "563af186df08002d2600c4e718ad8f3bde109f53",
      "tree": "e8ba7cf56e84a1aacb77d41499387c89bf58cce6",
      "parents": [
        "e8088073c9610af017fd47fddd104a2c3afb32e8"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Dec 21 20:23:31 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:31 2012 +0000"
      },
      "message": "dm thin: wake worker when discard is prepared\n\nWhen discards are prepared it is best to directly wake the worker that\nwill process them.  The worker will be woken anyway, via periodic\ncommit, but there is no reason to not wake_worker here.\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "e8088073c9610af017fd47fddd104a2c3afb32e8",
      "tree": "4478742b0e876536f20031faaaeebe5b2bfc135a",
      "parents": [
        "b7ca9c9273e5eebd63880dd8a6e4e5c18fc7901d"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Dec 21 20:23:31 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:31 2012 +0000"
      },
      "message": "dm thin: fix race between simultaneous io and discards to same block\n\nThere is a race when discard bios and non-discard bios are issued\nsimultaneously to the same block.\n\nDiscard support is expensive for all thin devices precisely because you\nhave to be careful to quiesce the area you\u0027re discarding.  DM thin must\nhandle this conflicting IO pattern (simultaneous non-discard vs discard)\neven though a sane application shouldn\u0027t be issuing such IO.\n\nThe race manifests as follows:\n\n1. A non-discard bio is mapped in thin_bio_map.\n   This doesn\u0027t lock out parallel activity to the same block.\n\n2. A discard bio is issued to the same block as the non-discard bio.\n\n3. The discard bio is locked in a dm_bio_prison_cell in process_discard\n   to lock out parallel activity against the same block.\n\n4. The non-discard bio\u0027s mapping continues and its all_io_entry is\n   incremented so the bio is accounted for in the thin pool\u0027s all_io_ds\n   which is a dm_deferred_set used to track time locality of non-discard IO.\n\n5. The non-discard bio is finally locked in a dm_bio_prison_cell in\n   process_bio.\n\nThe race can result in deadlock, leaving the block layer hanging waiting\nfor completion of a discard bio that never completes, e.g.:\n\nINFO: task ruby:15354 blocked for more than 120 seconds.\n\"echo 0 \u003e /proc/sys/kernel/hung_task_timeout_secs\" disables this message.\nruby            D ffffffff8160f0e0     0 15354  15314 0x00000000\n ffff8802fb08bc58 0000000000000082 ffff8802fb08bfd8 0000000000012900\n ffff8802fb08a010 0000000000012900 0000000000012900 0000000000012900\n ffff8802fb08bfd8 0000000000012900 ffff8803324b9480 ffff88032c6f14c0\nCall Trace:\n [\u003cffffffff814e5a19\u003e] schedule+0x29/0x70\n [\u003cffffffff814e3d85\u003e] schedule_timeout+0x195/0x220\n [\u003cffffffffa06b9bc1\u003e] ? _dm_request+0x111/0x160 [dm_mod]\n [\u003cffffffff814e589e\u003e] wait_for_common+0x11e/0x190\n [\u003cffffffff8107a170\u003e] ? try_to_wake_up+0x2b0/0x2b0\n [\u003cffffffff814e59ed\u003e] wait_for_completion+0x1d/0x20\n [\u003cffffffff81233289\u003e] blkdev_issue_discard+0x219/0x260\n [\u003cffffffff81233e79\u003e] blkdev_ioctl+0x6e9/0x7b0\n [\u003cffffffff8119a65c\u003e] block_ioctl+0x3c/0x40\n [\u003cffffffff8117539c\u003e] do_vfs_ioctl+0x8c/0x340\n [\u003cffffffff8119a547\u003e] ? block_llseek+0x67/0xb0\n [\u003cffffffff811756f1\u003e] sys_ioctl+0xa1/0xb0\n [\u003cffffffff810561f6\u003e] ? sys_rt_sigprocmask+0x86/0xd0\n [\u003cffffffff814ef099\u003e] system_call_fastpath+0x16/0x1b\n\nThe thinp-test-suite\u0027s test_discard_random_sectors reliably hits this\ndeadlock on fast SSD storage.\n\nThe fix for this race is that the all_io_entry for a bio must be\nincremented whilst the dm_bio_prison_cell is held for the bio\u0027s\nassociated virtual and physical blocks.  That cell locking wasn\u0027t\noccurring early enough in thin_bio_map.  This patch fixes this.\n\nCare is taken to always call the new function inc_all_io_entry() with\nthe relevant cells locked, but they are generally unlocked before\ncalling issue() to try to avoid holding the cells locked across\ngeneric_submit_request.\n\nAlso, now that thin_bio_map may lock bios in a cell, process_bio() is no\nlonger the only thread that will do so.  Because of this we must be sure\nto use cell_defer_except() to release all non-holder entries, that\nwere added by the other thread, because they must be deferred.\n\nThis patch depends on \"dm thin: replace dm_cell_release_singleton with\ncell_defer_except\".\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "b7ca9c9273e5eebd63880dd8a6e4e5c18fc7901d",
      "tree": "8022d8d5f6f03d80896407562b48c554a8cbfa6f",
      "parents": [
        "c1a94672a830e01d58c7c7e8de530c3f136d6ff2"
      ],
      "author": {
        "name": "Joe Thornber",
        "email": "ejt@redhat.com",
        "time": "Fri Dec 21 20:23:31 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:31 2012 +0000"
      },
      "message": "dm thin: replace dm_cell_release_singleton with cell_defer_except\n\nChange existing users of the function dm_cell_release_singleton to share\ncell_defer_except instead, and then remove the now-unused function.\n\nEverywhere that calls dm_cell_release_singleton, the bio in question\nis the holder of the cell.\n\nIf there are no non-holder entries in the cell then cell_defer_except\nbehaves exactly like dm_cell_release_singleton.  Conversely, if there\n*are* non-holder entries then dm_cell_release_singleton must not be used\nbecause those entries would need to be deferred.\n\nConsequently, it is safe to replace use of dm_cell_release_singleton\nwith cell_defer_except.\n\nThis patch is a pre-requisite for \"dm thin: fix race between\nsimultaneous io and discards to same block\".\n\nSigned-off-by: Joe Thornber \u003cejt@redhat.com\u003e\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c1a94672a830e01d58c7c7e8de530c3f136d6ff2",
      "tree": "00f9fa087a3bbae3fe55bda80f6b222512eea51a",
      "parents": [
        "e910d7ebecd1aac43125944a8641b6cb1a0dfabe"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Fri Dec 21 20:23:30 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:30 2012 +0000"
      },
      "message": "dm: disable WRITE SAME\n\nWRITE SAME bios are not yet handled correctly by device-mapper so\ndisable their use on device-mapper devices by setting\nmax_write_same_sectors to zero.\n\nAs an example, a ciphertext device is incompatible because the data\ngets changed according to the location at which it written and so the\ndm crypt target cannot support it.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nCc: stable@vger.kernel.org\nCc: Milan Broz \u003cmbroz@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "e910d7ebecd1aac43125944a8641b6cb1a0dfabe",
      "tree": "25d1565c4aec693a4a20d714d128637eb94f2cb9",
      "parents": [
        "550929faf89e2e2cdb3e9945ea87d383989274cf"
      ],
      "author": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:30 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:30 2012 +0000"
      },
      "message": "dm ioctl: prevent unsafe change to dm_ioctl data_size\n\nAbort dm ioctl processing if userspace changes the data_size parameter\nafter we validated it but before we finished copying the data buffer\nfrom userspace.\n\nThe dm ioctl parameters are processed in the following sequence:\n 1. ctl_ioctl() calls copy_params();\n 2. copy_params() makes a first copy of the fixed-sized portion of the\n    userspace parameters into the local variable \"tmp\";\n 3. copy_params() then validates tmp.data_size and allocates a new\n    structure big enough to hold the complete data and copies the whole\n    userspace buffer there;\n 4. ctl_ioctl() reads userspace data the second time and copies the whole\n    buffer into the pointer \"param\";\n 5. ctl_ioctl() reads param-\u003edata_size without any validation and stores it\n    in the variable \"input_param_size\";\n 6. \"input_param_size\" is further used as the authoritative size of the\n    kernel buffer.\n\nThe problem is that userspace code could change the contents of user\nmemory between steps 2 and 4.  In particular, the data_size parameter\ncan be changed to an invalid value after the kernel has validated it.\nThis lets userspace force the kernel to access invalid kernel memory.\n\nThe fix is to ensure that the size has not changed at step 4.\n\nThis patch shouldn\u0027t have a security impact because CAP_SYS_ADMIN is\nrequired to run this code, but it should be fixed anyway.\n\nReported-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "550929faf89e2e2cdb3e9945ea87d383989274cf",
      "tree": "f6ca310fe3955cb2a2925391e7fd4c6191fbd373",
      "parents": [
        "29594404d7fe73cd80eaa4ee8c43dcc53970c60e"
      ],
      "author": {
        "name": "Mikulas Patocka",
        "email": "mpatocka@redhat.com",
        "time": "Fri Dec 21 20:23:30 2012 +0000"
      },
      "committer": {
        "name": "Alasdair G Kergon",
        "email": "agk@redhat.com",
        "time": "Fri Dec 21 20:23:30 2012 +0000"
      },
      "message": "dm persistent data: rename node to btree_node\n\nThis patch fixes a compilation failure on sparc32 by renaming struct node.\n\nstruct node is already defined in include/linux/node.h. On sparc32, it\nhappens to be included through other dependencies and persistent-data\ndoesn\u0027t compile because of conflicting declarations.\n\nSigned-off-by: Mikulas Patocka \u003cmpatocka@redhat.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Alasdair G Kergon \u003cagk@redhat.com\u003e\n"
    },
    {
      "commit": "c4271c6e37c32105492cbbed35f45330cb327b94",
      "tree": "a3fd8be5fb51c29539ae3e540837e1e59ecd4e8b",
      "parents": [
        "c129c29347b6cf0d64bfe53848f68320286612ab"
      ],
      "author": {
        "name": "Trond Myklebust",
        "email": "Trond.Myklebust@netapp.com",
        "time": "Fri Dec 21 11:02:32 2012 -0500"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 08:32:09 2012 -0800"
      },
      "message": "NFS: Kill fscache warnings when mounting without -ofsc\n\nThe fscache code will currently bleat a \"non-unique superblock keys\"\nwarning even if the user is mounting without the \u0027fsc\u0027 option.\n\nThere should be no reason to even initialise the superblock cache cookie\nunless we\u0027re planning on using fscache for something, so ensure that we\ncheck for the NFS_OPTION_FSCACHE flag before calling into the fscache\ncode.\n\nReported-by: Paweł Sikora \u003cpawel.sikora@agmk.net\u003e\nSigned-off-by: Trond Myklebust \u003cTrond.Myklebust@netapp.com\u003e\nCc: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c129c29347b6cf0d64bfe53848f68320286612ab",
      "tree": "31349e624fade8277c0e21b8fe65a0c499fbf752",
      "parents": [
        "54e37b8dbe9a398f74cef313404bd2f1deca7853"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri Dec 21 12:15:05 2012 +0000"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 21 08:06:48 2012 -0800"
      },
      "message": "NFS: Provide stub nfs_fscache_wait_on_invalidate() for when CONFIG_NFS_FSCACHE\u003dn\n\nProvide a stub nfs_fscache_wait_on_invalidate() function for when\nCONFIG_NFS_FSCACHE\u003dn lest the following error appear:\n\n  fs/nfs/inode.c: In function \u0027nfs_invalidate_mapping\u0027:\n  fs/nfs/inode.c:887:2: error: implicit declaration of function \u0027nfs_fscache_wait_on_invalidate\u0027 [-Werror\u003dimplicit-function-declaration]\n  cc1: some warnings being treated as errors\n\nReported-by: kbuild test robot \u003cfengguang.wu@intel.com\u003e\nReported-by: Vineet Gupta \u003cVineet.Gupta1@synopsys.com\u003e\nReported-by: Borislav Petkov \u003cbp@alien8.de\u003e\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54e37b8dbe9a398f74cef313404bd2f1deca7853",
      "tree": "2f72705eeb100b67b73902635763f08a6302a507",
      "parents": [
        "96680d2b9174668100824d763382240c71baa811",
        "9a92c5091a42c565ede818fdf204c4f60004d0d8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 21:30:12 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 21:30:12 2012 -0800"
      },
      "message": "Merge tag \u0027vfio-for-v3.8-v2\u0027 of git://github.com/awilliam/linux-vfio\n\nPull vfio update from Alex Williamson.\n\n* tag \u0027vfio-for-v3.8-v2\u0027 of git://github.com/awilliam/linux-vfio:\n  vfio-pci: Enable device before attempting reset\n  VFIO: fix out of order labels for error recovery in vfio_pci_init()\n  VFIO: use ACCESS_ONCE() to guard access to dev-\u003edriver\n  VFIO: unregister IOMMU notifier on error recovery path\n  vfio-pci: Re-order device reset\n  vfio: simplify kmalloc+copy_from_user to memdup_user\n"
    },
    {
      "commit": "96680d2b9174668100824d763382240c71baa811",
      "tree": "ec84c2347df47913cc98e3cfc1d43f427d51fa1f",
      "parents": [
        "4c9a44aebeaef35570a67aed17b72a2cf8d0b219",
        "1ca39ab9d21ac93f94b9e3eb364ea9a5cf2aba06"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 20:11:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 20:11:52 2012 -0800"
      },
      "message": "Merge branch \u0027for-next\u0027 of git://git.infradead.org/users/eparis/notify\n\nPull filesystem notification updates from Eric Paris:\n \"This pull mostly is about locking changes in the fsnotify system.  By\n  switching the group lock from a spin_lock() to a mutex() we can now\n  hold the lock across things like iput().  This fixes a problem\n  involving unmounting a fs and having inodes be busy, first pointed out\n  by FAT, but reproducible with tmpfs.\n\n  This also restores signal driven I/O for inotify, which has been\n  broken since about 2.6.32.\"\n\nUgh.  I *hate* the timing of this.  It was rebased after the merge\nwindow opened, and then left to sit with the pull request coming the day\nbefore the merge window closes.  That\u0027s just crap.  But apparently the\npatches themselves have been around for over a year, just gathering\ndust, so now it\u0027s suddenly critical.\n\nFixed up semantic conflict in fs/notify/fdinfo.c as per Stephen\nRothwell\u0027s fixes from -next.\n\n* \u0027for-next\u0027 of git://git.infradead.org/users/eparis/notify:\n  inotify: automatically restart syscalls\n  inotify: dont skip removal of watch descriptor if creation of ignored event failed\n  fanotify: dont merge permission events\n  fsnotify: make fasync generic for both inotify and fanotify\n  fsnotify: change locking order\n  fsnotify: dont put marks on temporary list when clearing marks by group\n  fsnotify: introduce locked versions of fsnotify_add_mark() and fsnotify_remove_mark()\n  fsnotify: pass group to fsnotify_destroy_mark()\n  fsnotify: use a mutex instead of a spinlock to protect a groups mark list\n  fanotify: add an extra flag to mark_remove_from_mask that indicates wheather a mark should be destroyed\n  fsnotify: take groups mark_lock before mark lock\n  fsnotify: use reference counting for groups\n  fsnotify: introduce fsnotify_get_group()\n  inotify, fanotify: replace fsnotify_put_group() with fsnotify_destroy_group()\n"
    },
    {
      "commit": "4c9a44aebeaef35570a67aed17b72a2cf8d0b219",
      "tree": "abb874fe7f50671627b282f6c7fb58db5e75a2e3",
      "parents": [
        "1f0377ff088ed2971c57debc9b0c3b846ec431fd",
        "cfde819088422503b5c69e03ab7bb90f87121d4d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 20:00:43 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 20:00:43 2012 -0800"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge the rest of Andrew\u0027s patches for -rc1:\n \"A bunch of fixes and misc missed-out-on things.\n\n  That\u0027ll do for -rc1.  I still have a batch of IPC patches which still\n  have a possible bug report which I\u0027m chasing down.\"\n\n* emailed patches from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (25 commits)\n  keys: use keyring_alloc() to create module signing keyring\n  keys: fix unreachable code\n  sendfile: allows bypassing of notifier events\n  SGI-XP: handle non-fatal traps\n  fat: fix incorrect function comment\n  Documentation: ABI: remove testing/sysfs-devices-node\n  proc: fix inconsistent lock state\n  linux/kernel.h: fix DIV_ROUND_CLOSEST with unsigned divisors\n  memcg: don\u0027t register hotcpu notifier from -\u003ecss_alloc()\n  checkpatch: warn on uapi #includes that #include \u003cuapi/...\n  revert \"rtc: recycle id when unloading a rtc driver\"\n  mm: clean up transparent hugepage sysfs error messages\n  hfsplus: add error message for the case of failure of sync fs in delayed_sync_fs() method\n  hfsplus: rework processing of hfs_btree_write() returned error\n  hfsplus: rework processing errors in hfsplus_free_extents()\n  hfsplus: avoid crash on failed block map free\n  kcmp: include linux/ptrace.h\n  drivers/rtc/rtc-imxdi.c: must include \u003clinux/spinlock.h\u003e\n  mm: cma: WARN if freed memory is still in use\n  exec: do not leave bprm-\u003einterp on stack\n  ...\n"
    },
    {
      "commit": "1f0377ff088ed2971c57debc9b0c3b846ec431fd",
      "tree": "cd53c8981269e57e38e4285abd71cc990e1cfc67",
      "parents": [
        "54d46ea993744c5408e39ce0cb4851e13cbea716",
        "b729d75d19777a5dd34672020516eada43ff026f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 18:14:31 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 18:14:31 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs\n\nPull VFS update from Al Viro:\n \"fscache fixes, ESTALE patchset, vmtruncate removal series, assorted\n  misc stuff.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (79 commits)\n  vfs: make lremovexattr retry once on ESTALE error\n  vfs: make removexattr retry once on ESTALE\n  vfs: make llistxattr retry once on ESTALE error\n  vfs: make listxattr retry once on ESTALE error\n  vfs: make lgetxattr retry once on ESTALE\n  vfs: make getxattr retry once on an ESTALE error\n  vfs: allow lsetxattr() to retry once on ESTALE errors\n  vfs: allow setxattr to retry once on ESTALE errors\n  vfs: allow utimensat() calls to retry once on an ESTALE error\n  vfs: fix user_statfs to retry once on ESTALE errors\n  vfs: make fchownat retry once on ESTALE errors\n  vfs: make fchmodat retry once on ESTALE errors\n  vfs: have chroot retry once on ESTALE error\n  vfs: have chdir retry lookup and call once on ESTALE error\n  vfs: have faccessat retry once on an ESTALE error\n  vfs: have do_sys_truncate retry once on an ESTALE error\n  vfs: fix renameat to retry on ESTALE errors\n  vfs: make do_unlinkat retry once on ESTALE errors\n  vfs: make do_rmdir retry once on ESTALE errors\n  vfs: add a flags argument to user_path_parent\n  ...\n"
    },
    {
      "commit": "54d46ea993744c5408e39ce0cb4851e13cbea716",
      "tree": "8e38fa92cc2ae72e0353c44e1e68be9bf5a7a058",
      "parents": [
        "f59dc2bb5a50b26ea751f9eac1c81e4cc7de5257",
        "50ececcfa7d1acee085b2c518cad495062db6379"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 18:05:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 18:05:28 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal\n\nPull signal handling cleanups from Al Viro:\n \"sigaltstack infrastructure + conversion for x86, alpha and um,\n  COMPAT_SYSCALL_DEFINE infrastructure.\n\n  Note that there are several conflicts between \"unify\n  SS_ONSTACK/SS_DISABLE definitions\" and UAPI patches in mainline;\n  resolution is trivial - just remove definitions of SS_ONSTACK and\n  SS_DISABLED from arch/*/uapi/asm/signal.h; they are all identical and\n  include/uapi/linux/signal.h contains the unified variant.\"\n\nFixed up conflicts as per Al.\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:\n  alpha: switch to generic sigaltstack\n  new helpers: __save_altstack/__compat_save_altstack, switch x86 and um to those\n  generic compat_sys_sigaltstack()\n  introduce generic sys_sigaltstack(), switch x86 and um to it\n  new helper: compat_user_stack_pointer()\n  new helper: restore_altstack()\n  unify SS_ONSTACK/SS_DISABLE definitions\n  new helper: current_user_stack_pointer()\n  missing user_stack_pointer() instances\n  Bury the conditionals from kernel_thread/kernel_execve series\n  COMPAT_SYSCALL_DEFINE: infrastructure\n"
    },
    {
      "commit": "f59dc2bb5a50b26ea751f9eac1c81e4cc7de5257",
      "tree": "4c1b3e0ea4bfbd8f9dd72ee95773f4be2dd087d2",
      "parents": [
        "f3dc1294c8a40d7eedd676b65f42f0b828fd3d8c",
        "e6ee4b2b57a8e0d8e551031173de080b338d3969"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:56:23 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:56:23 2012 -0800"
      },
      "message": "Merge branch \u0027fixes\u0027 of git://git.linaro.org/people/rmk/linux-arm\n\nPull ARM fixes from Russell King:\n \"A number of smallish fixes scattered around the ARM code.  Probably\n  the most serious one is the one from Al addressing the missing locking\n  in the swap emulation code.\"\n\n* \u0027fixes\u0027 of git://git.linaro.org/people/rmk/linux-arm:\n  ARM: 7607/1: realview: fix private peripheral memory base for EB rev. B boards\n  ARM: 7606/1: cache: flush to LoUU instead of LoUIS on uniprocessor CPUs\n  ARM: missing -\u003emmap_sem around find_vma() in swp_emulate.c\n  ARM: 7605/1: vmlinux.lds: Move .notes section next to the rodata\n  ARM: 7602/1: Pass real \"__machine_arch_type\" variable to setup_machine_tags() procedure\n  ARM: 7600/1: include CONFIG_DEBUG_LL_INCLUDE rather than mach/debug-macro.S\n"
    },
    {
      "commit": "f3dc1294c8a40d7eedd676b65f42f0b828fd3d8c",
      "tree": "1d6c12f0513930728ef0be116f2ba24e5889cffc",
      "parents": [
        "af487e4209ef5e82b1932b8b15fd59efbd56a955",
        "2727da8595d6a134502ce576b812f0bb0e3c14ed"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:55:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:55:34 2012 -0800"
      },
      "message": "Merge tag \u0027fixes2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc\n\nPull ARM SoC fixes part 2 from Olof Johansson:\n \"Here are a few more fixes for 3.8.  Two branches of fixes for Samsung\n  platforms, including fixes for the audio build errors on all non-DT\n  platforms.  There\u0027s also a fixup to the sunxi device-tree file renames\n  due to a bad patch application by me, and a fix for OMAP due to\n  function renames merged through the powerpc tree.\"\n\n* tag \u0027fixes2\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:\n  ARM: OMAP2+: Fix compillation error in mach-omap2/timer.c\n  ARM: sunxi: rename device tree source files\n  ARM: EXYNOS: Avoid passing the clks through platform data\n  ARM: S5PV210: Avoid passing the clks through platform data\n  ARM: S5P64X0: Add I2S clkdev support\n  ARM: S5PC100: Add I2S clkdev support\n  ARM: S3C64XX: Add I2S clkdev support\n  ARM: EXYNOS: Fix MSHC clocks instance names\n  ARM: EXYNOS: Fix NULL pointer dereference bug in SMDKV310\n  ARM: EXYNOS: Fix NULL pointer dereference bug in SMDK4X12\n  ARM: EXYNOS: Fix NULL pointer dereference bug in Origen\n  ARM: SAMSUNG: Add missing include guard to gpio-core.h\n  pinctrl: exynos5440/samsung: Staticize pcfgs\n  pinctrl: samsung: Fix a typo in pinctrl-samsung.h\n  ARM: EXYNOS: fix skip scu_enable() for EXYNOS5440\n  ARM: EXYNOS: fix GIC using for EXYNOS5440\n  ARM: EXYNOS: fix build error when MFC is not selected\n"
    },
    {
      "commit": "af487e4209ef5e82b1932b8b15fd59efbd56a955",
      "tree": "50bfd221e5542b8a08932aa3fa02ad4208692477",
      "parents": [
        "810a4855513b9cb1a191301eb5e4e28b276cc318",
        "c6ba8d06ecfc1dadcf7f1b54960cf9332ba5ae8d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:52:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:52:06 2012 -0800"
      },
      "message": "Merge branch \u0027misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild\n\nPull kbuild misc changes from Michal Marek:\n \"This is the non-critical part of kbuild\n\n   - scripts/kernel-doc requires a \"Return:\" section for non-void\n     functions\n   - ARCH\u003darm SUBARCH\u003d... support for make tags\n   - COMPILED_SOURCE\u003d1 support for make tags (only indexes .c files for\n     which a .o exists)\n   - New coccinelle check\n   - Option parsing fix for scripts/config\"\n\n* \u0027misc\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:\n  scripts/config: Fix wrong \"shift\" for --keep-case\n  scripts/tags.sh: Support compiled source\n  scripts/tags.sh: Support subarch for ARM\n  scripts/coccinelle/misc/warn.cocci: use WARN\n  scripts/kernel-doc: check that non-void fcts describe their return value\n  Kernel-doc: Convention: Use a \"Return\" section to describe return values\n"
    },
    {
      "commit": "cfde819088422503b5c69e03ab7bb90f87121d4d",
      "tree": "338100ef53d4736c73be67e2ea3bd29428ecf866",
      "parents": [
        "e67eab39bee26f509d38d00ca1a8f24b63f46a31"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Thu Dec 20 15:05:56 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:21 2012 -0800"
      },
      "message": "keys: use keyring_alloc() to create module signing keyring\n\nUse keyring_alloc() to create special keyrings now that it has\na permissions parameter rather than using key_alloc() +\nkey_instantiate_and_link().\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "e67eab39bee26f509d38d00ca1a8f24b63f46a31",
      "tree": "252072ae63bd5ecb8186242ace12e7df3a1311ad",
      "parents": [
        "a68c2f12b4b28994aaf622bbe5724b7258cc2fcf"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Thu Dec 20 15:05:54 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:21 2012 -0800"
      },
      "message": "keys: fix unreachable code\n\nWe set ret to NULL then test it. Remove the bogus test\n\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: David Howells \u003cdhowells@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": "a68c2f12b4b28994aaf622bbe5724b7258cc2fcf",
      "tree": "c78116c77b068c3b57aa3bdddd40c2ecdd0d5a9f",
      "parents": [
        "891348ca0f66206f1dc0e30d63757e3df1ae2d15"
      ],
      "author": {
        "name": "Scott Wolchok",
        "email": "swolchok@umich.edu",
        "time": "Thu Dec 20 15:05:52 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:21 2012 -0800"
      },
      "message": "sendfile: allows bypassing of notifier events\n\ndo_sendfile() in fs/read_write.c does not call the fsnotify functions,\nunlike its neighbors.  This manifests as a lack of inotify ACCESS events\nwhen a file is sent using sendfile(2).\n\nAddresses\n  https://bugzilla.kernel.org/show_bug.cgi?id\u003d12812\n\n[akpm@linux-foundation.org: use fsnotify_modify(out.file), not fsnotify_access(), per Dave]\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nCc: Dave Chinner \u003cdavid@fromorbit.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Scott Wolchok \u003cswolchok@umich.edu\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "891348ca0f66206f1dc0e30d63757e3df1ae2d15",
      "tree": "4c85b91a26bfe3892ffc61e26551cb4ac23eebd3",
      "parents": [
        "c39540c6d1add1d0ad843b3d2437311924193359"
      ],
      "author": {
        "name": "Robin Holt",
        "email": "holt@sgi.com",
        "time": "Thu Dec 20 15:05:50 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "SGI-XP: handle non-fatal traps\n\nWe found a user code which was raising a divide-by-zero trap.  That trap\nwould lead to XPC connections between system-partitions being torn down\ndue to the die_chain notifier callouts it received.\n\nThis also revealed a different issue where multiple callers into\nxpc_die_deactivate() would all attempt to do the disconnect in parallel\nwhich would sometimes lock up but often overwhelm the console on very\nlarge machines as each would print at least one line of output at the\nend of the deactivate.\n\nI reviewed all the users of the die_chain notifier and changed the code\nto ignore the notifier callouts for reasons which will not actually lead\nto a system to continue on to call die().\n\n[akpm@linux-foundation.org: fix ia64]\nSigned-off-by: Robin Holt \u003cholt@sgi.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\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": "c39540c6d1add1d0ad843b3d2437311924193359",
      "tree": "5ae43f403927e7822897cc423565442fc4bdb360",
      "parents": [
        "99bbb2b0d4431e67d11a98f66a6ef8fcd8622649"
      ],
      "author": {
        "name": "Ravishankar N",
        "email": "cyberax82@gmail.com",
        "time": "Thu Dec 20 15:05:46 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "fat: fix incorrect function comment\n\nfat_search_long() returns 0 on success, -ENOENT/ENOMEM on failure.\nChange the function comment accordingly.\n\nWhile at it, fix some trivial typos.\n\nSigned-off-by: Ravishankar N \u003ccyberax82@gmail.com\u003e\nSigned-off-by: Namjae Jeon \u003clinkinjeon@gmail.com\u003e\nAcked-by: OGAWA Hirofumi \u003chirofumi@mail.parknet.co.jp\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "99bbb2b0d4431e67d11a98f66a6ef8fcd8622649",
      "tree": "e8f1820b450c4dbee47ccee170e26c31fbda359e",
      "parents": [
        "ee297209bf0a25c6717b7c063e76795142d32f37"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "davidlohr.bueso@hp.com",
        "time": "Thu Dec 20 15:05:45 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "Documentation: ABI: remove testing/sysfs-devices-node\n\nThis file is already documented in the stable ABI (see commit\n5bbe1ec11fcf).\n\nSigned-off-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nCc: Greg KH \u003cgreg@kroah.com\u003e\nCc: Mel Gorman \u003cmel@csn.ul.ie\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ee297209bf0a25c6717b7c063e76795142d32f37",
      "tree": "7783b18e70c4bd5856727f6db4100a3b45ffb23b",
      "parents": [
        "c4e18497d8fd92eef2c6e7eadcc1a107ccd115ea"
      ],
      "author": {
        "name": "Xiaotian Feng",
        "email": "xtfeng@gmail.com",
        "time": "Thu Dec 20 15:05:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "proc: fix inconsistent lock state\n\nLockdep found an inconsistent lock state when rcu is processing delayed\nwork in softirq.  Currently, kernel is using spin_lock/spin_unlock to\nprotect proc_inum_ida, but proc_free_inum is called by rcu in softirq\ncontext.\n\nUse spin_lock_bh/spin_unlock_bh fix following lockdep warning.\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: inconsistent lock state ]\n  3.7.0 #36 Not tainted\n  ---------------------------------\n  inconsistent {SOFTIRQ-ON-W} -\u003e {IN-SOFTIRQ-W} usage.\n  swapper/1/0 [HC0[0]:SC1[1]:HE1:SE0] takes:\n   (proc_inum_lock){+.?...}, at: proc_free_inum+0x1c/0x50\n  {SOFTIRQ-ON-W} state was registered at:\n     __lock_acquire+0x8ae/0xca0\n     lock_acquire+0x199/0x200\n     _raw_spin_lock+0x41/0x50\n     proc_alloc_inum+0x4c/0xd0\n     alloc_mnt_ns+0x49/0xc0\n     create_mnt_ns+0x25/0x70\n     mnt_init+0x161/0x1c7\n     vfs_caches_init+0x107/0x11a\n     start_kernel+0x348/0x38c\n     x86_64_start_reservations+0x131/0x136\n     x86_64_start_kernel+0x103/0x112\n  irq event stamp: 2993422\n  hardirqs last  enabled at (2993422):  _raw_spin_unlock_irqrestore+0x55/0x80\n  hardirqs last disabled at (2993421):  _raw_spin_lock_irqsave+0x29/0x70\n  softirqs last  enabled at (2993394):  _local_bh_enable+0x13/0x20\n  softirqs last disabled at (2993395):  call_softirq+0x1c/0x30\n\n  other info that might help us debug this:\n   Possible unsafe locking scenario:\n\n         CPU0\n         ----\n    lock(proc_inum_lock);\n    \u003cInterrupt\u003e\n      lock(proc_inum_lock);\n\n   *** DEADLOCK ***\n\n  no locks held by swapper/1/0.\n\n  stack backtrace:\n  Pid: 0, comm: swapper/1 Not tainted 3.7.0 #36\n  Call Trace:\n   \u003cIRQ\u003e  [\u003cffffffff810a40f1\u003e] ? vprintk_emit+0x471/0x510\n    print_usage_bug+0x2a5/0x2c0\n    mark_lock+0x33b/0x5e0\n    __lock_acquire+0x813/0xca0\n    lock_acquire+0x199/0x200\n    _raw_spin_lock+0x41/0x50\n    proc_free_inum+0x1c/0x50\n    free_pid_ns+0x1c/0x50\n    put_pid_ns+0x2e/0x50\n    put_pid+0x4a/0x60\n    delayed_put_pid+0x12/0x20\n    rcu_process_callbacks+0x462/0x790\n    __do_softirq+0x1b4/0x3b0\n    call_softirq+0x1c/0x30\n    do_softirq+0x59/0xd0\n    irq_exit+0x54/0xd0\n    smp_apic_timer_interrupt+0x95/0xa3\n    apic_timer_interrupt+0x72/0x80\n    cpuidle_enter_tk+0x10/0x20\n    cpuidle_enter_state+0x17/0x50\n    cpuidle_idle_call+0x287/0x520\n    cpu_idle+0xba/0x130\n    start_secondary+0x2b3/0x2bc\n\nSigned-off-by: Xiaotian Feng \u003cdannyfeng@tencent.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "c4e18497d8fd92eef2c6e7eadcc1a107ccd115ea",
      "tree": "9513b220cbdd633ad7c42299d61f2b46b9fb1561",
      "parents": [
        "154b454edaf6d94a69016db6c342c57fa935bbe9"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Thu Dec 20 15:05:42 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "linux/kernel.h: fix DIV_ROUND_CLOSEST with unsigned divisors\n\nCommit 263a523d18bc (\"linux/kernel.h: Fix warning seen with W\u003d1 due to\nchange in DIV_ROUND_CLOSEST\") fixes a warning seen with W\u003d1 due to\nchange in DIV_ROUND_CLOSEST.\n\nUnfortunately, the C compiler converts divide operations with unsigned\ndivisors to unsigned, even if the dividend is signed and negative (for\nexample, -10 / 5U \u003d 858993457).  The C standard says \"If one operand has\nunsigned int type, the other operand is converted to unsigned int\", so\nthe compiler is not to blame.  As a result, DIV_ROUND_CLOSEST(0, 2U) and\nsimilar operations now return bad values, since the automatic conversion\nof expressions such as \"0 - 2U/2\" to unsigned was not taken into\naccount.\n\nFix by checking for the divisor variable type when deciding which\noperation to perform.  This fixes DIV_ROUND_CLOSEST(0, 2U), but still\nreturns bad values for negative dividends divided by unsigned divisors.\nMark the latter case as unsupported.\n\nOne observed effect of this problem is that the s2c_hwmon driver reports\na value of 4198403 instead of 0 if the ADC reads 0.\n\nOther impact is unpredictable.  Problem is seen if the divisor is an\nunsigned variable or constant and the dividend is less than (divisor/2).\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nReported-by: Juergen Beisert \u003cjbe@pengutronix.de\u003e\nTested-by: Juergen Beisert \u003cjbe@pengutronix.de\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t[3.7.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "154b454edaf6d94a69016db6c342c57fa935bbe9",
      "tree": "504eb789a9e802af9f534cc3a377f1efb29171cb",
      "parents": [
        "495e9d84607cda966ba6d223d5eb9df0070cd21a"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Thu Dec 20 15:05:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "memcg: don\u0027t register hotcpu notifier from -\u003ecss_alloc()\n\nCommit 648bb56d076b (\"cgroup: lock cgroup_mutex in cgroup_init_subsys()\")\nmade cgroup_init_subsys() grab cgroup_mutex before invoking\n-\u003ecss_alloc() for the root css.  Because memcg registers hotcpu notifier\nfrom -\u003ecss_alloc() for the root css, this introduced circular locking\ndependency between cgroup_mutex and cpu hotplug.\n\nFix it by moving hotcpu notifier registration to a subsys initcall.\n\n  \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n  [ INFO: possible circular locking dependency detected ]\n  3.7.0-rc4-work+ #42 Not tainted\n  -------------------------------------------------------\n  bash/645 is trying to acquire lock:\n   (cgroup_mutex){+.+.+.}, at: [\u003cffffffff8110c5b7\u003e] cgroup_lock+0x17/0x20\n\n  but task is already holding lock:\n   (cpu_hotplug.lock){+.+.+.}, at: [\u003cffffffff8109300f\u003e] cpu_hotplug_begin+0x2f/0x60\n\n  which lock already depends on the new lock.\n\n  the existing dependency chain (in reverse order) is:\n\n -\u003e #1 (cpu_hotplug.lock){+.+.+.}:\n         lock_acquire+0x97/0x1e0\n         mutex_lock_nested+0x61/0x3b0\n         get_online_cpus+0x3c/0x60\n         rebuild_sched_domains_locked+0x1b/0x70\n         cpuset_write_resmask+0x298/0x2c0\n         cgroup_file_write+0x1ef/0x300\n         vfs_write+0xa8/0x160\n         sys_write+0x52/0xa0\n         system_call_fastpath+0x16/0x1b\n\n -\u003e #0 (cgroup_mutex){+.+.+.}:\n         __lock_acquire+0x14ce/0x1d20\n         lock_acquire+0x97/0x1e0\n         mutex_lock_nested+0x61/0x3b0\n         cgroup_lock+0x17/0x20\n         cpuset_handle_hotplug+0x1b/0x560\n         cpuset_update_active_cpus+0xe/0x10\n         cpuset_cpu_inactive+0x47/0x50\n         notifier_call_chain+0x66/0x150\n         __raw_notifier_call_chain+0xe/0x10\n         __cpu_notify+0x20/0x40\n         _cpu_down+0x7e/0x2f0\n         cpu_down+0x36/0x50\n         store_online+0x5d/0xe0\n         dev_attr_store+0x18/0x30\n         sysfs_write_file+0xe0/0x150\n         vfs_write+0xa8/0x160\n         sys_write+0x52/0xa0\n         system_call_fastpath+0x16/0x1b\n  other info that might help us debug this:\n\n   Possible unsafe locking scenario:\n\n         CPU0                    CPU1\n         ----                    ----\n    lock(cpu_hotplug.lock);\n                                 lock(cgroup_mutex);\n                                 lock(cpu_hotplug.lock);\n    lock(cgroup_mutex);\n\n   *** DEADLOCK ***\n\n  5 locks held by bash/645:\n   #0:  (\u0026buffer-\u003emutex){+.+.+.}, at: [\u003cffffffff8123bab8\u003e] sysfs_write_file+0x48/0x150\n   #1:  (s_active#42){.+.+.+}, at: [\u003cffffffff8123bb38\u003e] sysfs_write_file+0xc8/0x150\n   #2:  (x86_cpu_hotplug_driver_mutex){+.+...}, at: [\u003cffffffff81079277\u003e] cpu_hotplug_driver_lock+0x1\n+7/0x20\n   #3:  (cpu_add_remove_lock){+.+.+.}, at: [\u003cffffffff81093157\u003e] cpu_maps_update_begin+0x17/0x20\n   #4:  (cpu_hotplug.lock){+.+.+.}, at: [\u003cffffffff8109300f\u003e] cpu_hotplug_begin+0x2f/0x60\n\n  stack backtrace:\n  Pid: 645, comm: bash Not tainted 3.7.0-rc4-work+ #42\n  Call Trace:\n   print_circular_bug+0x28e/0x29f\n   __lock_acquire+0x14ce/0x1d20\n   lock_acquire+0x97/0x1e0\n   mutex_lock_nested+0x61/0x3b0\n   cgroup_lock+0x17/0x20\n   cpuset_handle_hotplug+0x1b/0x560\n   cpuset_update_active_cpus+0xe/0x10\n   cpuset_cpu_inactive+0x47/0x50\n   notifier_call_chain+0x66/0x150\n   __raw_notifier_call_chain+0xe/0x10\n   __cpu_notify+0x20/0x40\n   _cpu_down+0x7e/0x2f0\n   cpu_down+0x36/0x50\n   store_online+0x5d/0xe0\n   dev_attr_store+0x18/0x30\n   sysfs_write_file+0xe0/0x150\n   vfs_write+0xa8/0x160\n   sys_write+0x52/0xa0\n   system_call_fastpath+0x16/0x1b\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "495e9d84607cda966ba6d223d5eb9df0070cd21a",
      "tree": "208667895c3646fe4fa1bb7322d0ed1f51880ca5",
      "parents": [
        "5abe257af8b95857b95fa0ba694530b446ae32d8"
      ],
      "author": {
        "name": "Joe Perches",
        "email": "joe@perches.com",
        "time": "Thu Dec 20 15:05:37 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "checkpatch: warn on uapi #includes that #include \u003cuapi/...\n\nAvoid specifying internal uapi #include paths with uapi/...  as\nuserspace should not use and never see that.\n\nNeaten message line wrapping above.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Andy Whitcroft \u003capw@canonical.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5abe257af8b95857b95fa0ba694530b446ae32d8",
      "tree": "1826384cada686c16652a9f58e9e423b503826e4",
      "parents": [
        "2c79737af83e0d586899f48c6010148ea2064369"
      ],
      "author": {
        "name": "Andrew Morton",
        "email": "akpm@linux-foundation.org",
        "time": "Thu Dec 20 15:05:34 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "revert \"rtc: recycle id when unloading a rtc driver\"\n\nRevert commit 2830a6d20139df2198d63235df7957712adb28e5.\n\nWe already perform the ida_simple_remove() in rtc_device_release(),\nwhich is an appropriate place.  Commit 2830a6d20 (\"rtc: recycle id when\nunloading a rtc driver\") caused the kernel to emit\n\n\tida_remove called for id\u003d0 which is not allocated.\n\nwarnings when rtc_device_release() tries to release an alread-released\nID.\n\nLet\u0027s restore things to their previous state and then work out why\nVincent\u0027s kernel wasn\u0027t calling rtc_device_release() - presumably a bug\nin a specific sub-driver.\n\nReported-by: Lothar Waßmann \u003cLW@KARO-electronics.de\u003e\nAcked-by: Alexander Holler \u003choller@ahsoftware.de\u003e\nCc: Vincent Palatin \u003cvpalatin@chromium.org\u003e\nCc: \u003cstable@vger.kernel.org\u003e\t\t[3.7.x]\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "2c79737af83e0d586899f48c6010148ea2064369",
      "tree": "a8256a90724a378a1dbe00205886ac1ba318fdcf",
      "parents": [
        "bffdd661bd424ea4298639805bfcbcaf8ffb62f2"
      ],
      "author": {
        "name": "Jeremy Eder",
        "email": "jeder@redhat.com",
        "time": "Thu Dec 20 15:05:32 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "mm: clean up transparent hugepage sysfs error messages\n\nClarify error messages and correct a few typos in the transparent hugepage\nsysfs init code.\n\nSigned-off-by: Jeremy Eder \u003cjeder@redhat.com\u003e\nAcked-by: Rafael Aquini \u003caquini@redhat.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bffdd661bd424ea4298639805bfcbcaf8ffb62f2",
      "tree": "067289fcb418e88ff96a1ec6e6d9729fedac73f3",
      "parents": [
        "81cc7fad552bc9e4fa8c1f25becbecaaa1d41b67"
      ],
      "author": {
        "name": "Vyacheslav Dubeyko",
        "email": "slava@dubeyko.com",
        "time": "Thu Dec 20 15:05:29 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:20 2012 -0800"
      },
      "message": "hfsplus: add error message for the case of failure of sync fs in delayed_sync_fs() method\n\nAdd an error message for the case of failure of sync fs in\ndelayed_sync_fs() method.\n\nSigned-off-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hin-Tak Leung \u003chtl10@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "81cc7fad552bc9e4fa8c1f25becbecaaa1d41b67",
      "tree": "fc82e6cae25518901a794ad7a2dd7cb6e7252c1e",
      "parents": [
        "1b243fd39bd605cdfc482bba4e56b0cb34b28f27"
      ],
      "author": {
        "name": "Vyacheslav Dubeyko",
        "email": "slava@dubeyko.com",
        "time": "Thu Dec 20 15:05:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "hfsplus: rework processing of hfs_btree_write() returned error\n\nAdd to hfs_btree_write() a return of -EIO on failure of b-tree node\nsearching.  Also add logic ofor processing errors from hfs_btree_write()\nin hfsplus_system_write_inode() with a message about b-tree writing\nfailure.\n\n[akpm@linux-foundation.org: reduce scope of `err\u0027, print errno on error]\nSigned-off-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nAcked-by: Hin-Tak Leung \u003chtl10@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "1b243fd39bd605cdfc482bba4e56b0cb34b28f27",
      "tree": "a9884f04fc58cf78cd0eb7219b1230b7e7097064",
      "parents": [
        "5daa669c80c121ab75ecdf1c8e2df52f072fd25e"
      ],
      "author": {
        "name": "Vyacheslav Dubeyko",
        "email": "slava@dubeyko.com",
        "time": "Thu Dec 20 15:05:25 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "hfsplus: rework processing errors in hfsplus_free_extents()\n\nCurrently, it doesn\u0027t process error codes from the hfsplus_block_free()\ncall in hfsplus_free_extents() method.  Add some error code processing.\n\nSigned-off-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nCc: Christoph Hellwig \u003chch@infradead.org\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Hin-Tak Leung \u003chtl10@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5daa669c80c121ab75ecdf1c8e2df52f072fd25e",
      "tree": "2b630dfed7fe5a88c1defe53dcdad10fee4d33f5",
      "parents": [
        "44fd07e989a9a27476d8963296688127a4fd4df4"
      ],
      "author": {
        "name": "Alan Cox",
        "email": "alan@linux.intel.com",
        "time": "Thu Dec 20 15:05:24 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "hfsplus: avoid crash on failed block map free\n\nIf the read fails we kmap an error code.  This doesn\u0027t end well.  Instead\nprint a critical error and pray.  This mirrors the rest of the fs\nbehaviour with critical error cases.\n\nAcked-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nSigned-off-by: Alan Cox \u003calan@linux.intel.com\u003e\nSigned-off-by: Vyacheslav Dubeyko \u003cslava@dubeyko.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nCc: Jan Kara \u003cjack@suse.cz\u003e\nAcked-by: Hin-Tak Leung \u003chtl10@users.sourceforge.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "44fd07e989a9a27476d8963296688127a4fd4df4",
      "tree": "becbc4b9e1f5c11d9441689376d555ed0a5eafcb",
      "parents": [
        "ba3f7a1765dc4095c757ac82eb14d6824c45e87d"
      ],
      "author": {
        "name": "Cyrill Gorcunov",
        "email": "gorcunov@openvz.org",
        "time": "Thu Dec 20 15:05:21 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "kcmp: include linux/ptrace.h\n\nThis makes it compile on s390. After all the ptrace_may_access\n(which we use this file) is declared exactly in linux/ptrace.h.\n\nThis is preparatory work to wire this syscall up on all archs.\n\nSigned-off-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nSigned-off-by: Alexander Kartashov \u003calekskartashov@parallels.com\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ba3f7a1765dc4095c757ac82eb14d6824c45e87d",
      "tree": "01a0e0bfb9e365e4585761645add330a753258ee",
      "parents": [
        "bcc2b02f4c1b36bc67272df7119b75bac78525ab"
      ],
      "author": {
        "name": "Jean Delvare",
        "email": "khali@linux-fr.org",
        "time": "Thu Dec 20 15:05:19 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "drivers/rtc/rtc-imxdi.c: must include \u003clinux/spinlock.h\u003e\n\nAdd the missing header include for spinlocks, to avoid potential build\nfailures on specific architectures or configurations.\n\nSigned-off-by: Jean Delvare \u003ckhali@linux-fr.org\u003e\nAcked-by: Sascha Hauer \u003cs.hauer@pengutronix.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "bcc2b02f4c1b36bc67272df7119b75bac78525ab",
      "tree": "db4b0ad1693c2b25da06655b6e7dd409c85ec120",
      "parents": [
        "b66c5984017533316fd1951770302649baf1aa33"
      ],
      "author": {
        "name": "Marek Szyprowski",
        "email": "m.szyprowski@samsung.com",
        "time": "Thu Dec 20 15:05:18 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "mm: cma: WARN if freed memory is still in use\n\nMemory returned to free_contig_range() must have no other references.\nLet kernel to complain loudly if page reference count is not equal to 1.\n\n[rientjes@google.com: support sparsemem]\nSigned-off-by: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nReviewed-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nAcked-by: Michal Nazarewicz \u003cmina86@mina86.com\u003e\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b66c5984017533316fd1951770302649baf1aa33",
      "tree": "78d1e5fc82a057c62699734602c8e5f7ca86b7a2",
      "parents": [
        "9f9c9cbb60576a1518d0bf93fb8e499cffccf377"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Thu Dec 20 15:05:16 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "exec: do not leave bprm-\u003einterp on stack\n\nIf a series of scripts are executed, each triggering module loading via\nunprintable bytes in the script header, kernel stack contents can leak\ninto the command line.\n\nNormally execution of binfmt_script and binfmt_misc happens recursively.\nHowever, when modules are enabled, and unprintable bytes exist in the\nbprm-\u003ebuf, execution will restart after attempting to load matching\nbinfmt modules.  Unfortunately, the logic in binfmt_script and\nbinfmt_misc does not expect to get restarted.  They leave bprm-\u003einterp\npointing to their local stack.  This means on restart bprm-\u003einterp is\nleft pointing into unused stack memory which can then be copied into the\nuserspace argv areas.\n\nAfter additional study, it seems that both recursion and restart remains\nthe desirable way to handle exec with scripts, misc, and modules.  As\nsuch, we need to protect the changes to interp.\n\nThis changes the logic to require allocation for any changes to the\nbprm-\u003einterp.  To avoid adding a new kmalloc to every exec, the default\nvalue is left as-is.  Only when passing through binfmt_script or\nbinfmt_misc does an allocation take place.\n\nFor a proof of concept, see DoTest.sh from:\n\n   http://www.halfdog.net/Security/2012/LinuxKernelBinfmtScriptStackDataDisclosure/\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: halfdog \u003cme@halfdog.net\u003e\nCc: P J P \u003cppandit@redhat.com\u003e\nCc: Alexander 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": "9f9c9cbb60576a1518d0bf93fb8e499cffccf377",
      "tree": "217db9db9baf699c4392dedbc4a9ae4fce6f442a",
      "parents": [
        "f1d8e614d74b09531b9a85e812485340f3df7b1c"
      ],
      "author": {
        "name": "Zhenzhong Duan",
        "email": "zhenzhong.duan@oracle.com",
        "time": "Thu Dec 20 15:05:14 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "drivers/firmware/dmi_scan.c: fetch dmi version from SMBIOS if it exists\n\nThe right dmi version is in SMBIOS if it\u0027s zero in DMI region\n\nThis issue was originally found from an oracle bug.\nOne customer noticed system UUID doesn\u0027t match between dmidecode \u0026 uek2.\n\n - HP ProLiant BL460c G6 :\n   # cat /sys/devices/virtual/dmi/id/product_uuid\n   00000000-0000-4C48-3031-4D5030333531\n   # dmidecode | grep -i uuid\n   UUID: 00000000-0000-484C-3031-4D5030333531\n\nFrom SMBIOS 2.6 on, spec use little-endian encoding for UUID other than\nnetwork byte order.\n\nSo we need to get dmi version to distinguish.  If version is 0.0, the\nreal version is taken from the SMBIOS version.  This is part of original\nkernel comment in code.\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Zhenzhong Duan \u003czhenzhong.duan@oracle.com\u003e\nCc: Feng Jin \u003cjoe.jin@oracle.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "f1d8e614d74b09531b9a85e812485340f3df7b1c",
      "tree": "14fb8e41dafbd1923835e0f7aaf3e7a71261d76a",
      "parents": [
        "038b358e5592eff9be175cf6601042ecc8b28179"
      ],
      "author": {
        "name": "Zhenzhong Duan",
        "email": "zhenzhong.duan@oracle.com",
        "time": "Thu Dec 20 15:05:13 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "drivers/firmware/dmi_scan.c: check dmi version when get system uuid\n\nAs of version 2.6 of the SMBIOS specification, the first 3 fields of the\nUUID are supposed to be little-endian encoded.\n\nAlso a minor fix to match variable meaning and mute checkpatch.pl\n\n[akpm@linux-foundation.org: tweak code comment]\nSigned-off-by: Zhenzhong Duan \u003czhenzhong.duan@oracle.com\u003e\nCc: Feng Jin \u003cjoe.jin@oracle.com\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "038b358e5592eff9be175cf6601042ecc8b28179",
      "tree": "2a8cf1b3dfbb409204274382e560ca25ce5ed149",
      "parents": [
        "c8b74c2f6604923de91f8aa6539f8bb934736754"
      ],
      "author": {
        "name": "Josh Boyer",
        "email": "jwboyer@redhat.com",
        "time": "Thu Dec 20 15:05:10 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:19 2012 -0800"
      },
      "message": "Documentation: kernel-parameters.txt remove capability.disable\n\nRemove the documentation for capability.disable.  The code supporting\nthis parameter was removed with commit 5915eb53861c (\"security: remove\ndummy module\")\n\nSigned-off-by: Josh Boyer \u003cjwboyer@redhat.com\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nCc: Rob Landley \u003crob@landley.net\u003e\nCc: Miklos Szeredi \u003cmszeredi@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": "c8b74c2f6604923de91f8aa6539f8bb934736754",
      "tree": "2aa7cefdda54d71d6a8b9387914fb475514a1bd0",
      "parents": [
        "010fc29a45a2e8dbc08bf45ef80b8622619aaae0"
      ],
      "author": {
        "name": "Sonny Rao",
        "email": "sonnyrao@chromium.org",
        "time": "Thu Dec 20 15:05:07 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:18 2012 -0800"
      },
      "message": "mm: fix calculation of dirtyable memory\n\nThe system uses global_dirtyable_memory() to calculate number of\ndirtyable pages/pages that can be allocated to the page cache.  A bug\ncauses an underflow thus making the page count look like a big unsigned\nnumber.  This in turn confuses the dirty writeback throttling to\naggressively write back pages as they become dirty (usually 1 page at a\ntime).  This generally only affects systems with highmem because the\nunderflowed count gets subtracted from the global count of dirtyable\nmemory.\n\nThe problem was introduced with v3.2-4896-gab8fabd\n\nFix is to ensure we don\u0027t get an underflowed total of either highmem or\nglobal dirtyable memory.\n\nSigned-off-by: Sonny Rao \u003csonnyrao@chromium.org\u003e\nSigned-off-by: Puneet Kumar \u003cpuneetster@chromium.org\u003e\nAcked-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nTested-by: Damien Wyart \u003cdamien.wyart@free.fr\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": "010fc29a45a2e8dbc08bf45ef80b8622619aaae0",
      "tree": "b5ef6be5185c4a57a3231b07fdb15b902383968e",
      "parents": [
        "787314c35fbb97e02823a1b8eb8cfa58f366cd49"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Thu Dec 20 15:05:06 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Dec 20 17:40:18 2012 -0800"
      },
      "message": "compaction: fix build error in CMA \u0026\u0026 !COMPACTION\n\nisolate_freepages_block() and isolate_migratepages_range() are used for\nCMA as well as compaction so it breaks build for CONFIG_CMA \u0026\u0026\n!CONFIG_COMPACTION.\n\nThis patch fixes it.\n\n[akpm@linux-foundation.org: add \"do { } while (0)\", per Mel]\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Marek Szyprowski \u003cm.szyprowski@samsung.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b729d75d19777a5dd34672020516eada43ff026f",
      "tree": "b5419b7700f6763a96d3e41b0e5beb193e6ca551",
      "parents": [
        "12f06212990400db1b54bd7b49b7f6f5f1b32469"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:18 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:11 2012 -0500"
      },
      "message": "vfs: make lremovexattr retry once on ESTALE error\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "12f06212990400db1b54bd7b49b7f6f5f1b32469",
      "tree": "5827504989d57e2f31613aac63f46d2e2781a964",
      "parents": [
        "bd9bbc9842bde1b14046cdbda1153f0d49061135"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:17 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:10 2012 -0500"
      },
      "message": "vfs: make removexattr retry once on ESTALE\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "bd9bbc9842bde1b14046cdbda1153f0d49061135",
      "tree": "7dc71b051248d1789e8d0bef74ada4387dd2b76e",
      "parents": [
        "10a90cf36efe0fca5c7719fd9b0299abd6be51aa"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:17 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:10 2012 -0500"
      },
      "message": "vfs: make llistxattr retry once on ESTALE error\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "10a90cf36efe0fca5c7719fd9b0299abd6be51aa",
      "tree": "d294e38f08018f63909faa02f56cedefd52f95a2",
      "parents": [
        "3a3e159dbfe405517584b09bbcefd72115d93342"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:16 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:10 2012 -0500"
      },
      "message": "vfs: make listxattr retry once on ESTALE error\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "3a3e159dbfe405517584b09bbcefd72115d93342",
      "tree": "e3f4873b966e90dd0ab28482f17958f7c53f9246",
      "parents": [
        "60e66b48ca20819d97ec4851007accc0b013985a"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:16 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:09 2012 -0500"
      },
      "message": "vfs: make lgetxattr retry once on ESTALE\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "60e66b48ca20819d97ec4851007accc0b013985a",
      "tree": "586eb8952207bf554639caab93e6fb91477effe5",
      "parents": [
        "49e09e1cc576daa99ea22f3a3c699062c34f8c0f"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:16 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:09 2012 -0500"
      },
      "message": "vfs: make getxattr retry once on an ESTALE error\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "49e09e1cc576daa99ea22f3a3c699062c34f8c0f",
      "tree": "c4f24094db83a0b24cad41ef20803e312f0fa18f",
      "parents": [
        "68f1bb8bb89e0bb813c893a42373a26ebdab7f9c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:15 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:09 2012 -0500"
      },
      "message": "vfs: allow lsetxattr() to retry once on ESTALE errors\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "68f1bb8bb89e0bb813c893a42373a26ebdab7f9c",
      "tree": "45be5b0fc0e490488a1e6c82fc7c51148edff8cb",
      "parents": [
        "a69201d6f08240f20a0d33a1b7273d1e7748791c"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:15 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:08 2012 -0500"
      },
      "message": "vfs: allow setxattr to retry once on ESTALE errors\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "a69201d6f08240f20a0d33a1b7273d1e7748791c",
      "tree": "609495e85765dac924c69a229dde05ed1cc0baff",
      "parents": [
        "96948fc6069b68380abac2944b8b02b43a2e2057"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:14 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:08 2012 -0500"
      },
      "message": "vfs: allow utimensat() calls to retry once on an ESTALE error\n\nClearly, we can\u0027t handle the NULL filename case, but we can deal with\nthe case where there\u0027s a real pathname.\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "96948fc6069b68380abac2944b8b02b43a2e2057",
      "tree": "7183ec09a0c317d2b6fbe71ca3e15dfab8e107cd",
      "parents": [
        "99a5df37a03c99e57d0da4f847a515b658963fbb"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:14 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:07 2012 -0500"
      },
      "message": "vfs: fix user_statfs to retry once on ESTALE errors\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "99a5df37a03c99e57d0da4f847a515b658963fbb",
      "tree": "30705a9b8d386d88045f4955c551d6bf9ceb86d7",
      "parents": [
        "14ff690c0f94cf2e37f7c448f4f09bf0b4006d62"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:07 2012 -0500"
      },
      "message": "vfs: make fchownat retry once on ESTALE errors\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "14ff690c0f94cf2e37f7c448f4f09bf0b4006d62",
      "tree": "83c17757de4b9c7899360bca6328a2670cc14703",
      "parents": [
        "2771261ec5b677a38f0cd5fcfc6cefd5393787ef"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:13 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:07 2012 -0500"
      },
      "message": "vfs: make fchmodat retry once on ESTALE errors\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "2771261ec5b677a38f0cd5fcfc6cefd5393787ef",
      "tree": "1977d9300293a73fa653695fbe37e6acd015cb78",
      "parents": [
        "0291c0a551d5b0856627f2cb294da05f122414a0"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Thu Dec 20 17:08:32 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:06 2012 -0500"
      },
      "message": "vfs: have chroot retry once on ESTALE error\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    },
    {
      "commit": "0291c0a551d5b0856627f2cb294da05f122414a0",
      "tree": "1dce5d588af3ddc3d8c61fdc3a02e921830b75e7",
      "parents": [
        "87fa55952b7347175c6e2f03874869ad2c055adb"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@redhat.com",
        "time": "Tue Dec 11 12:10:12 2012 -0500"
      },
      "committer": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Dec 20 18:50:06 2012 -0500"
      },
      "message": "vfs: have chdir retry lookup and call once on ESTALE error\n\nSigned-off-by: Jeff Layton \u003cjlayton@redhat.com\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n"
    }
  ],
  "next": "87fa55952b7347175c6e2f03874869ad2c055adb"
}
