)]}'
{
  "log": [
    {
      "commit": "f24d464cdd054cb4c704ea2702af108aec6436a0",
      "tree": "35bbb9edbe3a50cc0f8a210de56dd81bcb978552",
      "parents": [
        "1dc9175774e2b45fbccf63221593a8b310fb051b"
      ],
      "author": {
        "name": "Chanho Min",
        "email": "chanho.min@lge.com",
        "time": "Mon Jul 08 16:01:49 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 21 12:16:43 2017 -0500"
      },
      "message": "lib: add lz4 compressor module\n\nThis patchset is for supporting LZ4 compression and the crypto API using\nit.\n\nAs shown below, the size of data is a little bit bigger but compressing\nspeed is faster under the enabled unaligned memory access.  We can use\nlz4 de/compression through crypto API as well.  Also, It will be useful\nfor another potential user of lz4 compression.\n\nlz4 Compression Benchmark:\nCompiler: ARM gcc 4.6.4\nARMv7, 1 GHz based board\n   Kernel: linux 3.4\n   Uncompressed data Size: 101 MB\n         Compressed Size  compression Speed\n   LZO   72.1MB\t\t  32.1MB/s, 33.0MB/s(UA)\n   LZ4   75.1MB\t\t  30.4MB/s, 35.9MB/s(UA)\n   LZ4HC 59.8MB\t\t   2.4MB/s,  2.5MB/s(UA)\n- UA: Unaligned memory Access support\n- Latest patch set for LZO applied\n\nThis patch:\n\nAdd support for LZ4 compression in the Linux Kernel.  LZ4 Compression APIs\nfor kernel are based on LZ4 implementation by Yann Collet and were changed\nfor kernel coding style.\n\nLZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html\nLZ4 source repository : http://code.google.com/p/lz4/\nsvn revision : r90\n\nTwo APIs are added:\n\nlz4_compress() support basic lz4 compression whereas lz4hc_compress()\nsupport high compression or CPU performance get lower but compression\nratio get higher.  Also, we require the pre-allocated working memory with\nthe defined size and destination buffer must be allocated with the size of\nlz4_compressbound.\n\n[akpm@linux-foundation.org: make lz4_compresshcctx() static]\nSigned-off-by: Chanho Min \u003cchanho.min@lge.com\u003e\nCc: \"Darrick J. Wong\" \u003cdjwong@us.ibm.com\u003e\nCc: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Herbert Xu \u003cherbert@gondor.hengli.com.au\u003e\nCc: Yann Collet \u003cyann.collet.73@gmail.com\u003e\nCc: Kyungsik Lee \u003ckyungsik.lee@lge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce435e54ea728b47a65ef1813adbbf05ebcee09f",
      "tree": "51e510e3b7643c0b7eb102b6ff68c1ec03373a10",
      "parents": [
        "b48d2bcc9cc20a8b5b1be0c98a5914231e3965b5"
      ],
      "author": {
        "name": "Kyungsik Lee",
        "email": "kyungsik.lee@lge.com",
        "time": "Mon Jul 08 16:01:46 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 21 12:16:42 2017 -0500"
      },
      "message": "lib: add support for LZ4-compressed kernel\n\nAdd support for extracting LZ4-compressed kernel images, as well as\nLZ4-compressed ramdisk images in the kernel boot process.\n\nSigned-off-by: Kyungsik Lee \u003ckyungsik.lee@lge.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Florian Fainelli \u003cflorian@openwrt.org\u003e\nCc: Yann Collet \u003cyann.collet.73@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b48d2bcc9cc20a8b5b1be0c98a5914231e3965b5",
      "tree": "cf50a8d6f3cd3842abadce86adc32d2215f5973d",
      "parents": [
        "6fc879fa29f2b190468169dec68f323d0f70fbf3"
      ],
      "author": {
        "name": "Kyungsik Lee",
        "email": "kyungsik.lee@lge.com",
        "time": "Mon Jul 08 16:01:45 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 21 12:16:32 2017 -0500"
      },
      "message": "decompressor: add LZ4 decompressor module\n\nAdd support for LZ4 decompression in the Linux Kernel.  LZ4 Decompression\nAPIs for kernel are based on LZ4 implementation by Yann Collet.\n\nBenchmark Results(PATCH v3)\nCompiler: Linaro ARM gcc 4.6.2\n\n1. ARMv7, 1.5GHz based board\n   Kernel: linux 3.4\n   Uncompressed Kernel Size: 14MB\n        Compressed Size  Decompression Speed\n   LZO  6.7MB            20.1MB/s, 25.2MB/s(UA)\n   LZ4  7.3MB            29.1MB/s, 45.6MB/s(UA)\n\n2. ARMv7, 1.7GHz based board\n   Kernel: linux 3.7\n   Uncompressed Kernel Size: 14MB\n        Compressed Size  Decompression Speed\n   LZO  6.0MB            34.1MB/s, 52.2MB/s(UA)\n   LZ4  6.5MB            86.7MB/s\n- UA: Unaligned memory Access support\n- Latest patch set for LZO applied\n\nThis patch set is for adding support for LZ4-compressed Kernel.  LZ4 is a\nvery fast lossless compression algorithm and it also features an extremely\nfast decoder [1].\n\nBut we have five of decompressors already and one question which does\narise, however, is that of where do we stop adding new ones?  This issue\nhad been discussed and came to the conclusion [2].\n\nRussell King said that we should have:\n\n - one decompressor which is the fastest\n - one decompressor for the highest compression ratio\n - one popular decompressor (eg conventional gzip)\n\nIf we have a replacement one for one of these, then it should do exactly\nthat: replace it.\n\nThe benchmark shows that an 8% increase in image size vs a 66% increase\nin decompression speed compared to LZO(which has been known as the\nfastest decompressor in the Kernel).  Therefore the \"fast but may not be\nsmall\" compression title has clearly been taken by LZ4 [3].\n\n[1] http://code.google.com/p/lz4/\n[2] http://thread.gmane.org/gmane.linux.kbuild.devel/9157\n[3] http://thread.gmane.org/gmane.linux.kbuild.devel/9347\n\nLZ4 homepage: http://fastcompression.blogspot.com/p/lz4.html\nLZ4 source repository: http://code.google.com/p/lz4/\n\nSigned-off-by: Kyungsik Lee \u003ckyungsik.lee@lge.com\u003e\nSigned-off-by: Yann Collet \u003cyann.collet.73@gmail.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Florian Fainelli \u003cflorian@openwrt.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "6399a30734783b79d58ac4f8e3111672733f905b",
      "tree": "260c2dcc4974e43d3ee205c992f5c93753fdf334",
      "parents": [
        "5d9e7568b0d5b11ad168fbeb0ea08e68da7433ef"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "davidlohr.bueso@hp.com",
        "time": "Mon Apr 29 16:18:09 2013 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:16:54 2016 -0600"
      },
      "message": "lib/int_sqrt.c: optimize square root algorithm\n\nOptimize the current version of the shift-and-subtract (hardware)\nalgorithm, described by John von Newmann[1] and Guy L Steele.\n\nIterating 1,000,000 times, perf shows for the current version:\n\n Performance counter stats for \u0027./sqrt-curr\u0027 (10 runs):\n\n         27.170996 task-clock                #    0.979 CPUs utilized            ( +-  3.19% )\n                 3 context-switches          #    0.103 K/sec                    ( +-  4.76% )\n                 0 cpu-migrations            #    0.004 K/sec                    ( +-100.00% )\n               104 page-faults               #    0.004 M/sec                    ( +-  0.16% )\n        64,921,199 cycles                    #    2.389 GHz                      ( +-  0.03% )\n        28,967,789 stalled-cycles-frontend   #   44.62% frontend cycles idle     ( +-  0.18% )\n   \u003cnot supported\u003e stalled-cycles-backend\n       104,502,623 instructions              #    1.61  insns per cycle\n                                             #    0.28  stalled cycles per insn  ( +-  0.00% )\n        34,088,368 branches                  # 1254.587 M/sec                    ( +-  0.00% )\n             4,901 branch-misses             #    0.01% of all branches          ( +-  1.32% )\n\n       0.027763015 seconds time elapsed                                          ( +-  3.22% )\n\nAnd for the new version:\n\nPerformance counter stats for \u0027./sqrt-new\u0027 (10 runs):\n\n          0.496869 task-clock                #    0.519 CPUs utilized            ( +-  2.38% )\n                 0 context-switches          #    0.000 K/sec\n                 0 cpu-migrations            #    0.403 K/sec                    ( +-100.00% )\n               104 page-faults               #    0.209 M/sec                    ( +-  0.15% )\n           590,760 cycles                    #    1.189 GHz                      ( +-  2.35% )\n           395,053 stalled-cycles-frontend   #   66.87% frontend cycles idle     ( +-  3.67% )\n   \u003cnot supported\u003e stalled-cycles-backend\n           398,963 instructions              #    0.68  insns per cycle\n                                             #    0.99  stalled cycles per insn  ( +-  0.39% )\n            70,228 branches                  #  141.341 M/sec                    ( +-  0.36% )\n             3,364 branch-misses             #    4.79% of all branches          ( +-  5.45% )\n\n       0.000957440 seconds time elapsed                                          ( +-  2.42% )\n\nFurthermore, this saves space in instruction text:\n\n   text    data     bss     dec     hex filename\n    111       0       0     111      6f lib/int_sqrt-baseline.o\n     89       0       0      89      59 lib/int_sqrt.o\n\n[1] http://en.wikipedia.org/wiki/First_Draft_of_a_Report_on_the_EDVAC\n\nChange-Id: I36d524f03d759e81a5a985f44561b3e4283676a5\nSigned-off-by: Davidlohr Bueso \u003cdavidlohr.bueso@hp.com\u003e\nReviewed-by: Jonathan Gonzalez \u003cjgonzlez@linets.cl\u003e\nTested-by: Jonathan Gonzalez \u003cjgonzlez@linets.cl\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Paul Keith \u003cjavelinanddart@gmail.com\u003e\n"
    },
    {
      "commit": "14948b013912820f910273e710b947616d411ea3",
      "tree": "dde7bcf41e3c583f1b425cc18fbaa07ac1a61a0d",
      "parents": [
        "18987aff4c38001a6574ccaa5008b88d9bd79b69"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Mon Sep 21 19:21:51 2015 +0300"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 03 11:09:32 2016 -0500"
      },
      "message": "devres: fix a for loop bounds check\n\ncommit 1f35d04a02a652f14566f875aef3a6f2af4cb77b upstream.\n\nThe iomap[] array has PCIM_IOMAP_MAX (6) elements and not\nDEVICE_COUNT_RESOURCE (16).  This bug was found using a static checker.\nIt may be that the \"if (!(mask \u0026 (1 \u003c\u003c i)))\" check means we never\nactually go past the end of the array in real life.\n\nFixes: ec04b075843d (\u0027iomap: implement pcim_iounmap_regions()\u0027)\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nAcked-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "9cc712efc708bf2d25b6a6c013c66c42f2cfccd0",
      "tree": "f4b7b9d2354b77f6a63eacded1c5b32282c18abc",
      "parents": [
        "64c363146fe8b4b26285d36fad0fc01b9c8c1285"
      ],
      "author": {
        "name": "José Adolfo Galdámez",
        "email": "josegalre@pac-rom.com",
        "time": "Wed Oct 21 21:52:13 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:04:59 2016 -0500"
      },
      "message": "Merge tag \u0027v3.4.110\u0027 into mm-6.0\n\nChange-Id: I0afc69bce474139d1b70e062d72c0b8054529833\nSigned-off-by: José Adolfo Galdámez \u003cjosegalre@pac-rom.com\u003e\n"
    },
    {
      "commit": "289a1ecd4560622d4e23e93ad5b7ba674e677d90",
      "tree": "ab62e43dff09399d74425b62a91b9a01a36c8e4c",
      "parents": [
        "c51dff3b33b4f7da01ea795ba21542b233f4d466"
      ],
      "author": {
        "name": "karl beldan",
        "email": "karl.beldan@gmail.com",
        "time": "Thu Jan 29 11:10:22 2015 +0100"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:02:18 2016 -0500"
      },
      "message": "lib/checksum.c: fix build for generic csum_tcpudp_nofold\n\ncommit 9ce357795ef208faa0d59894d9d119a7434e37f3 upstream.\n\nFixed commit added from64to32 under _#ifndef do_csum_ but used it\nunder _#ifndef csum_tcpudp_nofold_, breaking some builds (Fengguang\u0027s\nrobot reported TILEGX\u0027s). Move from64to32 under the latter.\n\nFixes: 150ae0e94634 (\"lib/checksum.c: fix carry in csum_tcpudp_nofold\")\nReported-by: kbuild test robot \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Karl Beldan \u003ckarl.beldan@rivierawaves.com\u003e\nCc: Eric Dumazet \u003cedumazet@google.com\u003e\nCc: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "4e33e7f3f0dab9eb1eb1beea1b9283e48096e163",
      "tree": "f109f03a87f46d1cf8002827787b01982473cb68",
      "parents": [
        "8890d4ee7314a714a0c6118ab5e570f4787b9f94"
      ],
      "author": {
        "name": "karl beldan",
        "email": "karl.beldan@gmail.com",
        "time": "Wed Jan 28 10:58:11 2015 +0100"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:01:49 2016 -0500"
      },
      "message": "lib/checksum.c: fix carry in csum_tcpudp_nofold\n\ncommit 150ae0e94634714b23919f0c333fee28a5b199d5 upstream.\n\nThe carry from the 64-\u003e32bits folding was dropped, e.g with:\nsaddr\u003d0xFFFFFFFF daddr\u003d0xFF0000FF len\u003d0xFFFF proto\u003d0 sum\u003d1,\ncsum_tcpudp_nofold returned 0 instead of 1.\n\nSigned-off-by: Karl Beldan \u003ckarl.beldan@rivierawaves.com\u003e\nCc: Al Viro \u003cviro@ZenIV.linux.org.uk\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: netdev@vger.kernel.org\nCc: linux-kernel@vger.kernel.org\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "527dae0287ccbdec221779cab163149a858b3d5f",
      "tree": "5ca7326b7c03d32a023a607d941073a756a90455",
      "parents": [
        "3f4ab6690e6505e23f98a6e8a2b6e44cc5598eea"
      ],
      "author": {
        "name": "Chanho Min",
        "email": "chanho.min@lge.com",
        "time": "Mon Jul 08 16:01:43 2013 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:05:02 2015 -0400"
      },
      "message": "lib: add weak clz/ctz functions\n\nSome architectures need __c[lt]z[sd]i2() for __builtin_c[lt]z[ll] and\nthat causes a build failure.  They can be implemented using the\nfls()/__ffs() and overridden by linking arch-specific versions may not\nbe implemented yet.\n\nThis is required by \"lib: add lz4 compressor module\".\n\nReference: https://lkml.org/lkml/2013/4/18/603\n\nSigned-off-by: Chanho Min \u003cchanho.min@lge.com\u003e\nReported-by: Geert Uytterhoeven \u003cgeert@linux-m68k.org\u003e\nCc: \"Darrick J. Wong\" \u003cdjwong@us.ibm.com\u003e\nCc: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Herbert Xu \u003cherbert@gondor.hengli.com.au\u003e\nCc: Yann Collet \u003cyann.collet.73@gmail.com\u003e\nCc: Kyungsik Lee \u003ckyungsik.lee@lge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n\nConflicts:\n\tlib/Makefile\n\nChange-Id: I509ee8ec64a540dc630cd9c1530dd5ecf34bcb7a\n"
    },
    {
      "commit": "e4b136e51cc31ee8bf804dd381be3427f92c94d1",
      "tree": "5d3d25c1639554b29d4a2e90fb6358c747813262",
      "parents": [
        "2c5138da1f5fa9c3d6760b2d27f9575240f8d2ba"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Oct 29 14:50:44 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:02:16 2015 -0400"
      },
      "message": "lib/bitmap.c: fix undefined shift in __bitmap_shift_{left|right}()\n\ncommit ea5d05b34aca25c066e0699512d0ffbd8ee6ac3e upstream.\n\nIf __bitmap_shift_left() or __bitmap_shift_right() are asked to shift by\na multiple of BITS_PER_LONG, they will try to shift a long value by\nBITS_PER_LONG bits which is undefined.  Change the functions to avoid\nthe undefined shift.\n\nCoverity id: 1192175\nCoverity id: 1192174\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Rasmus Villemoes \u003clinux@rasmusvillemoes.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "9eaad7656f8c84ea3f4837686db729d2507bbe39",
      "tree": "dd4b952cbe74f4bbc30610dee824615563c60d73",
      "parents": [
        "7235bdfd72673ad69d3f7f0908c386c3a6d42850"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Tue Aug 26 23:16:35 2014 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:01:31 2015 -0400"
      },
      "message": "random: add and use memzero_explicit() for clearing data\n\ncommit d4c5efdb97773f59a2b711754ca0953f24516739 upstream.\n\nzatimend has reported that in his environment (3.16/gcc4.8.3/corei7)\nmemset() calls which clear out sensitive data in extract_{buf,entropy,\nentropy_user}() in random driver are being optimized away by gcc.\n\nAdd a helper memzero_explicit() (similarly as explicit_bzero() variants)\nthat can be used in such cases where a variable with sensitive data is\nbeing cleared out in the end. Other use cases might also be in crypto\ncode. [ I have put this into lib/string.c though, as it\u0027s always built-in\nand doesn\u0027t need any dependencies then. ]\n\nFixes kernel bugzilla: 82041\n\nReported-by: zatimend@hotmail.co.uk\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nAcked-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - another memset() in extract_buf() needs to be converted]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "a44cc723f3868436769d39a6618d1bee4e659b6b",
      "tree": "19a32b58ba2a400d719fa907cba37f78d8ff25c3",
      "parents": [
        "5fb6966c35fbfc0a7b1058e29f1383b26379eea2"
      ],
      "author": {
        "name": "Willy Tarreau",
        "email": "w@1wt.eu",
        "time": "Sat Sep 27 12:31:37 2014 +0200"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:00:59 2015 -0400"
      },
      "message": "lzo: check for length overrun in variable length encoding.\n\ncommit 72cf90124e87d975d0b2114d930808c58b4c05e4 upstream.\n\nThis fix ensures that we never meet an integer overflow while adding\n255 while parsing a variable length encoding. It works differently from\ncommit 206a81c (\"lzo: properly check for overruns\") because instead of\nensuring that we don\u0027t overrun the input, which is tricky to guarantee\ndue to many assumptions in the code, it simply checks that the cumulated\nnumber of 255 read cannot overflow by bounding this number.\n\nThe MAX_255_COUNT is the maximum number of times we can add 255 to a base\ncount without overflowing an integer. The multiply will overflow when\nmultiplying 255 by more than MAXINT/255. The sum will overflow earlier\ndepending on the base count. Since the base count is taken from a u8\nand a few bits, it is safe to assume that it will always be lower than\nor equal to 2*255, thus we can always prevent any overflow by accepting\ntwo less 255 steps.\n\nThis patch also reduces the CPU overhead and actually increases performance\nby 1.1% compared to the initial code, while the previous fix costs 3.1%\n(measured on x86_64).\n\nThe fix needs to be backported to all currently supported stable kernels.\n\nReported-by: Willem Pinckaers \u003cwillem@lekkertech.net\u003e\nCc: \"Don A. Bailey\" \u003cdonb@securitymouse.com\u003e\nSigned-off-by: Willy Tarreau \u003cw@1wt.eu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "5fb6966c35fbfc0a7b1058e29f1383b26379eea2",
      "tree": "add9b529c82024df6bd282762b136de66a0cbc80",
      "parents": [
        "0a28737f5615511b40b2cd4a981b5aeb113d038d"
      ],
      "author": {
        "name": "Willy Tarreau",
        "email": "w@1wt.eu",
        "time": "Sat Sep 27 12:31:36 2014 +0200"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:00:58 2015 -0400"
      },
      "message": "Revert \"lzo: properly check for overruns\"\n\ncommit af958a38a60c7ca3d8a39c918c1baa2ff7b6b233 upstream.\n\nThis reverts commit 206a81c (\"lzo: properly check for overruns\").\n\nAs analysed by Willem Pinckaers, this fix is still incomplete on\ncertain rare corner cases, and it is easier to restart from the\noriginal code.\n\nReported-by: Willem Pinckaers \u003cwillem@lekkertech.net\u003e\nCc: \"Don A. Bailey\" \u003cdonb@securitymouse.com\u003e\nSigned-off-by: Willy Tarreau \u003cw@1wt.eu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "1097d78180e1a2916c2bcdb15cb90ba131af9cd8",
      "tree": "5910f8fc0dcb85c71011ccccee18895769699390",
      "parents": [
        "3ded4adc97887ddde3c1855f29f062e015d19425",
        "7fd7a446b1c2b96252e4389746e5419eae04faef"
      ],
      "author": {
        "name": "Paul",
        "email": "javelinanddart@gmail.com",
        "time": "Sun Jan 11 17:15:40 2015 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Jan 11 17:20:45 2015 -0800"
      },
      "message": "Merge tag \u0027v3.4.105\u0027 into cm-12.0\n\nThis is the 3.4.105 stable release\n\nConflicts:\n\tarch/arm/mm/proc-v7.S\n\tdrivers/bluetooth/hci_ldisc.c\n\tdrivers/media/dvb/dvb-core/dmxdev.c\n\tdrivers/usb/core/driver.c\n\tdrivers/usb/dwc3/core.c\n\tdrivers/usb/host/xhci-hub.c\n\tdrivers/usb/host/xhci.c\n\tdrivers/usb/serial/qcserial.c\n\tdrivers/usb/serial/usb_wwan.c\n\tkernel/events/core.c\n\tkernel/time/tick-sched.ck\n\tkernel/futex.c\n\tmm/memory_hotplug.c\n\tmm/vmscan.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/ipv4/ping.c\n\tnet/wireless/nl80211.c\n\tsound/soc/soc-core.c\n\nChange-Id: Id09da84afb427ba1a32ff26e74f2bb86458d4a2e\n"
    },
    {
      "commit": "e55f3fceb32e5bb0823f79b645488e54f3e4e733",
      "tree": "31327d8b3ad3ade80ffae4c8a3aab3d43e20b062",
      "parents": [
        "90a5dbf6974f70c756e7655961b73757fa8be6ae",
        "ac58acb16ad3bd7d6c26c5a2e281f34d4cbdcf03"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Tue Sep 16 10:23:08 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Sep 16 10:23:08 2014 -0700"
      },
      "message": "Merge remote-tracking branch \u0027codeaurora/caf/kk_2.7_rb1.43\u0027 into cm-11.0\n\nConflicts:\n\tfs/proc/task_mmu.c\n\nChange-Id: Ie014403aec1279c5adec53138131671c444c4162\n"
    },
    {
      "commit": "cd5c18f38b0a3b7b66e3d656358d606c9b57bf3d",
      "tree": "cb459c23839da3e89969939efa12641403da0aec",
      "parents": [
        "2cc680d69ffec80a6e75ab46edb4706fcd50cc82"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Thu Nov 14 14:31:58 2013 -0800"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Mon Aug 25 12:47:43 2014 -0700"
      },
      "message": "vsprintf: ignore %n again\n\nThis ignores %n in printf again, as was originally documented.\nImplementing %n poses a greater security risk than utility, so it should\nstay ignored.  To help anyone attempting to use %n, a warning will be\nemitted if it is encountered.\n\nBased on an earlier patch by Joe Perches.\n\nBecause %n was designed to write to pointers on the stack, it has been\nfrequently used as an attack vector when bugs are found that leak\nuser-controlled strings into functions that ultimately process format\nstrings.  While this class of bug can still be turned into an\ninformation leak, removing %n eliminates the common method of elevating\nsuch a bug into an arbitrary kernel memory writing primitive,\nsignificantly reducing the danger of this class of bug.\n\nFor seq_file users that need to know the length of a written string for\npadding, please see seq_setwidth() and seq_pad() instead.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Joe Perches \u003cjoe@perches.com\u003e\nCc: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nGit-commit: 9196436ab2f713b823a2ba2024cb69f40b2f54a5\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nCRs-fixed: 665291\nChange-Id: Id191acaf66e3c395df92b0a77331269b525e3cad\nSigned-off-by: David Brown \u003cdavidb@codeaurora.org\u003e\n"
    },
    {
      "commit": "cca69958eee770a0b618bc73fec41b32d2b50387",
      "tree": "55eadb8d9244db303688a50638b6b1a062c3575e",
      "parents": [
        "56a2a6f68b6cf7dec64a53c8c7497fa5b36cbb15"
      ],
      "author": {
        "name": "Minfei Huang",
        "email": "huangminfei@ucloud.cn",
        "time": "Wed Jun 04 16:11:53 2014 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Aug 07 12:00:11 2014 -0700"
      },
      "message": "lib/btree.c: fix leak of whole btree nodes\n\ncommit c75b53af2f0043aff500af0a6f878497bef41bca upstream.\n\nI use btree from 3.14-rc2 in my own module.  When the btree module is\nremoved, a warning arises:\n\n kmem_cache_destroy btree_node: Slab cache still has objects\n CPU: 13 PID: 9150 Comm: rmmod Tainted: GF          O 3.14.0-rc2 #1\n Hardware name: Inspur NF5270M3/NF5270M3, BIOS CHEETAH_2.1.3 09/10/2013\n Call Trace:\n   dump_stack+0x49/0x5d\n   kmem_cache_destroy+0xcf/0xe0\n   btree_module_exit+0x10/0x12 [btree]\n   SyS_delete_module+0x198/0x1f0\n   system_call_fastpath+0x16/0x1b\n\nThe cause is that it doesn\u0027t release the last btree node, when height \u003d 1\nand fill \u003d 1.\n\n[akpm@linux-foundation.org: remove unneeded test of NULL]\nSigned-off-by: Minfei Huang \u003chuangminfei@ucloud.cn\u003e\nCc: Joern Engel \u003cjoern@logfs.org\u003e\nCc: Johannes Berg \u003cjohannes@sipsolutions.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "dc687f5effaf57fe62695468e3db6b50dc49bee1",
      "tree": "475482b7a20906d1f559582c719684713de8b82f",
      "parents": [
        "39085c8966f550d4b39d18683e39e79be7660a72"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Jun 20 22:00:53 2014 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 26 15:10:29 2014 -0400"
      },
      "message": "lzo: properly check for overruns\n\ncommit 206a81c18401c0cde6e579164f752c4b147324ce upstream.\n\nThe lzo decompressor can, if given some really crazy data, possibly\noverrun some variable types.  Modify the checking logic to properly\ndetect overruns before they happen.\n\nReported-by: \"Don A. Bailey\" \u003cdonb@securitymouse.com\u003e\nTested-by: \"Don A. Bailey\" \u003cdonb@securitymouse.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "39085c8966f550d4b39d18683e39e79be7660a72",
      "tree": "85bf43e45076e56fd5e79fd473a309ea56671549",
      "parents": [
        "db7d0670393b6febc8967f193c08427bbd6f55d3"
      ],
      "author": {
        "name": "Markus F.X.J. Oberhumer",
        "email": "markus@oberhumer.com",
        "time": "Mon Aug 13 17:25:44 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 26 15:10:29 2014 -0400"
      },
      "message": "lib/lzo: Update LZO compression to current upstream version\n\ncommit 8b975bd3f9089f8ee5d7bbfd798537b992bbc7e7 upstream.\n\nThis commit updates the kernel LZO code to the current upsteam version\nwhich features a significant speed improvement - benchmarking the Calgary\nand Silesia test corpora typically shows a doubled performance in\nboth compression and decompression on modern i386/x86_64/powerpc machines.\n\nSigned-off-by: Markus F.X.J. Oberhumer \u003cmarkus@oberhumer.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "db7d0670393b6febc8967f193c08427bbd6f55d3",
      "tree": "f511a19a12e52ebc1322d1807298cf457f7cdebe",
      "parents": [
        "2e5f14a6472167bb91ccf2e4ec1fc6586a99500b"
      ],
      "author": {
        "name": "Markus F.X.J. Oberhumer",
        "email": "markus@oberhumer.com",
        "time": "Mon Aug 13 17:24:24 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 26 15:10:29 2014 -0400"
      },
      "message": "lib/lzo: Rename lzo1x_decompress.c to lzo1x_decompress_safe.c\n\ncommit b6bec26cea948148a9420e7a0ac337f925de49e7 upstream.\n\nRename the source file to match the function name and thereby\nalso make room for a possible future even slightly faster\n\"non-safe\" decompressor version.\n\nSigned-off-by: Markus F.X.J. Oberhumer \u003cmarkus@oberhumer.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "6fa2946224569a4f3f975f86193c02c754acc9d8",
      "tree": "cea2ed76cccc891932c2d13cc3f9e03d0c931ccb",
      "parents": [
        "6ddc168fe00751a47139f5e6fd432aea799c654d"
      ],
      "author": {
        "name": "Michal Schmidt",
        "email": "mschmidt@redhat.com",
        "time": "Mon Jun 02 18:25:02 2014 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jun 26 15:10:28 2014 -0400"
      },
      "message": "netlink: rate-limit leftover bytes warning and print process name\n\n[ Upstream commit bfc5184b69cf9eeb286137640351c650c27f118a ]\n\nAny process is able to send netlink messages with leftover bytes.\nMake the warning rate-limited to prevent too much log spam.\n\nThe warning is supposed to help find userspace bugs, so print the\ntriggering command name to implicate the buggy program.\n\n[v2: Use pr_warn_ratelimited instead of printk_ratelimited.]\n\nSigned-off-by: Michal Schmidt \u003cmschmidt@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "36a093caf736755c3f42cde0abebbf6937f9f3e6",
      "tree": "c4cb589e1abe457ef20e85771acb787a5ddb9b3e",
      "parents": [
        "5cce5d16d13d6bd5f53b2cab181fefa55ae8efad",
        "00fcc691ed4a13522e01cfc1575cb7b984485b0a"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri May 02 22:35:16 2014 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri May 02 22:35:16 2014 -0700"
      },
      "message": "Merge remote-tracking branch \u0027codeaurora/caf/kk_2.7_rb1.37\u0027 into cm-11.0\n\nConflicts:\n\tarch/arm/mm/dma-mapping.c\n\tdrivers/media/video/msm/vfe/msm_vfe32.c\n\tnet/wireless/nl80211.c\n\nChange-Id: I4228f28bc74631aba13e1da969c91aaefc463195\n"
    },
    {
      "commit": "99df85bdef3515827e40fa019e0ecdda74f817ab",
      "tree": "45f96b8eab92a31e969d0d67516314a5d9c52fbc",
      "parents": [
        "4230a2aaaa1b7df2f8127cf5e697dc4e2772ce1b"
      ],
      "author": {
        "name": "Pablo Neira",
        "email": "pablo@netfilter.org",
        "time": "Tue Apr 01 19:38:44 2014 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Apr 26 17:13:18 2014 -0700"
      },
      "message": "netlink: don\u0027t compare the nul-termination in nla_strcmp\n\n[ Upstream commit 8b7b932434f5eee495b91a2804f5b64ebb2bc835 ]\n\nnla_strcmp compares the string length plus one, so it\u0027s implicitly\nincluding the nul-termination in the comparison.\n\n int nla_strcmp(const struct nlattr *nla, const char *str)\n {\n        int len \u003d strlen(str) + 1;\n        ...\n                d \u003d memcmp(nla_data(nla), str, len);\n\nHowever, if NLA_STRING is used, userspace can send us a string without\nthe nul-termination. This is a problem since the string\ncomparison will not match as the last byte may be not the\nnul-termination.\n\nFix this by skipping the comparison of the nul-termination if the\nattribute data is nul-terminated. Suggested by Thomas Graf.\n\nCc: Florian Westphal \u003cfw@strlen.de\u003e\nCc: Thomas Graf \u003ctgraf@suug.ch\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "7571f18e0a1a01e6b6cf8485956c51e0ffa224c1",
      "tree": "a4c0d00c32605ed8d2afacf2db32723e294f8866",
      "parents": [
        "04ca133348d1d68beaecdcba6747fee78698906a",
        "54541dfb9a1276b9d698d2f0c858fc6b7b7a395f"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Wed Apr 23 04:53:41 2014 -0700"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Wed Apr 23 04:53:40 2014 -0700"
      },
      "message": "Merge \"genalloc: stop crashing the system when destroying a pool\""
    },
    {
      "commit": "04ca133348d1d68beaecdcba6747fee78698906a",
      "tree": "66b3806fea080bb172e11955252e89de7f151de3",
      "parents": [
        "a2d7a1720b9882c34ae57fac6451c9937da67e55",
        "7fa84150b9bff8f848b6b233d25cdadf7ba7572c"
      ],
      "author": {
        "name": "Linux Build Service Account",
        "email": "lnxbuild@localhost",
        "time": "Wed Apr 23 04:53:39 2014 -0700"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Wed Apr 23 04:53:39 2014 -0700"
      },
      "message": "Merge \"genalloc: Correct nbytes calculation on long boundary\""
    },
    {
      "commit": "c45821f729ca087f87aa9ea08ffe964584a0d605",
      "tree": "a5d9068eb4e5492364e23d4936508ce853d063db",
      "parents": [
        "4ca2cf4abaae2bda2feea8ec5eb0d18723a43553"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:05:02 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Apr 14 06:44:15 2014 -0700"
      },
      "message": "idr: fix top layer handling\n\ncommit 326cf0f0f308933c10236280a322031f0097205d upstream.\n\nMost functions in idr fail to deal with the high bits when the idr\ntree grows to the maximum height.\n\n* idr_get_empty_slot() stops growing idr tree once the depth reaches\n  MAX_IDR_LEVEL - 1, which is one depth shallower than necessary to\n  cover the whole range.  The function doesn\u0027t even notice that it\n  didn\u0027t grow the tree enough and ends up allocating the wrong ID\n  given sufficiently high @starting_id.\n\n  For example, on 64 bit, if the starting id is 0x7fffff01,\n  idr_get_empty_slot() will grow the tree 5 layer deep, which only\n  covers the 30 bits and then proceed to allocate as if the bit 30\n  wasn\u0027t specified.  It ends up allocating 0x3fffff01 without the bit\n  30 but still returns 0x7fffff01.\n\n* __idr_remove_all() will not remove anything if the tree is fully\n  grown.\n\n* idr_find() can\u0027t find anything if the tree is fully grown.\n\n* idr_for_each() and idr_get_next() can\u0027t iterate anything if the tree\n  is fully grown.\n\nFix it by introducing idr_max() which returns the maximum possible ID\ngiven the depth of tree and replacing the id limit checks in all\naffected places.\n\nAs the idr_layer pointer array pa[] needs to be 1 larger than the\nmaximum depth, enlarge pa[] arrays by one.\n\nWhile this plugs the discovered issues, the whole code base is\nhorrible and in desparate need of rewrite.  It\u0027s fragile like hell,\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\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[bwh: Backported to 3.2:\n - Adjust context\n - s/MAX_IDR_LEVEL/MAX_LEVEL/; s/MAX_IDR_SHIFT/MAX_ID_SHIFT/\n - Drop change to idr_alloc()]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Qiang Huang \u003ch.huangqiang@huawei.com\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nCc: Jianguo Wu \u003cwujianguo@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n\n"
    },
    {
      "commit": "29a6e80b583ea3945494ae66b15f9f81488c2c60",
      "tree": "e0b5b51f58615767b2a2debf3ec87c980aadbcfc",
      "parents": [
        "322bd50e2c79208cbe34fe9f4aeafa605a5193e0"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Mon Jul 08 16:01:58 2013 -0700"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Wed Apr 09 11:35:33 2014 -0700"
      },
      "message": "lib/scatterlist: error handling in __sg_alloc_table()\n\nI was reviewing code which I suspected might allocate a zero size SG\ntable.  That will cause memory corruption.  Also we can\u0027t return before\ndoing the memset or we could end up using uninitialized memory in the\ncleanup path.\n\nChange-Id: Icee6be8ea22644d7f16264d9d2a0887c7145996b\nCRs-Fixed: 611562\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nCc: Akinobu Mita \u003cakinobu.mita@gmail.com\u003e\nCc: Imre Deak \u003cimre.deak@intel.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: Daniel Vetter \u003cdaniel.vetter@ffwll.ch\u003e\nCc: Maxim Levitsky \u003cmaximlevitsky@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "54541dfb9a1276b9d698d2f0c858fc6b7b7a395f",
      "tree": "b041b2d8d8b3d2dec9d2234cbab06fb38ff60292",
      "parents": [
        "322bd50e2c79208cbe34fe9f4aeafa605a5193e0"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@linux.vnet.ibm.com",
        "time": "Thu Oct 25 13:37:51 2012 -0700"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Tue Apr 08 00:26:53 2014 -0700"
      },
      "message": "genalloc: stop crashing the system when destroying a pool\n\nThe genalloc code uses the bitmap API from include/linux/bitmap.h and\nlib/bitmap.c, which is based on long values.  Both bitmap_set from\nlib/bitmap.c and bitmap_set_ll, which is the lockless version from\ngenalloc.c, use BITMAP_LAST_WORD_MASK to set the first bits in a long in\nthe bitmap.\n\nThat one uses (1 \u003c\u003c bits) - 1, 0b111, if you are setting the first three\nbits.  This means that the API counts from the least significant bits\n(LSB from now on) to the MSB.  The LSB in the first long is bit 0, then.\nThe same works for the lookup functions.\n\nThe genalloc code uses longs for the bitmap, as it should.  In\ninclude/linux/genalloc.h, struct gen_pool_chunk has unsigned long\nbits[0] as its last member.  When allocating the struct, genalloc should\nreserve enough space for the bitmap.  This should be a proper number of\nlongs that can fit the amount of bits in the bitmap.\n\nHowever, genalloc allocates an integer number of bytes that fit the\namount of bits, but may not be an integer amount of longs.  9 bytes, for\nexample, could be allocated for 70 bits.\n\nThis is a problem in itself if the Least Significat Bit in a long is in\nthe byte with the largest address, which happens in Big Endian machines.\nThis means genalloc is not allocating the byte in which it will try to\nset or check for a bit.\n\nThis may end up in memory corruption, where genalloc will try to set the\nbits it has not allocated.  In fact, genalloc may not set these bits\nbecause it may find them already set, because they were not zeroed since\nthey were not allocated.  And that\u0027s what causes a BUG when\ngen_pool_destroy is called and check for any set bits.\n\nWhat really happens is that genalloc uses kmalloc_node with __GFP_ZERO\non gen_pool_add_virt.  With SLAB and SLUB, this means the whole slab\nwill be cleared, not only the requested bytes.  Since struct\ngen_pool_chunk has a size that is a multiple of 8, and slab sizes are\nmultiples of 8, we get lucky and allocate and clear the right amount of\nbytes.\n\nHower, this is not the case with SLOB or with older code that did memset\nafter allocating instead of using __GFP_ZERO.\n\nSo, a simple module as this (running 3.6.0), will cause a crash when\nrmmod\u0027ed.\n\n  [root@phantom-lp2 foo]# cat foo.c\n  #include \u003clinux/kernel.h\u003e\n  #include \u003clinux/module.h\u003e\n  #include \u003clinux/init.h\u003e\n  #include \u003clinux/genalloc.h\u003e\n\n  MODULE_LICENSE(\"GPL\");\n  MODULE_VERSION(\"0.1\");\n\n  static struct gen_pool *foo_pool;\n\n  static __init int foo_init(void)\n  {\n          int ret;\n          foo_pool \u003d gen_pool_create(10, -1);\n          if (!foo_pool)\n                  return -ENOMEM;\n          ret \u003d gen_pool_add(foo_pool, 0xa0000000, 32 \u003c\u003c 10, -1);\n          if (ret) {\n                  gen_pool_destroy(foo_pool);\n                  return ret;\n          }\n          return 0;\n  }\n\n  static __exit void foo_exit(void)\n  {\n          gen_pool_destroy(foo_pool);\n  }\n\n  module_init(foo_init);\n  module_exit(foo_exit);\n  [root@phantom-lp2 foo]# zcat /proc/config.gz | grep SLOB\n  CONFIG_SLOB\u003dy\n  [root@phantom-lp2 foo]# insmod ./foo.ko\n  [root@phantom-lp2 foo]# rmmod foo\n  ------------[ cut here ]------------\n  kernel BUG at lib/genalloc.c:243!\n  cpu 0x4: Vector: 700 (Program Check) at [c0000000bb0e7960]\n      pc: c0000000003cb50c: .gen_pool_destroy+0xac/0x110\n      lr: c0000000003cb4fc: .gen_pool_destroy+0x9c/0x110\n      sp: c0000000bb0e7be0\n     msr: 8000000000029032\n    current \u003d 0xc0000000bb0e0000\n    paca    \u003d 0xc000000006d30e00   softe: 0        irq_happened: 0x01\n      pid   \u003d 13044, comm \u003d rmmod\n  kernel BUG at lib/genalloc.c:243!\n  [c0000000bb0e7ca0] d000000004b00020 .foo_exit+0x20/0x38 [foo]\n  [c0000000bb0e7d20] c0000000000dff98 .SyS_delete_module+0x1a8/0x290\n  [c0000000bb0e7e30] c0000000000097d4 syscall_exit+0x0/0x94\n  --- Exception: c00 (System Call) at 000000800753d1a0\n  SP (fffd0b0e640) is in userspace\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Benjamin Gaignard \u003cbenjamin.gaignard@stericsson.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nGit-commit: eedce141cd2dad8d0cefc5468ef41898949a7031\nGit-repo: https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git\nChange-Id: Ic8a8a2d05ee16d59af61d0cc79c88e6e7ab442ae\nSigned-off-by: Sunil Khatri \u003csunilkh@codeaurora.org\u003e\n"
    },
    {
      "commit": "7fa84150b9bff8f848b6b233d25cdadf7ba7572c",
      "tree": "1d8b5f19d76ed7669bc9a40c42fa2002dfd54596",
      "parents": [
        "1c0ed6984ebf784b3d26fa4ac3aba3ba417abe21"
      ],
      "author": {
        "name": "Sunil Khatri",
        "email": "sunilkh@codeaurora.org",
        "time": "Thu Feb 13 19:52:09 2014 +0530"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Fri Apr 04 05:08:56 2014 -0700"
      },
      "message": "genalloc: Correct nbytes calculation on long boundary\n\nIn existing code we calculate nbytes based on the byte\nboundary, but genalloc uses bitmap for maintaining the\nmemory allocation aligned to long. So while calculating\nnbytes we end up getting wrong nbytes.\nexample: lets say nbytes comes to 9 bytes for 70 bits when\nbytes aligned,but if long aligned we will have 3 long words\ni.e 12 bytes. This difference may lead to choosing the\nwrong api for freeing the memory i.e Between kfree() and\nvfree().\nFix was inspired by an upstream commit\needce141cd2dad8d0cefc5468ef41898949a7031, bringing same fix\ninto the gen_pool_detroy path.\n\nChange-Id: I942caf59e25515c780896b328b912604df9e10bf\nSigned-off-by: Hareesh Gundu \u003chareeshg@codeaurora.org\u003e\nSigned-off-by: Sunil Khatri \u003csunilkh@codeaurora.org\u003e\n"
    },
    {
      "commit": "66d383de0963dd351051304e36247e9a6fa66b77",
      "tree": "5cd17ffcb6edfa4385a2ceddb63ada9efdea2ee1",
      "parents": [
        "c523abc466c9b7c693e4a528ca2f54c6e931b6a6",
        "2606524141e4ff9b6a5d0bcbd9d601dfc5a8285c"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Mar 07 11:56:04 2014 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Mar 07 11:56:04 2014 -0800"
      },
      "message": "Merge tag \u0027v3.4.82\u0027 into cm-11.0\n\nThis is the 3.4.82 stable release\n\nConflicts:\n\tarch/arm/kernel/traps.c\n\tmm/internal.h\n\nChange-Id: Ie3b1ffdfe133e76cfa3eaaa4305535af8490d7cc\n"
    },
    {
      "commit": "26fead641f8e2a5052aa3cfc88caf876f0e84941",
      "tree": "8441d517c6bb82508196ac15a8f16228446dea82",
      "parents": [
        "374d3a4168761631fe309e2bda8dc3bfb4eadcb6"
      ],
      "author": {
        "name": "Dan Rosenberg",
        "email": "drosenberg@vsecurity.com",
        "time": "Mon Jul 30 14:40:26 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 20 10:45:33 2014 -0800"
      },
      "message": "lib/vsprintf.c: kptr_restrict: fix pK-error in SysRq show-all-timers(Q)\n\ncommit 3715c5309f6d175c3053672b73fd4f73be16fd07 upstream.\n\nWhen using ALT+SysRq+Q all the pointers are replaced with \"pK-error\" like\nthis:\n\n\t[23153.208033]   .base:               pK-error\n\nwith echo h \u003e /proc/sysrq-trigger it works:\n\n\t[23107.776363]   .base:       ffff88023e60d540\n\nThe intent behind this behavior was to return \"pK-error\" in cases where\nthe %pK format specifier was used in interrupt context, because the\nCAP_SYSLOG check wouldn\u0027t be meaningful.  Clearly this should only apply\nwhen kptr_restrict is actually enabled though.\n\nReported-by: Stevie Trujillo \u003cstevie.trujillo@gmail.com\u003e\nSigned-off-by: Dan Rosenberg \u003cdan.j.rosenberg@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: Li Zefan \u003clizefan@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "36f0c45db55e2e840deefc286a33c2c7aef2f18e",
      "tree": "b60ecc8db08ea8bc6496dfb1684533668b738cd2",
      "parents": [
        "d89985cb8cf57e6e444ee4ddf48cec39d0f28b1c"
      ],
      "author": {
        "name": "Peter Oberparleiter",
        "email": "oberpar@linux.vnet.ibm.com",
        "time": "Thu Feb 06 15:58:20 2014 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 20 10:45:32 2014 -0800"
      },
      "message": "x86, hweight: Fix BUG when booting with CONFIG_GCOV_PROFILE_ALL\u003dy\n\ncommit 6583327c4dd55acbbf2a6f25e775b28b3abf9a42 upstream.\n\nCommit d61931d89b, \"x86: Add optimized popcnt variants\" introduced\ncompile flag -fcall-saved-rdi for lib/hweight.c. When combined with\noptions -fprofile-arcs and -O2, this flag causes gcc to generate\nbroken constructor code. As a result, a 64 bit x86 kernel compiled\nwith CONFIG_GCOV_PROFILE_ALL\u003dy prints message \"gcov: could not create\nfile\" and runs into sproadic BUGs during boot.\n\nThe gcc people indicate that these kinds of problems are endemic when\nusing ad hoc calling conventions.  It is therefore best to treat any\nfile compiled with ad hoc calling conventions as an isolated\nenvironment and avoid things like profiling or coverage analysis,\nsince those subsystems assume a \"normal\" calling conventions.\n\nThis patch avoids the bug by excluding lib/hweight.o from coverage\nprofiling.\n\nReported-by: Meelis Roos \u003cmroos@linux.ee\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Peter Oberparleiter \u003coberpar@linux.vnet.ibm.com\u003e\nLink: http://lkml.kernel.org/r/52F3A30C.7050205@linux.vnet.ibm.com\nSigned-off-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "454933d439c0c54b0288085873d9eb2aa2d775b8",
      "tree": "e145657393953ab6e98044edfeaecb42ac548ded",
      "parents": [
        "3be9a220c1be739e7cc13aa778c2d97064ff430e"
      ],
      "author": {
        "name": "Syed Rameez Mustafa",
        "email": "rameezmustafa@codeaurora.org",
        "time": "Tue Dec 10 12:49:06 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:29 2014 -0800"
      },
      "message": "lib: spinlock_debug: increase spin dump timeout to one second\n\nIncrease spin dump timeout so that it is back in sync with the\nupstream value.\n\nChange-Id: I4b8896b69dadd66196090d86e40da89766b048e6\nSigned-off-by: Syed Rameez Mustafa \u003crameezmustafa@codeaurora.org\u003e\n"
    },
    {
      "commit": "3be9a220c1be739e7cc13aa778c2d97064ff430e",
      "tree": "f36ebe7bd393590e677348e8b26b1dcfa00149cb",
      "parents": [
        "f2ee187924b3fdb2475fc86641a8508f3c579abd"
      ],
      "author": {
        "name": "Matt Wagantall",
        "email": "mattw@codeaurora.org",
        "time": "Thu Dec 05 20:01:32 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:29 2014 -0800"
      },
      "message": "sched/debug: Make sysrq prints of sched debug data optional\n\nCalls to sysrq_sched_debug_show() can yield rather verbose output\nwhich contributes to log spew and, under heavy load, may increase\nthe chances of a watchdog bark.\n\nMake printing of this data optional with the introduction of a\nnew Kconfig, CONFIG_SYSRQ_SCHED_DEBUG.\n\nChange-Id: I5f54d901d0dea403109f7ac33b8881d967a899ed\nSigned-off-by: Matt Wagantall \u003cmattw@codeaurora.org\u003e\n"
    },
    {
      "commit": "d93143539ee3c15dc1b13d29b2c19f48fca4fa83",
      "tree": "88528ba7750dd60e010c806e1bd0c15bdaec3c7a",
      "parents": [
        "2df4c5f920f5279db33637493d1d1922867ee76f"
      ],
      "author": {
        "name": "Syed Rameez Mustafa",
        "email": "rameezmustafa@codeaurora.org",
        "time": "Mon Aug 05 16:32:13 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:13 2014 -0800"
      },
      "message": "lib: spinlock_debug: increase spin dump timeout\n\nOn certain targets the worst case console buffer draining time can\nexceed the aggressive spin dump timeout value. Relax the timeout value\nto cater to these scenarios.\n\nChange-Id: I7312ffe06bafd2dc7adf0f4e8b73a53fc5839235\nSigned-off-by: Syed Rameez Mustafa \u003crameezmustafa@codeaurora.org\u003e\n"
    },
    {
      "commit": "2df4c5f920f5279db33637493d1d1922867ee76f",
      "tree": "2574ee4fbd2f6a4626ef0034955fa72e0360b23f",
      "parents": [
        "95024a08ad7e0bc8b2dfc120a2147035782e38b3"
      ],
      "author": {
        "name": "Vikram Mulukutla",
        "email": "markivx@codeaurora.org",
        "time": "Thu Aug 02 13:18:15 2012 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:13 2014 -0800"
      },
      "message": "lib: spinlock_debug: Avoid livelock in do_raw_spin_lock\n\nThe logic in do_raw_spin_lock attempts to acquire a spinlock\nby invoking arch_spin_trylock in a loop with a delay between\neach attempt. Now consider the following situation in a 2\nCPU system:\n\n1. Cpu 0 continually acquires and releases a spinlock in a\n   tight loop; it stays in this loop until some condition X\n   is satisfied. X can only be satisfied by another CPU.\n\n2. Cpu 1 tries to acquire the same spinlock, in an attempt\n   to satisfy the aforementioned condition X. However, it\n   never sees the unlocked value of the lock because the\n   debug spinlock code uses trylock instead of just lock;\n   it checks at all the wrong moments - whenever Cpu 0 has\n   locked the lock.\n\nNow in the absence of debug spinlocks, the architecture specific\nspinlock code can correctly allow Cpu1 to wait in a \"queue\"\n(e.g., ticket spinlocks), ensuring that it acquires the lock at\nsome point. However, with the debug spinlock code, livelock\ncan easily occur due to the use of try_lock, which obviously\ncannot put the CPU in that \"queue\".\n\nAddress this by actually attempting arch_spin_lock once it is\nsuspected that there is a spinlock lockup. If we\u0027re in a\nsituation that is described above, the arch_spin_lock should\nsucceed; otherwise other timeout mechanisms (e.g., watchdog)\nshould alert the system of a lockup.\n\nAdditionally, the delay between each trylock attempt adds up\nto a total delay of 1 second. On some embedded architectures,\nthis is an unacceptably large value. Reduce this to a ~62 ms\ndelay.\n\nCRs-Fixed: 393351\nChange-Id: I56f0d8f5e483cd7e8167fc7a363b9de7777a0830\nSigned-off-by: Vikram Mulukutla \u003cmarkivx@codeaurora.org\u003e\n"
    },
    {
      "commit": "1bee7b9b43a3b5530c62523d582aef7c3f7028ca",
      "tree": "65467bc85c4f505afd64c09d4044c1645c1ecc56",
      "parents": [
        "3bb998ff6cbde07fdd25d039487195c29b17def1"
      ],
      "author": {
        "name": "Syed Rameez Mustafa",
        "email": "rameezmustafa@codeaurora.org",
        "time": "Mon Jul 15 11:52:09 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Fri Jan 17 22:12:13 2014 -0800"
      },
      "message": "kernel/lib: add additional debug capabilites for data corruption\n\nData corruptions in the kernel often end up in system crashes that\nare easier to debug closer to the time of detection. Specifically,\nif we do not panic immediately after lock or list corruptions have been\ndetected, the problem context is lost in the ensuing system mayhem.\nAdd support for allowing system crash immediately after such corruptions\nare detected. The CONFIG option controls the enabling/disabling of the\nfeature.\n\nChange-Id: I9b2eb62da506a13007acff63e85e9515145909ff\nSigned-off-by: Syed Rameez Mustafa \u003crameezmustafa@codeaurora.org\u003e\n"
    },
    {
      "commit": "de0f9a5a9d7932086e623560d66655cc8507cfec",
      "tree": "d9e4678d68da38d7670b79c8b5e8782445c5ad7e",
      "parents": [
        "e1a3c5a3706d580390c02c69cb14dcd679d31d91",
        "84dfcb758ba7cce52ef475ac96861a558e1a20ca"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Dec 21 14:22:41 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Dec 21 14:22:41 2013 -0800"
      },
      "message": "Merge tag \u0027v3.4.75\u0027 into cm-11.0\n\nThis is the 3.4.75 stable release\n\nConflicts:\n\tdrivers/md/dm-crypt.c\n\tdrivers/mmc/card/block.c\n\tdrivers/net/ethernet/smsc/smc91x.h\n\nChange-Id: I39f38ef5530c5fef07583beb9d76b983e71b9ff3\n"
    },
    {
      "commit": "607899add60d76e1db606597bcce9b5dbe1da420",
      "tree": "8b1af148ead5cf45746a28a795465b13d83817c5",
      "parents": [
        "09b3d7972025ff9e654b8cce3453b5d9f205cbf8"
      ],
      "author": {
        "name": "Prakash Kamliya",
        "email": "pkamliya@codeaurora.org",
        "time": "Sat Dec 07 17:17:27 2013 +0530"
      },
      "committer": {
        "name": "Ananta Kishore K",
        "email": "akollipa@codeaurora.org",
        "time": "Tue Dec 17 15:20:28 2013 +0530"
      },
      "message": "idr: fix a subtle bug in idr_get_next()\n\nThe iteration logic of idr_get_next() is borrowed mostly verbatim from\nidr_for_each().  It walks down the tree looking for the slot matching\nthe current ID.  If the matching slot is not found, the ID is\nincremented by the distance of single slot at the given level and\nrepeats.\n\nThe implementation assumes that during the whole iteration id is aligned\nto the layer boundaries of the level closest to the leaf, which is true\nfor all iterations starting from zero or an existing element and thus is\nfine for idr_for_each().\n\nHowever, idr_get_next() may be given any point and if the starting id\nhits in the middle of a non-existent layer, increment to the next layer\nwill end up skipping the same offset into it.  For example, an IDR with\nIDs filled between [64, 127] would look like the following.\n\n          [  0  64 ... ]\n       /----/   |\n       |        |\n      NULL    [ 64 ... 127 ]\n\nIf idr_get_next() is called with 63 as the starting point, it will try\nto follow down the pointer from 0.  As it is NULL, it will then try to\nproceed to the next slot in the same level by adding the slot distance\nat that level which is 64 - making the next try 127.  It goes around the\nloop and finds and returns 127 skipping [64, 126].\n\nNote that this bug also triggers in idr_for_each_entry() loop which\ndeletes during iteration as deletions can make layers go away leaving\nthe iteration with unaligned ID into missing layers.\n\nFix it by ensuring proceeding to the next slot doesn\u0027t carry over the\nunaligned offset - ie.  use round_up(id + 1, slot_distance) instead of\nid +\u003d slot_distance.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: David Teigland \u003cteigland@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n\nChange-Id: Ifb6d64747e7f08e2f5d7609bd66a48405f0c9b95\nSigned-off-by: Prakash Kamliya \u003cpkamliya@codeaurora.org\u003e\n"
    },
    {
      "commit": "2a38ada0f1ab9f894eea4428731ebc811b51c3f3",
      "tree": "759c765808a23a3a35e4ba10d8306c847c0205b7",
      "parents": [
        "19218e895cefdd389c96af12c93c89e7276bbaad",
        "44d19f5a04ae4e433548ba2f25e4d2ccfcac765e"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Dec 08 12:50:38 2013 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Dec 08 12:50:38 2013 -0800"
      },
      "message": "Merge tag \u0027v3.4.72\u0027 into tmp\n\nThis is the 3.4.72 stable release\n\nConflicts:\n\tarch/arm/Kconfig\n\tarch/arm/include/asm/mutex.h\n\tarch/arm/kernel/perf_event.c\n\tarch/arm/kernel/traps.c\n\tarch/arm/mm/dma-mapping.c\n\tdrivers/base/power/main.c\n\tdrivers/bluetooth/ath3k.c\n\tdrivers/bluetooth/btusb.c\n\tdrivers/gpu/drm/radeon/radeon_mode.h\n\tdrivers/mmc/card/block.c\n\tdrivers/mmc/host/sdhci.c\n\tdrivers/usb/core/message.c\n\tdrivers/usb/host/xhci-plat.c\n\tdrivers/usb/host/xhci.h\n\tdrivers/virtio/virtio_ring.c\n\tfs/ubifs/dir.c\n\tinclude/linux/freezer.h\n\tinclude/linux/virtio.h\n\tinclude/media/v4l2-ctrls.h\n\tinclude/net/bluetooth/hci_core.h\n\tinclude/net/bluetooth/mgmt.h\n\tkernel/cgroup.c\n\tkernel/futex.c\n\tkernel/signal.c\n\tnet/bluetooth/hci_conn.c\n\tnet/bluetooth/hci_core.c\n\tnet/bluetooth/hci_event.c\n\tnet/bluetooth/l2cap_core.c\n\tnet/bluetooth/mgmt.c\n\tnet/bluetooth/rfcomm/sock.c\n\tnet/bluetooth/smp.c\n\nChange-Id: I4fb0d5de74ca76f933d95d98e1a9c2c859402f34\n"
    },
    {
      "commit": "4dd7a52b53ab79e8990bb295a2907d47345d2fa2",
      "tree": "68e671edcbc17a2b0a5df560bd05c1f28b81c1e2",
      "parents": [
        "4bb2cc8ea8b76426dcb60b95d27d599cb426bcf9"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Mon Nov 11 12:20:32 2013 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Dec 08 07:29:41 2013 -0800"
      },
      "message": "random32: fix off-by-one in seeding requirement\n\n[ Upstream commit 51c37a70aaa3f95773af560e6db3073520513912 ]\n\nFor properly initialising the Tausworthe generator [1], we have\na strict seeding requirement, that is, s1 \u003e 1, s2 \u003e 7, s3 \u003e 15.\n\nCommit 697f8d0348 (\"random32: seeding improvement\") introduced\na __seed() function that imposes boundary checks proposed by the\nerrata paper [2] to properly ensure above conditions.\n\nHowever, we\u0027re off by one, as the function is implemented as:\n\"return (x \u003c m) ? x + m : x;\", and called with __seed(X, 1),\n__seed(X, 7), __seed(X, 15). Thus, an unwanted seed of 1, 7, 15\nwould be possible, whereas the lower boundary should actually\nbe of at least 2, 8, 16, just as GSL does. Fix this, as otherwise\nan initialization with an unwanted seed could have the effect\nthat Tausworthe\u0027s PRNG properties cannot not be ensured.\n\nNote that this PRNG is *not* used for cryptography in the kernel.\n\n [1] http://www.iro.umontreal.ca/~lecuyer/myftp/papers/tausme.ps\n [2] http://www.iro.umontreal.ca/~lecuyer/myftp/papers/tausme2.ps\n\nJoint work with Hannes Frederic Sowa.\n\nFixes: 697f8d0348a6 (\"random32: seeding improvement\")\nCc: Stephen Hemminger \u003cstephen@networkplumber.org\u003e\nCc: Florian Weimer \u003cfweimer@redhat.com\u003e\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "22363fb4b996766c83d25f47f2de605a6720ccf0",
      "tree": "193bfb63664b150c614b055926dcd71461e74bad",
      "parents": [
        "80b41caaa1455afd259de89e3d430334f8b57156"
      ],
      "author": {
        "name": "Ryan Mallon",
        "email": "rmallon@gmail.com",
        "time": "Tue Nov 12 15:08:51 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Dec 04 10:50:14 2013 -0800"
      },
      "message": "vsprintf: check real user/group id for %pK\n\ncommit 312b4e226951f707e120b95b118cbc14f3d162b2 upstream.\n\nSome setuid binaries will allow reading of files which have read\npermission by the real user id.  This is problematic with files which\nuse %pK because the file access permission is checked at open() time,\nbut the kptr_restrict setting is checked at read() time.  If a setuid\nbinary opens a %pK file as an unprivileged user, and then elevates\npermissions before reading the file, then kernel pointer values may be\nleaked.\n\nThis happens for example with the setuid pppd application on Ubuntu 12.04:\n\n  $ head -1 /proc/kallsyms\n  00000000 T startup_32\n\n  $ pppd file /proc/kallsyms\n  pppd: In file /proc/kallsyms: unrecognized option \u0027c1000000\u0027\n\nThis will only leak the pointer value from the first line, but other\nsetuid binaries may leak more information.\n\nFix this by adding a check that in addition to the current process having\nCAP_SYSLOG, that effective user and group ids are equal to the real ids.\nIf a setuid binary reads the contents of a file which uses %pK then the\npointer values will be printed as NULL if the real user is unprivileged.\n\nUpdate the sysctl documentation to reflect the changes, and also correct\nthe documentation to state the kptr_restrict\u003d0 is the default.\n\nThis is a only temporary solution to the issue.  The correct solution is\nto do the permission check at open() time on files, and to replace %pK\nwith a function which checks the open() time permission.  %pK uses in\nprintk should be removed since no sane permission check can be done, and\ninstead protected by using dmesg_restrict.\n\nSigned-off-by: Ryan Mallon \u003crmallon@gmail.com\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Alexander Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Joe Perches \u003cjoe@perches.com\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\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "366f8a3ab0757921c4a925f7248e8c3f120305f9",
      "tree": "93fe862e9cd6a7fbf07894442452f15c8f541855",
      "parents": [
        "10ff8e6bf05b639df6d68abe5351be5d0cc18e4d"
      ],
      "author": {
        "name": "Ming Lei",
        "email": "ming.lei@canonical.com",
        "time": "Thu Oct 31 16:34:17 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Nov 13 12:01:49 2013 +0900"
      },
      "message": "lib/scatterlist.c: don\u0027t flush_kernel_dcache_page on slab page\n\ncommit 3d77b50c5874b7e923be946ba793644f82336b75 upstream.\n\nCommit b1adaf65ba03 (\"[SCSI] block: add sg buffer copy helper\nfunctions\") introduces two sg buffer copy helpers, and calls\nflush_kernel_dcache_page() on pages in SG list after these pages are\nwritten to.\n\nUnfortunately, the commit may introduce a potential bug:\n\n - Before sending some SCSI commands, kmalloc() buffer may be passed to\n   block layper, so flush_kernel_dcache_page() can see a slab page\n   finally\n\n - According to cachetlb.txt, flush_kernel_dcache_page() is only called\n   on \"a user page\", which surely can\u0027t be a slab page.\n\n - ARCH\u0027s implementation of flush_kernel_dcache_page() may use page\n   mapping information to do optimization so page_mapping() will see the\n   slab page, then VM_BUG_ON() is triggered.\n\nAaro Koskinen reported the bug on ARM/kirkwood when DEBUG_VM is enabled,\nand this patch fixes the bug by adding test of \u0027!PageSlab(miter-\u003epage)\u0027\nbefore calling flush_kernel_dcache_page().\n\nSigned-off-by: Ming Lei \u003cming.lei@canonical.com\u003e\nReported-by: Aaro Koskinen \u003caaro.koskinen@iki.fi\u003e\nTested-by: Simon Baatz \u003cgmbnomis@gmail.com\u003e\nCc: Russell King - ARM Linux \u003clinux@arm.linux.org.uk\u003e\nCc: Will Deacon \u003cwill.deacon@arm.com\u003e\nCc: Aaro Koskinen \u003caaro.koskinen@iki.fi\u003e\nAcked-by: Catalin Marinas \u003ccatalin.marinas@arm.com\u003e\nCc: FUJITA Tomonori \u003cfujita.tomonori@lab.ntt.co.jp\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: \"James E.J. Bottomley\" \u003cJBottomley@parallels.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "4c481c15615a3ff1cd28d2cfd687817704be63ad",
      "tree": "dc15be09c319156ed362f1c349bc1d052cfb7542",
      "parents": [
        "a8cefcec4999befc00b4be17985644b7a092dff1",
        "0841f631e5cecf7fb08f6ae6c89e47b79dca83cd"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Oct 22 15:09:42 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Oct 22 15:09:42 2013 -0700"
      },
      "message": "Merge tag \u0027AU_LINUX_ANDROID_JB_2.6.04.03.00.109.082\u0027 into revert-linux\n\nAU_LINUX_ANDROID_JB_2.6.04.03.00.109.082 based on quic/aosp/jb_2.6\n\nConflicts:\n\tarch/arm/mach-msm/ipc_router.h\n\tarch/arm/mach-msm/ipc_socket.c\n\tdrivers/media/video/msm/actuators/msm_actuator.c\n\tdrivers/media/video/msm/csi/msm_csid.c\n\tdrivers/media/video/msm/vfe/msm_vfe32.c\n\tdrivers/video/msm/hdmi_msm.c\n\tinclude/media/msm_camera.h\n\nChange-Id: I9285b7519314f034fb8a6a4b7e2d21aa2e3e3739\n"
    },
    {
      "commit": "022a41db8aa1bc0b4ff4c013f889292324a1c465",
      "tree": "11f00ef8d0aa584b956a194de5ee4c3be5fc5120",
      "parents": [
        "9712612a91e92824349ce9fece31dba6d2fbde70"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Mon Apr 29 15:06:11 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Oct 13 15:42:49 2013 -0700"
      },
      "message": "mm, show_mem: suppress page counts in non-blockable contexts\n\ncommit 4b59e6c4730978679b414a8da61514a2518da512 upstream.\n\nOn large systems with a lot of memory, walking all RAM to determine page\ntypes may take a half second or even more.\n\nIn non-blockable contexts, the page allocator will emit a page allocation\nfailure warning unless __GFP_NOWARN is specified.  In such contexts, irqs\nare typically disabled and such a lengthy delay may even result in NMI\nwatchdog timeouts.\n\nTo fix this, suppress the page walk in such contexts when printing the\npage allocation failure warning.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nAcked-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Dave Hansen \u003cdave@linux.vnet.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Xishi Qiu \u003cqiuxishi@huawei.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "f5484ed0b52de3008fa843d82e901654ddfe6346",
      "tree": "fbe2049f6a1ffda0a09d4a34da643e2d31532ed0",
      "parents": [
        "7044419e477677c692d9057f61e81a54da3f5f5b"
      ],
      "author": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@codeaurora.org",
        "time": "Wed Jul 18 19:25:37 2012 -0600"
      },
      "committer": {
        "name": "Karthikeyan Ramasubramanian",
        "email": "kramasub@codeaurora.org",
        "time": "Fri Aug 09 09:44:48 2013 -0600"
      },
      "message": "lib: qmi: Introduce QMI Encode/Decode library\n\nIntroduce Encode/Decode Library to perform QMI message marshaling.\nThe QMI Encode/Decode Library encodes the kernel C data structures into\nQMI wire format and decodes the messages in QMI wire format into kernel\nC structures.\n\nChange-Id: Ib443e697dafedeac8a790de9a3a8ed4a8444082f\nSigned-off-by: Karthikeyan Ramasubramanian \u003ckramasub@codeaurora.org\u003e\n"
    },
    {
      "commit": "dde448d95d8698ee4c8373bb48fe08a22f41052f",
      "tree": "7fe87fa93bfa5b81e6f87b147e32512d2e8198e3",
      "parents": [
        "ac4f6190fae02a3dc30133f90488b996f726bf7a",
        "f95b978981a7d154ba40d14c18e8ed5c694e6124"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Thu Jun 20 11:32:42 2013 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Thu Jun 20 11:32:42 2013 -0700"
      },
      "message": "Merge tag \u0027v3.4.10\u0027 into cm-10.1\n\nThis is the 3.4.10 stable release\n\nConflicts:\n\tarch/arm/mm/tlb-v7.S\n\tarch/arm/vfp/entry.S\n\tdrivers/base/power/main.c\n\tdrivers/mmc/host/sdhci.c\n\tdrivers/net/tun.c\n\tdrivers/usb/core/hub.c\n\tdrivers/usb/host/xhci.h\n\tinclude/linux/sched.h\n\tkernel/power/suspend.c\n\nChange-Id: Ia2477ec93ceb64b13dd1a2d8aa646cb233387d14\n"
    },
    {
      "commit": "b6a526aa935210e5a292cd7919fdecf14e240fac",
      "tree": "31c9e719639e47f341836c5c5760cda05840c417",
      "parents": [
        "11e88c5e7bbb812ed25f1e6a8e98d334f0e7dc38"
      ],
      "author": {
        "name": "wang, biao",
        "email": "biao.wang@intel.com",
        "time": "Thu May 16 09:50:13 2013 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Jun 07 12:49:13 2013 -0700"
      },
      "message": "klist: del waiter from klist_remove_waiters before wakeup waitting process\n\ncommit ac5a2962b02f57dea76d314ef2521a2170b28ab6 upstream.\n\nThere is a race between klist_remove and klist_release. klist_remove\nuses a local var waiter saved on stack. When klist_release calls\nwake_up_process(waiter-\u003eprocess) to wake up the waiter, waiter might run\nimmediately and reuse the stack. Then, klist_release calls\nlist_del(\u0026waiter-\u003elist) to change previous\nwait data and cause prior waiter thread corrupt.\n\nThe patch fixes it against kernel 3.9.\n\nSigned-off-by: wang, biao \u003cbiao.wang@intel.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "2931b31ff9987ddbaebc4101e159a9e298e792ef",
      "tree": "4d87d6b3001869a27a329fe11b4901851dce6507",
      "parents": [
        "a7d507200f9a0de5b0d516cd67d088fa399ed54a"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Apr 13 15:15:30 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Apr 16 21:27:27 2013 -0700"
      },
      "message": "kobject: fix kset_find_obj() race with concurrent last kobject_put()\n\ncommit a49b7e82cab0f9b41f483359be83f44fbb6b4979 upstream.\n\nAnatol Pomozov identified a race condition that hits module unloading\nand re-loading.  To quote Anatol:\n\n \"This is a race codition that exists between kset_find_obj() and\n  kobject_put().  kset_find_obj() might return kobject that has refcount\n  equal to 0 if this kobject is freeing by kobject_put() in other\n  thread.\n\n  Here is timeline for the crash in case if kset_find_obj() searches for\n  an object tht nobody holds and other thread is doing kobject_put() on\n  the same kobject:\n\n    THREAD A (calls kset_find_obj())     THREAD B (calls kobject_put())\n    splin_lock()\n                                         atomic_dec_return(kobj-\u003ekref), counter gets zero here\n                                         ... starts kobject cleanup ....\n                                         spin_lock() // WAIT thread A in kobj_kset_leave()\n    iterate over kset-\u003elist\n    atomic_inc(kobj-\u003ekref) (counter becomes 1)\n    spin_unlock()\n                                         spin_lock() // taken\n                                         // it does not know that thread A increased counter so it\n                                         remove obj from list\n                                         spin_unlock()\n                                         vfree(module) // frees module object with containing kobj\n\n    // kobj points to freed memory area!!\n    kobject_put(kobj) // OOPS!!!!\n\n  The race above happens because module.c tries to use kset_find_obj()\n  when somebody unloads module.  The module.c code was introduced in\n  commit 6494a93d55fa\"\n\nAnatol supplied a patch specific for module.c that worked around the\nproblem by simply not using kset_find_obj() at all, but rather than make\na local band-aid, this just fixes kset_find_obj() to be thread-safe\nusing the proper model of refusing the get a new reference if the\nrefcount has already dropped to zero.\n\nSee examples of this proper refcount handling not only in the kref\ndocumentation, but in various other equivalent uses of this pattern by\ngrepping for atomic_inc_not_zero().\n\n[ Side note: the module race does indicate that module loading and\n  unloading is not properly serialized wrt sysfs information using the\n  module mutex.  That may require further thought, but this is the\n  correct fix at the kobject layer regardless. ]\n\nReported-analyzed-and-tested-by: Anatol Pomozov \u003canatol.pomozov@gmail.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a8aa6d32035120fdfef09ccb88c694047013eb7b",
      "tree": "e0d1b9b2acf9960981e2acbfc77b2aada035cbb9",
      "parents": [
        "c93c85196e2c7001daa8a04b83a9d6dd4febfb59"
      ],
      "author": {
        "name": "Tejun Heo",
        "email": "tj@kernel.org",
        "time": "Wed Feb 27 17:03:34 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Mar 04 06:06:40 2013 +0800"
      },
      "message": "idr: fix a subtle bug in idr_get_next()\n\ncommit 6cdae7416a1c45c2ce105a78187d9b7e8feb9e24 upstream.\n\nThe iteration logic of idr_get_next() is borrowed mostly verbatim from\nidr_for_each().  It walks down the tree looking for the slot matching\nthe current ID.  If the matching slot is not found, the ID is\nincremented by the distance of single slot at the given level and\nrepeats.\n\nThe implementation assumes that during the whole iteration id is aligned\nto the layer boundaries of the level closest to the leaf, which is true\nfor all iterations starting from zero or an existing element and thus is\nfine for idr_for_each().\n\nHowever, idr_get_next() may be given any point and if the starting id\nhits in the middle of a non-existent layer, increment to the next layer\nwill end up skipping the same offset into it.  For example, an IDR with\nIDs filled between [64, 127] would look like the following.\n\n          [  0  64 ... ]\n       /----/   |\n       |        |\n      NULL    [ 64 ... 127 ]\n\nIf idr_get_next() is called with 63 as the starting point, it will try\nto follow down the pointer from 0.  As it is NULL, it will then try to\nproceed to the next slot in the same level by adding the slot distance\nat that level which is 64 - making the next try 127.  It goes around the\nloop and finds and returns 127 skipping [64, 126].\n\nNote that this bug also triggers in idr_for_each_entry() loop which\ndeletes during iteration as deletions can make layers go away leaving\nthe iteration with unaligned ID into missing layers.\n\nFix it by ensuring proceeding to the next slot doesn\u0027t carry over the\nunaligned offset - ie.  use round_up(id + 1, slot_distance) instead of\nid +\u003d slot_distance.\n\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: David Teigland \u003cteigland@redhat.com\u003e\nCc: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "e833acaf2b5cfac0fb53692652a8c39667f1e559",
      "tree": "f530c2ea75a3d7e52045e1f543ced58757895b9d",
      "parents": [
        "7dfc4b284ca395a035e7da058f86dfb4275dd509"
      ],
      "author": {
        "name": "Duy Truong",
        "email": "dtruong@codeaurora.org",
        "time": "Tue Feb 12 13:35:08 2013 -0800"
      },
      "committer": {
        "name": "Duy Truong",
        "email": "dtruong@codeaurora.org",
        "time": "Tue Feb 12 13:35:08 2013 -0800"
      },
      "message": "Update copyright to The Linux Foundation\n\nChange-Id: Ibead64ce2e901dede2ddd1b86088b88f2350ce92\nSigned-off-by: Duy Truong \u003cdtruong@codeaurora.org\u003e\n"
    },
    {
      "commit": "b0cc9fb10c1b7240b229b40391f8da2a987995bd",
      "tree": "479d01601c939310c0da591f453b0d0d24e53cd4",
      "parents": [
        "398cc33fbceda864a91433b2a76bb510a640021a"
      ],
      "author": {
        "name": "YOSHIFUJI Hideaki",
        "email": "yoshfuji@linux-ipv6.org",
        "time": "Fri Jan 25 16:54:20 2013 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Feb 11 08:47:17 2013 -0800"
      },
      "message": "digsig: Fix memory leakage in digsig_verify_rsa()\n\ncommit 7810cc1e7721220f1ed2a23ca95113d6434f6dcd upstream.\n\ndigsig_verify_rsa() does not free kmalloc\u0027ed buffer returned by\nmpi_get_buffer().\n\nSigned-off-by: YOSHIFUJI Hideaki \u003cyoshfuji@linux-ipv6.org\u003e\nSigned-off-by: Dmitry Kasatkin \u003cdmitry.kasatkin@intel.com\u003e\nSigned-off-by: James Morris \u003cjames.l.morris@oracle.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "0f7ac9c81bdb08763e7ca02317592281e22542bc",
      "tree": "d898118dd31890d4383ae33597c4a02a33463bf6",
      "parents": [
        "1a0da46b46bc9b27414fcb1f1ad6f0eeee311f5e"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Wed Dec 19 23:39:48 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Jan 11 09:07:17 2013 -0800"
      },
      "message": "lib: atomic64: Initialize locks statically to fix early users\n\ncommit fcc16882ac4532aaa644bff444f0c5d6228ba71e upstream.\n\nThe atomic64 library uses a handful of static spin locks to implement\natomic 64-bit operations on architectures without support for atomic\n64-bit instructions.\n\nUnfortunately, the spinlocks are initialized in a pure initcall and that\nis too late for the vfs namespace code which wants to use atomic64\noperations before the initcall is run.\n\nThis became a problem as of commit 8823c079ba71: \"vfs: Add setns support\nfor the mount namespace\".\n\nThis leads to BUG messages such as:\n\n  BUG: spinlock bad magic on CPU#0, swapper/0/0\n   lock: atomic64_lock+0x240/0x400, .magic: 00000000, .owner: \u003cnone\u003e/-1, .owner_cpu: 0\n    do_raw_spin_lock+0x158/0x198\n    _raw_spin_lock_irqsave+0x4c/0x58\n    atomic64_add_return+0x30/0x5c\n    alloc_mnt_ns.clone.14+0x44/0xac\n    create_mnt_ns+0xc/0x54\n    mnt_init+0x120/0x1d4\n    vfs_caches_init+0xe0/0x10c\n    start_kernel+0x29c/0x300\n\ncoming out early on during boot when spinlock debugging is enabled.\n\nFix this by initializing the spinlocks statically at compile time.\n\nReported-and-tested-by: Vaibhav Bedia \u003cvaibhav.bedia@ti.com\u003e\nTested-by: Tony Lindgren \u003ctony@atomide.com\u003e\nCc: Eric W. Biederman \u003cebiederm@xmission.com\u003e\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "7da2f8907ba51acd7d13dd62e71f14972e9b5161",
      "tree": "a1a4417c766f6b29f26a5c35586dc5dc9a4564c8",
      "parents": [
        "53b360c604575070c83d2da83636af4e5c5de35a"
      ],
      "author": {
        "name": "Manuel Lauss",
        "email": "manuel.lauss@gmail.com",
        "time": "Thu Nov 22 11:58:22 2012 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Dec 03 11:47:23 2012 -0800"
      },
      "message": "MPI: Fix compilation on MIPS with GCC 4.4 and newer\n\ncommit a3cea9894157c20a5b1ec08b7e0b5f2019740c10 upstream.\n\nSince 4.4 GCC on MIPS no longer recognizes the \"h\" constraint,\nleading to this build failure:\n\n  CC      lib/mpi/generic_mpih-mul1.o\nlib/mpi/generic_mpih-mul1.c: In function \u0027mpihelp_mul_1\u0027:\nlib/mpi/generic_mpih-mul1.c:50:3: error: impossible constraint in \u0027asm\u0027\n\nThis patch updates MPI with the latest umul_ppm implementations for MIPS.\n\nSigned-off-by: Manuel Lauss \u003cmanuel.lauss@gmail.com\u003e\nCc: Linux-MIPS \u003clinux-mips@linux-mips.org\u003e\nCc: Dmitry Kasatkin \u003cdmitry.kasatkin@intel.com\u003e\nCc: James Morris \u003cjmorris@namei.org\u003e\nPatchwork: https://patchwork.linux-mips.org/patch/4612/\nSigned-off-by: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Shuah Khan \u003cshuah.khan@hp.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "cf3680760fa93f925060d5828996f394488aa9cd",
      "tree": "a81cca6450a43fc83992c279b8d16643fc5b17d3",
      "parents": [
        "2b28565e3fa0fe4a4f772269eeb5bc0f6aa01054"
      ],
      "author": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Thu Aug 30 17:15:02 2012 -0700"
      },
      "committer": {
        "name": "Sudhir Sharma",
        "email": "sudsha@codeaurora.org",
        "time": "Fri Nov 02 12:17:30 2012 -0700"
      },
      "message": "lib: Pass the correct align offset to bitmap_find_next_zero_area_off\n\nbitmap_find_next_zero_area_off requires everything to be given in terms\nof bits. genpool no longer keeps track of everything in terms of bits\nso the start address must be shifted before passing to\nbitmap_find_next_zero_area_off. Without this, if the start address\nis unaligned, the code will not take this into account.\n\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n(cherry picked from commit e8e5365f74e311f5e0dd2513d3321d081355d308)\n\nChange-Id: I5eca13f181d50e6f9f8f39c7440c6619a8edc69a\nSigned-off-by: Sudhir Sharma \u003csudsha@codeaurora.org\u003e\n"
    },
    {
      "commit": "35f3a197708abac6388d83e90c7fdc301dd19df0",
      "tree": "1a154fb1c49383344c0adf85ce11515f6793f572",
      "parents": [
        "e10cd1c53032c6b748a514e89a0e99cd19e0a195"
      ],
      "author": {
        "name": "Shubhraprakash Das",
        "email": "sadas@codeaurora.org",
        "time": "Tue Aug 14 00:25:43 2012 -0700"
      },
      "committer": {
        "name": "Sudhir Sharma",
        "email": "sudsha@codeaurora.org",
        "time": "Fri Nov 02 11:41:35 2012 -0700"
      },
      "message": "lib: genalloc: Change chunk allocation to vmalloc\n\nChange the chunk allocation from kmalloc to vmalloc for\nallocations greater than a page. This allows large\nchunks to be allocated from physically non-contiguous\nmemory and increases the chance of the allocation\nsucceeding.\n\nCRs-fixed: 387655\nSigned-off-by: Shubhraprakash Das \u003csadas@codeaurora.org\u003e\n(cherry picked from commit e461457b134e55c3ca68b91b70b8796e3f3dba69)\n\nChange-Id: I576fed3dd33fdfa9742f0c91bea72417c4f0086f\nSigned-off-by: Sudhir Sharma \u003csudsha@codeaurora.org\u003e\n"
    },
    {
      "commit": "24d1745f4d77918e78ff0095ab233ff4f786287c",
      "tree": "450edfb58165a15440a76bc1645f0e21c6a84d1c",
      "parents": [
        "3146a25c513a1a3d5452db06d711a0a816e76584"
      ],
      "author": {
        "name": "Thadeu Lima de Souza Cascardo",
        "email": "cascardo@linux.vnet.ibm.com",
        "time": "Thu Oct 25 13:37:51 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Oct 31 10:02:56 2012 -0700"
      },
      "message": "genalloc: stop crashing the system when destroying a pool\n\ncommit eedce141cd2dad8d0cefc5468ef41898949a7031 upstream.\n\nThe genalloc code uses the bitmap API from include/linux/bitmap.h and\nlib/bitmap.c, which is based on long values.  Both bitmap_set from\nlib/bitmap.c and bitmap_set_ll, which is the lockless version from\ngenalloc.c, use BITMAP_LAST_WORD_MASK to set the first bits in a long in\nthe bitmap.\n\nThat one uses (1 \u003c\u003c bits) - 1, 0b111, if you are setting the first three\nbits.  This means that the API counts from the least significant bits\n(LSB from now on) to the MSB.  The LSB in the first long is bit 0, then.\nThe same works for the lookup functions.\n\nThe genalloc code uses longs for the bitmap, as it should.  In\ninclude/linux/genalloc.h, struct gen_pool_chunk has unsigned long\nbits[0] as its last member.  When allocating the struct, genalloc should\nreserve enough space for the bitmap.  This should be a proper number of\nlongs that can fit the amount of bits in the bitmap.\n\nHowever, genalloc allocates an integer number of bytes that fit the\namount of bits, but may not be an integer amount of longs.  9 bytes, for\nexample, could be allocated for 70 bits.\n\nThis is a problem in itself if the Least Significat Bit in a long is in\nthe byte with the largest address, which happens in Big Endian machines.\nThis means genalloc is not allocating the byte in which it will try to\nset or check for a bit.\n\nThis may end up in memory corruption, where genalloc will try to set the\nbits it has not allocated.  In fact, genalloc may not set these bits\nbecause it may find them already set, because they were not zeroed since\nthey were not allocated.  And that\u0027s what causes a BUG when\ngen_pool_destroy is called and check for any set bits.\n\nWhat really happens is that genalloc uses kmalloc_node with __GFP_ZERO\non gen_pool_add_virt.  With SLAB and SLUB, this means the whole slab\nwill be cleared, not only the requested bytes.  Since struct\ngen_pool_chunk has a size that is a multiple of 8, and slab sizes are\nmultiples of 8, we get lucky and allocate and clear the right amount of\nbytes.\n\nHower, this is not the case with SLOB or with older code that did memset\nafter allocating instead of using __GFP_ZERO.\n\nSo, a simple module as this (running 3.6.0), will cause a crash when\nrmmod\u0027ed.\n\n  [root@phantom-lp2 foo]# cat foo.c\n  #include \u003clinux/kernel.h\u003e\n  #include \u003clinux/module.h\u003e\n  #include \u003clinux/init.h\u003e\n  #include \u003clinux/genalloc.h\u003e\n\n  MODULE_LICENSE(\"GPL\");\n  MODULE_VERSION(\"0.1\");\n\n  static struct gen_pool *foo_pool;\n\n  static __init int foo_init(void)\n  {\n          int ret;\n          foo_pool \u003d gen_pool_create(10, -1);\n          if (!foo_pool)\n                  return -ENOMEM;\n          ret \u003d gen_pool_add(foo_pool, 0xa0000000, 32 \u003c\u003c 10, -1);\n          if (ret) {\n                  gen_pool_destroy(foo_pool);\n                  return ret;\n          }\n          return 0;\n  }\n\n  static __exit void foo_exit(void)\n  {\n          gen_pool_destroy(foo_pool);\n  }\n\n  module_init(foo_init);\n  module_exit(foo_exit);\n  [root@phantom-lp2 foo]# zcat /proc/config.gz | grep SLOB\n  CONFIG_SLOB\u003dy\n  [root@phantom-lp2 foo]# insmod ./foo.ko\n  [root@phantom-lp2 foo]# rmmod foo\n  ------------[ cut here ]------------\n  kernel BUG at lib/genalloc.c:243!\n  cpu 0x4: Vector: 700 (Program Check) at [c0000000bb0e7960]\n      pc: c0000000003cb50c: .gen_pool_destroy+0xac/0x110\n      lr: c0000000003cb4fc: .gen_pool_destroy+0x9c/0x110\n      sp: c0000000bb0e7be0\n     msr: 8000000000029032\n    current \u003d 0xc0000000bb0e0000\n    paca    \u003d 0xc000000006d30e00   softe: 0        irq_happened: 0x01\n      pid   \u003d 13044, comm \u003d rmmod\n  kernel BUG at lib/genalloc.c:243!\n  [c0000000bb0e7ca0] d000000004b00020 .foo_exit+0x20/0x38 [foo]\n  [c0000000bb0e7d20] c0000000000dff98 .SyS_delete_module+0x1a8/0x290\n  [c0000000bb0e7e30] c0000000000097d4 syscall_exit+0x0/0x94\n  --- Exception: c00 (System Call) at 000000800753d1a0\n  SP (fffd0b0e640) is in userspace\n\nSigned-off-by: Thadeu Lima de Souza Cascardo \u003ccascardo@linux.vnet.ibm.com\u003e\nCc: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Benjamin Gaignard \u003cbenjamin.gaignard@stericsson.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "6d36a9dd1dcdd053ab32f303b94cc1bae5a47f22",
      "tree": "5df55ecc66f90dfbfce2d1da916abdf476dec604",
      "parents": [
        "03c4441b88fd2614580eeda598623e2b21ec5822"
      ],
      "author": {
        "name": "Davidlohr Bueso",
        "email": "dave@gnu.org",
        "time": "Thu Oct 04 17:13:18 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Oct 13 05:38:38 2012 +0900"
      },
      "message": "lib/gcd.c: prevent possible div by 0\n\ncommit e96875677fb2b7cb739c5d7769824dff7260d31d upstream.\n\nAccount for all properties when a and/or b are 0:\ngcd(0, 0) \u003d 0\ngcd(a, 0) \u003d a\ngcd(0, b) \u003d b\n\nFixes no known problems in current kernels.\n\nSigned-off-by: Davidlohr Bueso \u003cdave@gnu.org\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "dd8121960467e40388876403758334fa91516db2",
      "tree": "77174d90183bdd6a1940490ef46da3c67c5b253f",
      "parents": [
        "e3c9398035cbf79a2ab75c2f43de999fc9a726f4"
      ],
      "author": {
        "name": "Dmitry Kasatkin",
        "email": "dmitry.kasatkin@intel.com",
        "time": "Wed Sep 12 13:26:55 2012 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Oct 02 10:29:55 2012 -0700"
      },
      "message": "digsig: add hash size comparision on signature verification\n\ncommit bc01637a80f5b670bd70a0279d3f93fa8de1c96d upstream.\n\nWhen pkcs_1_v1_5_decode_emsa() returns without error and hash sizes do\nnot match, hash comparision is not done and digsig_verify_rsa() returns\nno error.  This is a bug and this patch fixes it.\n\nThe bug was introduced in v3.3 by commit b35e286a640f (\"lib/digsig:\npkcs_1_v1_5_decode_emsa cleanup\").\n\nSigned-off-by: Dmitry Kasatkin \u003cdmitry.kasatkin@intel.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "9e6849368b32cacc70fac02e2573db4731bac09b",
      "tree": "be31db2b3b25d46a81807def7ba9ff413093670e",
      "parents": [
        "dadf2c4ef14a0c80884e3fe9e26acc7089989b5f"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Wed Jul 25 18:30:45 2012 -0700"
      },
      "committer": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Wed Jul 25 18:45:26 2012 -0700"
      },
      "message": "spinlock_debug: Print offset in addition to symbol name\n\nIf one has two spinlocks embedded in a structure that kallsyms\nknows about and one of the spinlocks locks up we will print the\nname of the containing structure instead of the address of the\nlock. This is quite bad, so let\u0027s use %pS instead of %ps so we\nget an offset into the symbol so we can determine which lock is\nhaving problems.\n\nChange-Id: If6fbb2eb2316b846d96da76c35fcfeadbef64401\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "a16a8c26fd3dc6566497c606523866dd6165d09a",
      "tree": "f82ca2bc764a29af493fc5698bee91bddda8c92b",
      "parents": [
        "14a7ab7259980e15ead9940a3345f4b2abf45ca5"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Fri Jul 20 18:13:08 2012 -0700"
      },
      "committer": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Fri Jul 20 18:13:39 2012 -0700"
      },
      "message": "spinlock_debug: Fix mismerge\n\nThis file was mismerged in the 3.4 kernel upgrade. We shouldn\u0027t\nprint the lockup twice.\n\nChange-Id: If09a07d8b6c570632e1abac0a23c3ed203cd3ced\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "4f4bdaeb40df95499c1ee7ea3fbca9d76174a59e",
      "tree": "f74221a3a32dc22e9f54fd7dbafd615d8afdec14",
      "parents": [
        "1414a53d956340ca8b1b27e05ab94ba63e82ed97"
      ],
      "author": {
        "name": "Hiroaki SHIMODA",
        "email": "shimoda.hiroaki@gmail.com",
        "time": "Wed May 30 12:25:37 2012 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:03:43 2012 -0700"
      },
      "message": "bql: Avoid possible inconsistent calculation.\n\n[ Upstream commit 914bec1011a25f65cdc94988a6f974bfb9a3c10d ]\n\ndql-\u003enum_queued could change while processing dql_completed().\nTo provide consistent calculation, added an on stack variable.\n\nSigned-off-by: Hiroaki SHIMODA \u003cshimoda.hiroaki@gmail.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Denys Fedoryshchenko \u003cdenys@visp.net.lb\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "1414a53d956340ca8b1b27e05ab94ba63e82ed97",
      "tree": "816b424b7416c6e62c56f9cddc7a199b03f27afa",
      "parents": [
        "19d07e884b7fd22f92eb8939556dcbf55df1982c"
      ],
      "author": {
        "name": "Hiroaki SHIMODA",
        "email": "shimoda.hiroaki@gmail.com",
        "time": "Wed May 30 12:25:19 2012 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:03:43 2012 -0700"
      },
      "message": "bql: Avoid unneeded limit decrement.\n\n[ Upstream commit 25426b794efdc70dde7fd3134dc56fac3e7d562d ]\n\nWhen below pattern is observed,\n\n                                               TIME\n       dql_queued()         dql_completed()     |\n      a) initial state                          |\n                                                |\n      b) X bytes queued                         V\n\n      c) Y bytes queued\n                           d) X bytes completed\n      e) Z bytes queued\n                           f) Y bytes completed\n\na) dql-\u003elimit has already some value and there is no in-flight packet.\nb) X bytes queued.\nc) Y bytes queued and excess limit.\nd) X bytes completed and dql-\u003eprev_ovlimit is set and also\n   dql-\u003eprev_num_queued is set Y.\ne) Z bytes queued.\nf) Y bytes completed. inprogress and prev_inprogress are true.\n\nAt f), according to the comment, all_prev_completed becomes\ntrue and limit should be increased. But POSDIFF() ignores\n(completed \u003d\u003d dql-\u003eprev_num_queued) case, so limit is decreased.\n\nSigned-off-by: Hiroaki SHIMODA \u003cshimoda.hiroaki@gmail.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Denys Fedoryshchenko \u003cdenys@visp.net.lb\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "19d07e884b7fd22f92eb8939556dcbf55df1982c",
      "tree": "e34fb56ca80a59da364b067238a85465caad38c1",
      "parents": [
        "8f5b330048b06ca0e2ffa88300922808ebc2b93f"
      ],
      "author": {
        "name": "Hiroaki SHIMODA",
        "email": "shimoda.hiroaki@gmail.com",
        "time": "Wed May 30 12:24:39 2012 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Jul 16 09:03:26 2012 -0700"
      },
      "message": "bql: Fix POSDIFF() to integer overflow aware.\n\n[ Upstream commit 0cfd32b736ae0c36b42697584811042726c07cba ]\n\nPOSDIFF() fails to take into account integer overflow case.\n\nSigned-off-by: Hiroaki SHIMODA \u003cshimoda.hiroaki@gmail.com\u003e\nCc: Tom Herbert \u003ctherbert@google.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Denys Fedoryshchenko \u003cdenys@visp.net.lb\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "5a32293d5c1045e99b70582783b453d08e71cfdb",
      "tree": "c281fc570e26e958eb6e41e86192a27f386d0162",
      "parents": [
        "6d6a10124daeccc44f5d291cad4bea64639a2c66"
      ],
      "author": {
        "name": "Roland Dreier",
        "email": "roland@purestorage.com",
        "time": "Thu Jun 07 14:21:13 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jun 17 11:21:22 2012 -0700"
      },
      "message": "btree: fix tree corruption in btree_get_prev()\n\ncommit cbf8ae32f66a9ceb8907ad9e16663c2a29e48990 upstream.\n\nThe memory the parameter __key points to is used as an iterator in\nbtree_get_prev(), so if we save off a bkey() pointer in retry_key and\nthen assign that to __key, we\u0027ll end up corrupting the btree internals\nwhen we do eg\n\n\tlongcpy(__key, bkey(geo, node, i), geo-\u003ekeylen);\n\nto return the key value.  What we should do instead is use longcpy() to\ncopy the key value that retry_key points to __key.\n\nThis can cause a btree to get corrupted by seemingly read-only\noperations such as btree_for_each_safe.\n\n[akpm@linux-foundation.org: avoid the double longcpy()]\nSigned-off-by: Roland Dreier \u003croland@purestorage.com\u003e\nAcked-by: Joern Engel \u003cjoern@logfs.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "b642cb6a143da812f188307c2661c0357776a9d0",
      "tree": "2c88df819dc12d6a92bf72cce91eaad3ba62ec88",
      "parents": [
        "f940c5366eaaea9630ba643a036c2df321f66db3"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Tue Jun 05 21:36:33 2012 +0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jun 10 00:36:17 2012 +0900"
      },
      "message": "radix-tree: fix contiguous iterator\n\ncommit fffaee365fded09f9ebf2db19066065fa54323c3 upstream.\n\nThis patch fixes bug in macro radix_tree_for_each_contig().\n\nIf radix_tree_next_slot() sees NULL in next slot it returns NULL, but following\nradix_tree_next_chunk() switches iterating into next chunk. As result iterating\nbecomes non-contiguous and breaks vfs \"splice\" and all its users.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nReported-and-bisected-by: Hans de Bruin \u003cjmdebruin@xmsnet.nl\u003e\nReported-and-bisected-by: Ondrej Zary \u003clinux@rainbow-software.org\u003e\nReported-bisected-and-tested-by: Toralf Förster \u003ctoralf.foerster@gmx.de\u003e\nLink: https://lkml.org/lkml/2012/6/5/64\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "f132c6cf77251e011e1dad0ec88c0b1fda16d5aa",
      "tree": "f04b469a3547a19b7bdbe110adc571eb71c93328",
      "parents": [
        "23016defd7db701a01dc49f972ad6b1bae9651c2",
        "3f6240f3e4e2608caf1a70d614ada658cbcbe7be"
      ],
      "author": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Wed Jun 06 18:30:57 2012 -0700"
      },
      "committer": {
        "name": "Steve Muckle",
        "email": "smuckle@codeaurora.org",
        "time": "Wed Jun 06 18:45:28 2012 -0700"
      },
      "message": "Merge commit \u0027AU_LINUX_ANDROID_ICS.04.00.04.00.126\u0027 into msm-3.4\n\nAU_LINUX_ANDROID_ICS.04.00.04.00.126 from msm-3.0.\nFirst parent is from google/android-3.4.\n\n* commit \u0027AU_LINUX_ANDROID_ICS.04.00.04.00.126\u0027: (8712 commits)\n  PRNG: Device tree entry for qrng device.\n  vidc:1080p: Set video core timeout value for Thumbnail mode\n  msm: sps: improve the debugging support in SPS driver\n  board-8064 msm: Overlap secure and non secure video firmware heaps.\n  msm: clock: Add handoff ops for 7x30 and copper XO clocks\n  msm_fb: display: Wait for external vsync before DTV IOMMU unmap\n  msm: Fix ciruclar dependency in debug UART settings\n  msm: gdsc: Add GDSC regulator driver for msm-copper\n  defconfig: Enable Mobicore Driver.\n  mobicore: Add mobicore driver.\n  mobicore: rename variable to lower case.\n  mobicore: rename folder.\n  mobicore: add makefiles\n  mobicore: initial import of kernel driver\n  ASoC: msm: Add SLIMBUS_2_RX CPU DAI\n  board-8064-gpio: Update FUNC for EPM SPI CS\n  msm_fb: display: Remove chicken bit config during video playback\n  mmc: msm_sdcc: enable the sanitize capability\n  msm-fb: display: lm2 writeback support on mpq platfroms\n  msm_fb: display: Disable LVDS phy \u0026 pll during panel off\n  ...\n\nSigned-off-by: Steve Muckle \u003csmuckle@codeaurora.org\u003e\n"
    },
    {
      "commit": "957265bd4fe182af757886f117416d66f68854aa",
      "tree": "177cee182ea61611f0b80db704203bf72ee4f3cb",
      "parents": [
        "60c98d9abbd1ff3274b904027690f3c33d656250",
        "66f75a5d028beaf67c931435fdc3e7823125730c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 27 14:03:45 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Apr 27 14:03:45 2012 -0700"
      },
      "message": "Merge commit \u0027v3.4-rc4\u0027 into android-3.4\n"
    },
    {
      "commit": "62878d3ea148e1a14a7aad1ffb0fbd8d9088e8a7",
      "tree": "6a1ab580f2352a8fa7031e312c60ec5b988e4239",
      "parents": [
        "364da7c6dda2d9f41cb4ab715da204bc9923f3e2"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Thu Apr 19 12:19:11 2012 -0700"
      },
      "committer": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Mon Apr 23 14:30:07 2012 -0700"
      },
      "message": "spinlock_debug: Print kallsyms name for lock\n\nWhen a spinlock warning is printed we usually get\n\n BUG: spinlock bad magic on CPU#0, modprobe/111\n  lock: 0xdff09f38, .magic: 00000000, .owner: /0, .owner_cpu: 0\n\nbut it\u0027s nicer to print the symbol for the lock if we have it so\nthat we can avoid \u0027grep dff09f38 /proc/kallsyms\u0027 to find out\nwhich lock it was. Use kallsyms to print the symbol name so we\nget something a bit easier to read\n\n BUG: spinlock bad magic on CPU#0, modprobe/112\n  lock: test_lock, .magic: 00000000, .owner: \u003cnone\u003e/-1, .owner_cpu: 0\n\nChange-Id: I833d011da8362960e97c53ebd59236ac7eb147fd\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "364da7c6dda2d9f41cb4ab715da204bc9923f3e2",
      "tree": "fca4bceb70a6a4cdafd06829690a7cba5934a41b",
      "parents": [
        "eac0d1edf21ab5a46867fbfea5af621227738083"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Mon Apr 23 10:42:01 2012 -0700"
      },
      "committer": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Mon Apr 23 14:29:54 2012 -0700"
      },
      "message": "vsprintf: Fix %ps on non symbols when using kallsyms\n\nUsing %ps in a printk format will sometimes fail silently and\nprint the empty string if the address passed in does not match a\nsymbol that kallsyms knows about. But using %pS will fall back to\nprinting the full address if kallsyms can\u0027t find the symbol. Make\n%ps act the same as %pS by falling back to printing the address.\n\nWhile we\u0027re here also make %ps print the module that a symbol\ncomes from so that it matches what %pS already does. Take this\nsimple function for example (in a module):\n\n\tstatic void test_printk(void)\n\t{\n\t\tint test;\n\t\tpr_info(\"with pS: %pS\\n\", \u0026test);\n\t\tpr_info(\"with ps: %ps\\n\", \u0026test);\n\t}\n\nBefore this patch:\n\n with pS: 0xdff7df44\n with ps:\n\nAfter this patch:\n\n with pS: 0xdff7df44\n with ps: 0xdff7df44\n\nChange-Id: Id03d74b079d40fe24b07a978909faedc741e281a\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "ab2965eefef95a2eecfd54c12b0eb243162862e9",
      "tree": "c947fdc158e144c2d060486b65d10ee67d254039",
      "parents": [
        "a0ec4361e4539e30cf1c5de7ddfd2dadcd8e1595",
        "e816b57a337ea3b755de72bec38c10c864f23015"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 19 14:42:22 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Apr 19 14:42:22 2012 -0700"
      },
      "message": "Merge commit \u0027v3.4-rc3\u0027 into android-3.4\n\nConflicts:\n\tdrivers/staging/android/lowmemorykiller.c\n\nChange-Id: Ia3ffcfc702e28c4fce0e91b363f4afd5f1c40306\n"
    },
    {
      "commit": "09c79b60960bdd4b00916219402eabfa5e479c5a",
      "tree": "d8be1892ca81cbd194ac5e8c198f0f939d432257",
      "parents": [
        "86812bb0de1a3758dc6c7aa01a763158a7c0638a"
      ],
      "author": {
        "name": "Jesper Juhl",
        "email": "jj@chaosbits.net",
        "time": "Mon Feb 06 20:07:04 2012 +1100"
      },
      "committer": {
        "name": "James Morris",
        "email": "james.l.morris@oracle.com",
        "time": "Wed Apr 18 12:14:28 2012 +1000"
      },
      "message": "mpi: Avoid using freed pointer in mpi_lshift_limbs()\n\nAt the start of the function we assign \u0027a-\u003ed\u0027 to \u0027ap\u0027. Then we use the\nRESIZE_IF_NEEDED macro on \u0027a\u0027 - this may free \u0027a-\u003ed\u0027 and replace it\nwith newly allocaetd storage. In that case, we\u0027ll be operating on\nfreed memory further down in the function when we index into \u0027ap[]\u0027.\nSince we don\u0027t actually need \u0027ap\u0027 until after the use of the\nRESIZE_IF_NEEDED macro we can just delay the assignment to it until\nafter we\u0027ve potentially resized, thus avoiding the issue.\n\nWhile I was there anyway I also changed the integer variable \u0027n\u0027 to be\nconst. It might as well be since we only assign to it once and use it\nas a constant, and then the compiler will tell us if we ever assign to\nit in the future.\n\nSigned-off-by: Jesper Juhl \u003cjj@chaosbits.net\u003e\nAcked-by: Dmitry Kasatkin \u003cdmitry.kasatkin@intel.com\u003e\nSigned-off-by: James Morris \u003cjames.l.morris@oracle.com\u003e\n"
    },
    {
      "commit": "282029c005e65ffdce3aa9f8220f88a8bbbc4dae",
      "tree": "48d488d453def3bd1c408aed1bd4bb4e18115b4c",
      "parents": [
        "3a198886ab5f228fcbebb9ace803d8b99721d49a"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Apr 06 13:41:15 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Apr 10 14:48:51 2012 -0700"
      },
      "message": "kobject: provide more diagnostic info for kobject_add_internal() failures\n\n1/ convert open-coded KERN_ERR+dump_stack() to WARN(), so that automated\n   tools pick up this warning.\n\n2/ include the \u0027child\u0027 and \u0027parent\u0027 kobject names.  This information was\n   useful for tracking down the case where scsi invoked device_del() on a\n   parent object and subsequently invoked device_add() on a child.  Now the\n   warning looks like:\n\n     kobject_add_internal failed for target8:0:16 (error: -2 parent: end_device-8:0:24)\n     Pid: 2942, comm: scsi_scan_8 Not tainted 3.3.0-rc7-isci+ #2\n     Call Trace:\n      [\u003cffffffff8125e551\u003e] kobject_add_internal+0x1c1/0x1f3\n      [\u003cffffffff81075149\u003e] ? trace_hardirqs_on+0xd/0xf\n      [\u003cffffffff8125e659\u003e] kobject_add_varg+0x41/0x50\n      [\u003cffffffff8125e723\u003e] kobject_add+0x64/0x66\n      [\u003cffffffff8131124b\u003e] device_add+0x12d/0x63a\n      [\u003cffffffff8125e0ef\u003e] ? kobject_put+0x4c/0x50\n      [\u003cffffffff8132f370\u003e] scsi_sysfs_add_sdev+0x4e/0x28a\n      [\u003cffffffff8132dce3\u003e] do_scan_async+0x9c/0x145\n\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: James Bottomley \u003cJBottomley@parallels.com\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "0f01bb1747566cc7b314f0a7ab9c94c2e28ce525",
      "tree": "d3d8c136bc3fa331ef622e556907cd09b4aedc86",
      "parents": [
        "0dcd84058bba9e26f380c4482e208c24e53b2f42"
      ],
      "author": {
        "name": "Arve Hjønnevåg",
        "email": "arve@android.com",
        "time": "Thu Jun 03 16:33:07 2010 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Apr 09 13:57:51 2012 -0700"
      },
      "message": "Allow CONFIG_STACKTRACE to be enabled by itself.\n\nThis allows us to get a kernel stacktrace for a thread though /proc.\nAlso enable it by default.\n\nChange-Id: If8c21cd02feaf9863f4841ace524fa30c7328d49\nSigned-off-by: Arve Hjønnevåg \u003carve@android.com\u003e\n"
    },
    {
      "commit": "a76e99abc558aed633ba28ff61c5328116292bf3",
      "tree": "60f7677f0baafa00825accc1214839246b3e78dd",
      "parents": [
        "a54734678ff9cb97938b9f7648547174f3b118e4",
        "1d05f993784973189395051cc711fdd6dd5eb389"
      ],
      "author": {
        "name": "Rohit Vaswani",
        "email": "rvaswani@codeaurora.org",
        "time": "Fri Mar 30 00:09:34 2012 -0700"
      },
      "committer": {
        "name": "Rohit Vaswani",
        "email": "rvaswani@codeaurora.org",
        "time": "Fri Mar 30 00:09:34 2012 -0700"
      },
      "message": "Merge branch \u0027Linux 3.0.21\u0027 into msm-3.0\n\nMerge Upstream\u0027s stable 3.0.21 branch into msm-3.0\nThis consists 814 commits and some merge conflicts.\n\nThe merge conflicts are because of some local changes to\nmsm-3.0 as well as some conflicts between google\u0027s tree and\nthe upstream tree.\n\nConflicts:\n\tarch/arm/kernel/head.S\n\tdrivers/bluetooth/ath3k.c\n\tdrivers/bluetooth/btusb.c\n\tdrivers/mmc/core/core.c\n\tdrivers/tty/serial/serial_core.c\n\tdrivers/usb/host/ehci-hub.c\n\tdrivers/usb/serial/qcserial.c\n\tfs/namespace.c\n\tfs/proc/base.c\n\nChange-Id: I62e2edbe213f84915e27f8cd6e4f6ce23db22a21\nSigned-off-by: Rohit Vaswani \u003crvaswani@codeaurora.org\u003e\n"
    },
    {
      "commit": "6b8212a313dae341ef3a2e413dfec5c4dea59617",
      "tree": "bbca09d88f61f999c7714fe82710bdfe6ee0e98b",
      "parents": [
        "bcd550745fc54f789c14e7526e0633222c505faa",
        "8abc3122aa02567bfe626cd13f4d34853c9b1225"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:28:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:28:26 2012 -0700"
      },
      "message": "Merge branch \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull x86 updates from Ingo Molnar.\n\nThis touches some non-x86 files due to the sanitized INLINE_SPIN_UNLOCK\nconfig usage.\n\nFixed up trivial conflicts due to just header include changes (removing\nheaders due to cpu_idle() merge clashing with the \u003casm/system.h\u003e split).\n\n* \u0027x86-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86/apic/amd: Be more verbose about LVT offset assignments\n  x86, tls: Off by one limit check\n  x86/ioapic: Add io_apic_ops driver layer to allow interception\n  x86/olpc: Add debugfs interface for EC commands\n  x86: Merge the x86_32 and x86_64 cpu_idle() functions\n  x86/kconfig: Remove CONFIG_TR\u003dy from the defconfigs\n  x86: Stop recursive fault in print_context_stack after stack overflow\n  x86/io_apic: Move and reenable irq only when CONFIG_GENERIC_PENDING_IRQ\u003dy\n  x86/apic: Add separate apic_id_valid() functions for selected apic drivers\n  locking/kconfig: Simplify INLINE_SPIN_UNLOCK usage\n  x86/kconfig: Update defconfigs\n  x86: Fix excessive MSR print out when show_msr is not specified\n"
    },
    {
      "commit": "532bfc851a7475fb6a36c1e953aa395798a7cca7",
      "tree": "a7892e5a31330dd59f31959efbe9fda1803784fd",
      "parents": [
        "0195c00244dc2e9f522475868fa278c473ba7339",
        "8da00edc1069f01c34510fa405dc15d96c090a3f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:27 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:19:28 2012 -0700"
      },
      "message": "Merge branch \u0027akpm\u0027 (Andrew\u0027s patch-bomb)\n\nMerge third batch of patches from Andrew Morton:\n - Some MM stragglers\n - core SMP library cleanups (on_each_cpu_mask)\n - Some IPI optimisations\n - kexec\n - kdump\n - IPMI\n - the radix-tree iterator work\n - various other misc bits.\n\n \"That\u0027ll do for -rc1.  I still have ~10 patches for 3.4, will send\n  those along when they\u0027ve baked a little more.\"\n\n* emailed from Andrew Morton \u003cakpm@linux-foundation.org\u003e: (35 commits)\n  backlight: fix typo in tosa_lcd.c\n  crc32: add help text for the algorithm select option\n  mm: move hugepage test examples to tools/testing/selftests/vm\n  mm: move slabinfo.c to tools/vm\n  mm: move page-types.c from Documentation to tools/vm\n  selftests/Makefile: make `run_tests\u0027 depend on `all\u0027\n  selftests: launch individual selftests from the main Makefile\n  radix-tree: use iterators in find_get_pages* functions\n  radix-tree: rewrite gang lookup using iterator\n  radix-tree: introduce bit-optimized iterator\n  fs/proc/namespaces.c: prevent crash when ns_entries[] is empty\n  nbd: rename the nbd_device variable from lo to nbd\n  pidns: add reboot_pid_ns() to handle the reboot syscall\n  sysctl: use bitmap library functions\n  ipmi: use locks on watchdog timeout set on reboot\n  ipmi: simplify locking\n  ipmi: fix message handling during panics\n  ipmi: use a tasklet for handling received messages\n  ipmi: increase KCS timeouts\n  ipmi: decrease the IPMI message transaction time in interrupt mode\n  ...\n"
    },
    {
      "commit": "82edb4baa762c98008fcea6393e85bffedab2b3c",
      "tree": "70adf1cd03a3f4ed635ae23db6e95b0f0525a13a",
      "parents": [
        "f0f57b2b1488251970c25deea0ea150a8d0911ed"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Wed Mar 28 14:42:56 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:37 2012 -0700"
      },
      "message": "crc32: add help text for the algorithm select option\n\nAdd help text to the crc32 algorithm selection option in Kconfig.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nReported-by: Stefan Richter \u003cstefanr@s5r6.in-berlin.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "cebbd29e1c2f7a969919f19f74583070840163d7",
      "tree": "f9ec01b2cb5c3affe64587b83d4877429f0edc0c",
      "parents": [
        "78c1d78488a3c45685d993130c9f17102dc79a54"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 28 14:42:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:37 2012 -0700"
      },
      "message": "radix-tree: rewrite gang lookup using iterator\n\nRewrite radix_tree_gang_lookup_* functions using the new radix-tree\niterator.\n\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nTested-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78c1d78488a3c45685d993130c9f17102dc79a54",
      "tree": "b9fd6e6b53b5b161836bea39811f16deb0ad88ff",
      "parents": [
        "4c619aa0ba171c092a0ae5d969364deb82dbe371"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "khlebnikov@openvz.org",
        "time": "Wed Mar 28 14:42:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:37 2012 -0700"
      },
      "message": "radix-tree: introduce bit-optimized iterator\n\nA series of radix tree cleanups, and usage of them in the core pagecache\ncode.\n\nMicro-benchmark:\n\nlookup 14 slots (typical page-vector size)\nin radix-tree there earch \u003cstep\u003e slot filled and tagged\nbefore/after - nsec per full scan through tree\n\n* Intel Sandy Bridge i7-2620M 4Mb L3\nNew code always faster\n\n* AMD Athlon 6000+ 2x1Mb L2, without L3\nNew code generally faster,\nMinor degradation (marked with \"*\") for huge sparse trees\n\n* i386 on Sandy Bridge\nNew code faster for common cases: tagged and dense trees.\nSome degradations for non-tagged lookup on sparse trees.\n\nIdeally, there might help __ffs() analog for searching first non-zero\nlong element in array, gcc sometimes cannot optimize this loop corretly.\n\nNumbers:\n\nCPU: Intel Sandy Bridge i7-2620M 4Mb L3\n\nradix-tree with 1024 slots:\n\ntagged lookup\n\nstep  1      before  7156        after  3613\nstep  2      before  5399        after  2696\nstep  3      before  4779        after  1928\nstep  4      before  4456        after  1429\nstep  5      before  4292        after  1213\nstep  6      before  4183        after  1052\nstep  7      before  4157        after  951\nstep  8      before  4016        after  812\nstep  9      before  3952        after  851\nstep  10     before  3937        after  732\nstep  11     before  4023        after  709\nstep  12     before  3872        after  657\nstep  13     before  3892        after  633\nstep  14     before  3720        after  591\nstep  15     before  3879        after  578\nstep  16     before  3561        after  513\n\nnormal lookup\n\nstep  1      before  4266       after  3301\nstep  2      before  2695       after  2129\nstep  3      before  2083       after  1712\nstep  4      before  1801       after  1534\nstep  5      before  1628       after  1313\nstep  6      before  1551       after  1263\nstep  7      before  1475       after  1185\nstep  8      before  1432       after  1167\nstep  9      before  1373       after  1092\nstep  10     before  1339       after  1134\nstep  11     before  1292       after  1056\nstep  12     before  1319       after  1030\nstep  13     before  1276       after  1004\nstep  14     before  1256       after  987\nstep  15     before  1228       after  992\nstep  16     before  1247       after  999\n\nradix-tree with 1024*1024*128 slots:\n\ntagged lookup\n\nstep  1      before  1086102841  after  674196409\nstep  2      before  816839155   after  498138306\nstep  7      before  599728907   after  240676762\nstep  15     before  555729253   after  185219677\nstep  63     before  606637748   after  128585664\nstep  64     before  608384432   after  102945089\nstep  65     before  596987114   after  123996019\nstep  128    before  304459225   after  56783056\nstep  256    before  158846855   after  31232481\nstep  512    before  86085652    after  18950595\nstep  12345  before  6517189     after  1674057\n\nnormal lookup\n\nstep  1      before  626064869  after  544418266\nstep  2      before  418809975  after  336321473\nstep  7      before  242303598  after  207755560\nstep  15     before  208380563  after  176496355\nstep  63     before  186854206  after  167283638\nstep  64     before  176188060  after  170143976\nstep  65     before  185139608  after  167487116\nstep  128    before  88181865   after  86913490\nstep  256    before  45733628   after  45143534\nstep  512    before  24506038   after  23859036\nstep  12345  before  2177425    after  2018662\n\n* AMD Athlon 6000+ 2x1Mb L2, without L3\n\nradix-tree with 1024 slots:\n\ntag-lookup\n\nstep  1      before  8164        after  5379\nstep  2      before  5818        after  5581\nstep  3      before  4959        after  4213\nstep  4      before  4371        after  3386\nstep  5      before  4204        after  2997\nstep  6      before  4950        after  2744\nstep  7      before  4598        after  2480\nstep  8      before  4251        after  2288\nstep  9      before  4262        after  2243\nstep  10     before  4175        after  2131\nstep  11     before  3999        after  2024\nstep  12     before  3979        after  1994\nstep  13     before  3842        after  1929\nstep  14     before  3750        after  1810\nstep  15     before  3735        after  1810\nstep  16     before  3532        after  1660\n\nnormal-lookup\n\nstep  1      before  7875        after  5847\nstep  2      before  4808        after  4071\nstep  3      before  4073        after  3462\nstep  4      before  3677        after  3074\nstep  5      before  4308        after  2978\nstep  6      before  3911        after  3807\nstep  7      before  3635        after  3522\nstep  8      before  3313        after  3202\nstep  9      before  3280        after  3257\nstep  10     before  3166        after  3083\nstep  11     before  3066        after  3026\nstep  12     before  2985        after  2982\nstep  13     before  2925        after  2924\nstep  14     before  2834        after  2808\nstep  15     before  2805        after  2803\nstep  16     before  2647        after  2622\n\nradix-tree with 1024*1024*128 slots:\n\ntag-lookup\n\nstep  1      before  1288059720  after  951736580\nstep  2      before  961292300   after  884212140\nstep  7      before  768905140   after  547267580\nstep  15     before  771319480   after  456550640\nstep  63     before  504847640   after  242704304\nstep  64     before  392484800   after  177920786\nstep  65     before  491162160   after  246895264\nstep  128    before  208084064   after  97348392\nstep  256    before  112401035   after  51408126\nstep  512    before  75825834    after  29145070\nstep  12345  before  5603166     after  2847330\n\nnormal-lookup\n\nstep  1      before  1025677120  after  861375100\nstep  2      before  647220080   after  572258540\nstep  7      before  505518960   after  484041813\nstep  15     before  430483053   after  444815320\t*\nstep  63     before  388113453   after  404250546\t*\nstep  64     before  374154666   after  396027440\t*\nstep  65     before  381423973   after  396704853\t*\nstep  128    before  190078700   after  202619384\t*\nstep  256    before  100886756   after  102829108\t*\nstep  512    before  64074505    after  56158720\nstep  12345  before  4237289     after  4422299\t\t*\n\n* i686 on Sandy bridge\n\nradix-tree with 1024 slots:\n\ntagged lookup\n\nstep  1      before  7990        after  4019\nstep  2      before  5698        after  2897\nstep  3      before  5013        after  2475\nstep  4      before  4630        after  1721\nstep  5      before  4346        after  1759\nstep  6      before  4299        after  1556\nstep  7      before  4098        after  1513\nstep  8      before  4115        after  1222\nstep  9      before  3983        after  1390\nstep  10     before  4077        after  1207\nstep  11     before  3921        after  1231\nstep  12     before  3894        after  1116\nstep  13     before  3840        after  1147\nstep  14     before  3799        after  1090\nstep  15     before  3797        after  1059\nstep  16     before  3783        after  745\n\nnormal lookup\n\nstep  1      before  5103       after  3499\nstep  2      before  3299       after  2550\nstep  3      before  2489       after  2370\nstep  4      before  2034       after  2302\t\t*\nstep  5      before  1846       after  2268\t\t*\nstep  6      before  1752       after  2249\t\t*\nstep  7      before  1679       after  2164\t\t*\nstep  8      before  1627       after  2153\t\t*\nstep  9      before  1542       after  2095\t\t*\nstep  10     before  1479       after  2109\t\t*\nstep  11     before  1469       after  2009\t\t*\nstep  12     before  1445       after  2039\t\t*\nstep  13     before  1411       after  2013\t\t*\nstep  14     before  1374       after  2046\t\t*\nstep  15     before  1340       after  1975\t\t*\nstep  16     before  1331       after  2000\t\t*\n\nradix-tree with 1024*1024*128 slots:\n\ntagged lookup\n\nstep  1      before  1225865377  after  667153553\nstep  2      before  842427423   after  471533007\nstep  7      before  609296153   after  276260116\nstep  15     before  544232060   after  226859105\nstep  63     before  519209199   after  141343043\nstep  64     before  588980279   after  141951339\nstep  65     before  521099710   after  138282060\nstep  128    before  298476778   after  83390628\nstep  256    before  149358342   after  43602609\nstep  512    before  76994713    after  22911077\nstep  12345  before  5328666     after  1472111\n\nnormal lookup\n\nstep  1      before  819284564  after  533635310\nstep  2      before  512421605  after  364956155\nstep  7      before  271443305  after  305721345\t*\nstep  15     before  223591630  after  273960216\t*\nstep  63     before  190320247  after  217770207\t*\nstep  64     before  178538168  after  267411372\t*\nstep  65     before  186400423  after  215347937\t*\nstep  128    before  88106045   after  140540612\t*\nstep  256    before  44812420   after  70660377\t\t*\nstep  512    before  24435438   after  36328275\t\t*\nstep  12345  before  2123924    after  2148062\t\t*\n\nbloat-o-meter delta for this patchset + patchset with related shmem cleanups\n\nbloat-o-meter: x86_64\n\nadd/remove: 4/3 grow/shrink: 5/6 up/down: 928/-939 (-11)\nfunction                                     old     new   delta\nradix_tree_next_chunk                          -     499    +499\nshmem_unuse                                  428     554    +126\nshmem_radix_tree_replace                     131     227     +96\nfind_get_pages_tag                           354     419     +65\nfind_get_pages_contig                        345     407     +62\nfind_get_pages                               362     396     +34\n__kstrtab_radix_tree_next_chunk                -      22     +22\n__ksymtab_radix_tree_next_chunk                -      16     +16\n__kcrctab_radix_tree_next_chunk                -       8      +8\nradix_tree_gang_lookup_slot                  204     203      -1\nstatic.shmem_xattr_set                       384     381      -3\nradix_tree_gang_lookup_tag_slot              208     191     -17\nradix_tree_gang_lookup                       231     187     -44\nradix_tree_gang_lookup_tag                   247     199     -48\nshmem_unlock_mapping                         278     190     -88\n__lookup                                     217       -    -217\n__lookup_tag                                 242       -    -242\nradix_tree_locate_item                       279       -    -279\n\nbloat-o-meter: i386\n\nadd/remove: 3/3 grow/shrink: 8/9 up/down: 1075/-1275 (-200)\nfunction                                     old     new   delta\nradix_tree_next_chunk                          -     757    +757\nshmem_unuse                                  352     449     +97\nfind_get_pages_contig                        269     322     +53\nshmem_radix_tree_replace                     113     154     +41\nfind_get_pages_tag                           277     318     +41\ndcache_dir_lseek                             426     458     +32\n__kstrtab_radix_tree_next_chunk                -      22     +22\nvc_do_resize                                 968     977      +9\nsnd_pcm_lib_read1                            725     733      +8\n__ksymtab_radix_tree_next_chunk                -       8      +8\nnetlbl_cipsov4_list                         1120    1127      +7\nfind_get_pages                               293     291      -2\nnew_slab                                     467     459      -8\nbitfill_unaligned_rev                        425     417      -8\nradix_tree_gang_lookup_tag_slot              177     146     -31\nblk_dump_cmd                                 267     229     -38\nradix_tree_gang_lookup_slot                  212     134     -78\nshmem_unlock_mapping                         221     128     -93\nradix_tree_gang_lookup_tag                   275     162    -113\nradix_tree_gang_lookup                       255     126    -129\n__lookup                                     227       -    -227\n__lookup_tag                                 271       -    -271\nradix_tree_locate_item                       277       -    -277\n\nThis patch:\n\nImplement a clean, simple and effective radix-tree iteration routine.\n\nIterating divided into two phases:\n* lookup next chunk in radix-tree leaf node\n* iterating through slots in this chunk\n\nMain iterator function radix_tree_next_chunk() returns pointer to first\nslot, and stores in the struct radix_tree_iter index of next-to-last slot.\n For tagged-iterating it also constuct bitmask of tags for retunted chunk.\n All additional logic implemented as static-inline functions and macroses.\n\nAlso adds radix_tree_find_next_bit() static-inline variant of\nfind_next_bit() optimized for small constant size arrays, because\nfind_next_bit() too heavy for searching in an array with one/two long\nelements.\n\n[akpm@linux-foundation.org: rework comments a bit]\nSigned-off-by: Konstantin Khlebnikov \u003ckhlebnikov@openvz.org\u003e\nTested-by: Hugh Dickins \u003chughd@google.com\u003e\nCc: Christoph Hellwig \u003chch@lst.de\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "38b93780a5381961ad92d24ab9a12a964189a3a4",
      "tree": "1d157e768930b91f222a7aaf1093ff982f2a9690",
      "parents": [
        "74046494ea68676d29ef6501a4bd950f08112a2c"
      ],
      "author": {
        "name": "Srivatsa S. Bhat",
        "email": "srivatsa.bhat@linux.vnet.ibm.com",
        "time": "Wed Mar 28 14:42:46 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 17:14:35 2012 -0700"
      },
      "message": "lib/cpumask.c: remove __any_online_cpu()\n\n__any_online_cpu() is not optimal and also unnecessary.  So, replace its\nuse by faster cpumask_* operations.\n\nSigned-off-by: Srivatsa S. Bhat \u003csrivatsa.bhat@linux.vnet.ibm.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Venkatesh Pallipadi \u003cvenki@google.com\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0195c00244dc2e9f522475868fa278c473ba7339",
      "tree": "f97ca98ae64ede2c33ad3de05ed7bbfa4f4495ed",
      "parents": [
        "f21ce8f8447c8be8847dadcfdbcc76b0d7365fa5",
        "141124c02059eee9dbc5c86ea797b1ca888e77f7"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Mar 28 15:58:21 2012 -0700"
      },
      "message": "Merge tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system\n\nPull \"Disintegrate and delete asm/system.h\" from David Howells:\n \"Here are a bunch of patches to disintegrate asm/system.h into a set of\n  separate bits to relieve the problem of circular inclusion\n  dependencies.\n\n  I\u0027ve built all the working defconfigs from all the arches that I can\n  and made sure that they don\u0027t break.\n\n  The reason for these patches is that I recently encountered a circular\n  dependency problem that came about when I produced some patches to\n  optimise get_order() by rewriting it to use ilog2().\n\n  This uses bitops - and on the SH arch asm/bitops.h drags in\n  asm-generic/get_order.h by a circuituous route involving asm/system.h.\n\n  The main difficulty seems to be asm/system.h.  It holds a number of\n  low level bits with no/few dependencies that are commonly used (eg.\n  memory barriers) and a number of bits with more dependencies that\n  aren\u0027t used in many places (eg.  switch_to()).\n\n  These patches break asm/system.h up into the following core pieces:\n\n    (1) asm/barrier.h\n\n        Move memory barriers here.  This already done for MIPS and Alpha.\n\n    (2) asm/switch_to.h\n\n        Move switch_to() and related stuff here.\n\n    (3) asm/exec.h\n\n        Move arch_align_stack() here.  Other process execution related bits\n        could perhaps go here from asm/processor.h.\n\n    (4) asm/cmpxchg.h\n\n        Move xchg() and cmpxchg() here as they\u0027re full word atomic ops and\n        frequently used by atomic_xchg() and atomic_cmpxchg().\n\n    (5) asm/bug.h\n\n        Move die() and related bits.\n\n    (6) asm/auxvec.h\n\n        Move AT_VECTOR_SIZE_ARCH here.\n\n  Other arch headers are created as needed on a per-arch basis.\"\n\nFixed up some conflicts from other header file cleanups and moving code\naround that has happened in the meantime, so David\u0027s testing is somewhat\nweakened by that.  We\u0027ll find out anything that got broken and fix it..\n\n* tag \u0027split-asm_system_h-for-linus-20120328\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-asm_system: (38 commits)\n  Delete all instances of asm/system.h\n  Remove all #inclusions of asm/system.h\n  Add #includes needed to permit the removal of asm/system.h\n  Move all declarations of free_initmem() to linux/mm.h\n  Disintegrate asm/system.h for OpenRISC\n  Split arch_align_stack() out from asm-generic/system.h\n  Split the switch_to() wrapper out of asm-generic/system.h\n  Move the asm-generic/system.h xchg() implementation to asm-generic/cmpxchg.h\n  Create asm-generic/barrier.h\n  Make asm-generic/cmpxchg.h #include asm-generic/cmpxchg-local.h\n  Disintegrate asm/system.h for Xtensa\n  Disintegrate asm/system.h for Unicore32 [based on ver #3, changed by gxt]\n  Disintegrate asm/system.h for Tile\n  Disintegrate asm/system.h for Sparc\n  Disintegrate asm/system.h for SH\n  Disintegrate asm/system.h for Score\n  Disintegrate asm/system.h for S390\n  Disintegrate asm/system.h for PowerPC\n  Disintegrate asm/system.h for PA-RISC\n  Disintegrate asm/system.h for MN10300\n  ...\n"
    },
    {
      "commit": "9ffc93f203c18a70623f21950f1dd473c9ec48cd",
      "tree": "1eb3536ae183b0bfbf7f5152a6fe4f430ae881c2",
      "parents": [
        "96f951edb1f1bdbbc99b0cd458f9808bb83d58ae"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:03 2012 +0100"
      },
      "message": "Remove all #inclusions of asm/system.h\n\nRemove all #inclusions of asm/system.h preparatory to splitting and killing\nit.  Performed with the following command:\n\nperl -p -i -e \u0027s!^#\\s*include\\s*\u003casm/system[.]h\u003e.*\\n!!\u0027 `grep -Irl \u0027^#\\s*include\\s*\u003casm/system[.]h\u003e\u0027 *`\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "ae3a197e3d0bfe3f4bf1693723e82dc018c096f3",
      "tree": "12a222c01afd73dbc3ebb6859952083e2eb96441",
      "parents": [
        "527dcdccd60759ee38e6224c93f87a6194d970ad"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:02 2012 +0100"
      },
      "committer": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Wed Mar 28 18:30:02 2012 +0100"
      },
      "message": "Disintegrate asm/system.h for PowerPC\n\nDisintegrate asm/system.h for PowerPC.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Benjamin Herrenschmidt \u003cbenh@kernel.crashing.org\u003e\ncc: linuxppc-dev@lists.ozlabs.org\n"
    },
    {
      "commit": "fa453a625de5b8ee9ada0a5b329df3f88751c615",
      "tree": "7a9e04d4a44bb929e96bd9bebb7b97cb733d1ecb",
      "parents": [
        "30eebb54b13ef198a3f1a143ee9dd68f295c60de",
        "3463ff4439661d8107ac024329b5fe01d6e5117b"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 18:29:53 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Mar 27 18:29:53 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus-3.4-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml\n\nPull UML changes from Richard Weinberger:\n \"Mostly bug fixes and cleanups\"\n\n* \u0027for-linus-3.4-rc1\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml: (35 commits)\n  um: Update defconfig\n  um: Switch to large mcmodel on x86_64\n  MTD: Relax dependencies\n  um: Wire CONFIG_GENERIC_IO up\n  um: Serve io_remap_pfn_range()\n  Introduce CONFIG_GENERIC_IO\n  um: allow SUBARCH\u003dx86\n  um: most of the SUBARCH uses can be killed\n  um: deadlock in line_write_interrupt()\n  um: don\u0027t bother trying to rebuild CHECKFLAGS for USER_OBJS\n  um: use the right ifdef around exports in user_syms.c\n  um: a bunch of headers can be killed by using generic-y\n  um: ptrace-generic.h doesn\u0027t need user.h\n  um: kill HOST_TASK_PID\n  um: remove pointless include of asm/fixmap.h from asm/pgtable.h\n  um: asm-offsets.h might as well come from underlying arch...\n  um: merge processor_{32,64}.h a bit...\n  um: switch close_chan() to struct line\n  um: race fix: initialize delayed_work *before* registering IRQ\n  um: line-\u003ehave_irq is never checked...\n  ...\n"
    },
    {
      "commit": "087fafd15204fb7a5df44b635ed3d3f4348f2d5e",
      "tree": "92feb580b5d88150a17442fc833bc95294e8ee85",
      "parents": [
        "4c3ff74742b481eaf32d010d072b421c97fd8f08"
      ],
      "author": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Tue Feb 07 01:22:46 2012 +0100"
      },
      "committer": {
        "name": "Richard Weinberger",
        "email": "richard@nod.at",
        "time": "Sun Mar 25 00:29:56 2012 +0100"
      },
      "message": "Introduce CONFIG_GENERIC_IO\n\nThere are situations where CONFIG_HAS_IOMEM is too restrictive.\nFor example CONFIG_MTD_NAND_NANDSIM depends on CONFIG_HAS_IOMEM\nbut it works perfectly fine if an architecture without io memory\njust includes asm-generic/io.h or implements everything defined in it.\nUML is such a corner case.\n\nSigned-off-by: Richard Weinberger \u003crichard@nod.at\u003e\n"
    },
    {
      "commit": "11bcb32848ddb5ab28f09f142b625e2ba4d55c4c",
      "tree": "9a2c085e1fce41012bb0f2a340f6ceaaf616b7a0",
      "parents": [
        "ed2d265d1266736bd294332d7f649003943ae36e",
        "8bc3bcc93a2b4e47d5d410146f6546bca6171663"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:24:31 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:24:31 2012 -0700"
      },
      "message": "Merge tag \u0027module-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull cleanup of fs/ and lib/ users of module.h from Paul Gortmaker:\n \"Fix up files in fs/ and lib/ dirs to only use module.h if they really\n  need it.\n\n  These are trivial in scope vs the work done previously.  We now have\n  things where any few remaining cleanups can be farmed out to arch or\n  subsystem maintainers, and I have done so when possible.  What is\n  remaining here represents the bits that don\u0027t clearly lie within a\n  single arch/subsystem boundary, like the fs dir and the lib dir.\n\n  Some duplicate includes arising from overlapping fixes from\n  independent subsystem maintainer submissions are also quashed.\"\n\nFix up trivial conflicts due to clashes with other include file cleanups\n(including some due to the previous bug.h cleanup pull).\n\n* tag \u0027module-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  lib: reduce the use of module.h wherever possible\n  fs: reduce the use of module.h wherever possible\n  includecheck: delete any duplicate instances of module.h\n"
    },
    {
      "commit": "ed2d265d1266736bd294332d7f649003943ae36e",
      "tree": "860e5b7bb72933e4a9abacdc2f2d75a0e6254e32",
      "parents": [
        "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
        "6c03438edeb5c359af35f060ea016ca65671c269"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Mar 24 10:08:39 2012 -0700"
      },
      "message": "Merge tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux\n\nPull \u003clinux/bug.h\u003e cleanup from Paul Gortmaker:\n \"The changes shown here are to unify linux\u0027s BUG support under the one\n  \u003clinux/bug.h\u003e file.  Due to historical reasons, we have some BUG code\n  in bug.h and some in kernel.h -- i.e.  the support for BUILD_BUG in\n  linux/kernel.h predates the addition of linux/bug.h, but old code in\n  kernel.h wasn\u0027t moved to bug.h at that time.  As a band-aid, kernel.h\n  was including \u003casm/bug.h\u003e to pseudo link them.\n\n  This has caused confusion[1] and general yuck/WTF[2] reactions.  Here\n  is an example that violates the principle of least surprise:\n\n      CC      lib/string.o\n      lib/string.c: In function \u0027strlcat\u0027:\n      lib/string.c:225:2: error: implicit declaration of function \u0027BUILD_BUG_ON\u0027\n      make[2]: *** [lib/string.o] Error 1\n      $\n      $ grep linux/bug.h lib/string.c\n      #include \u003clinux/bug.h\u003e\n      $\n\n  We\u0027ve included \u003clinux/bug.h\u003e for the BUG infrastructure and yet we\n  still get a compile fail! [We\u0027ve not kernel.h for BUILD_BUG_ON.] Ugh -\n  very confusing for someone who is new to kernel development.\n\n  With the above in mind, the goals of this changeset are:\n\n  1) find and fix any include/*.h files that were relying on the\n     implicit presence of BUG code.\n  2) find and fix any C files that were consuming kernel.h and hence\n     relying on implicitly getting some/all BUG code.\n  3) Move the BUG related code living in kernel.h to \u003clinux/bug.h\u003e\n  4) remove the asm/bug.h from kernel.h to finally break the chain.\n\n  During development, the order was more like 3-4, build-test, 1-2.  But\n  to ensure that git history for bisect doesn\u0027t get needless build\n  failures introduced, the commits have been reorderd to fix the problem\n  areas in advance.\n\n\t[1]  https://lkml.org/lkml/2012/1/3/90\n\t[2]  https://lkml.org/lkml/2012/1/17/414\"\n\nFix up conflicts (new radeon file, reiserfs header cleanups) as per Paul\nand linux-next.\n\n* tag \u0027bug-for-3.4\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:\n  kernel.h: doesn\u0027t explicitly use bug.h, so don\u0027t include it.\n  bug: consolidate BUILD_BUG_ON with other bug code\n  BUG: headers with BUG/BUG_ON etc. need linux/bug.h\n  bug.h: add include of it to various implicit C users\n  lib: fix implicit users of kernel.h for TAINT_WARN\n  spinlock: macroize assert_spin_locked to avoid bug.h dependency\n  x86: relocate get/set debugreg fcns to include/asm/debugreg.\n"
    },
    {
      "commit": "f1d38e423a697b7aa06e12d3ca4753bcc1aa3531",
      "tree": "1cbfd86070f724d5ffe53146d4c67edf14cccf98",
      "parents": [
        "dae430c6f6e5d0b98c238c340a41a39e221e8940",
        "4e474a00d7ff746ed177ddae14fa8b2d4bad7a00"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 18:08:58 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 18:08:58 2012 -0700"
      },
      "message": "Merge git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl\n\nPull sysctl updates from Eric Biederman:\n\n - Rewrite of sysctl for speed and clarity.\n\n   Insert/remove/Lookup in sysctl are all now O(NlogN) operations, and\n   are no longer bottlenecks in the process of adding and removing\n   network devices.\n\n   sysctl is now focused on being a filesystem instead of system call\n   and the code can all be found in fs/proc/proc_sysctl.c.  Hopefully\n   this means the code is now approachable.\n\n   Much thanks is owed to Lucian Grinjincu for keeping at this until\n   something was found that was usable.\n\n - The recent proc_sys_poll oops found by the fuzzer during hibernation\n   is fixed.\n\n* git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/sysctl: (36 commits)\n  sysctl: protect poll() in entries that may go away\n  sysctl: Don\u0027t call sysctl_follow_link unless we are a link.\n  sysctl: Comments to make the code clearer.\n  sysctl: Correct error return from get_subdir\n  sysctl: An easier to read version of find_subdir\n  sysctl: fix memset parameters in setup_sysctl_set()\n  sysctl: remove an unused variable\n  sysctl: Add register_sysctl for normal sysctl users\n  sysctl: Index sysctl directories with rbtrees.\n  sysctl: Make the header lists per directory.\n  sysctl: Move sysctl_check_dups into insert_header\n  sysctl: Modify __register_sysctl_paths to take a set instead of a root and an nsproxy\n  sysctl: Replace root_list with links between sysctl_table_sets.\n  sysctl: Add sysctl_print_dir and use it in get_subdir\n  sysctl: Stop requiring explicit management of sysctl directories\n  sysctl: Add a root pointer to ctl_table_set\n  sysctl: Rewrite proc_sys_readdir in terms of first_entry and next_entry\n  sysctl: Rewrite proc_sys_lookup introducing find_entry and lookup_entry.\n  sysctl: Normalize the root_table data structure.\n  sysctl: Factor out insert_header and erase_header\n  ...\n"
    },
    {
      "commit": "1ac101a5d675aca2426c5cd460c73fb95acb8391",
      "tree": "5d993fde0c5e67de97c0d9ffac54163f06fc90c9",
      "parents": [
        "59a32e2ce5eb809967cac4e718bc527beca83c59"
      ],
      "author": {
        "name": "KAMEZAWA Hiroyuki",
        "email": "kamezawa.hiroyu@jp.fujitsu.com",
        "time": "Fri Mar 23 15:02:54 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:42 2012 -0700"
      },
      "message": "procfs: add num_to_str() to speed up /proc/stat\n\n\u003d\u003d stat_check.py\nnum \u003d 0\nwith open(\"/proc/stat\") as f:\n        while num \u003c 1000 :\n                data \u003d f.read()\n                f.seek(0, 0)\n                num \u003d num + 1\n\u003d\u003d\n\nperf shows\n\n    20.39%  stat_check.py  [kernel.kallsyms]    [k] format_decode\n    13.41%  stat_check.py  [kernel.kallsyms]    [k] number\n    12.61%  stat_check.py  [kernel.kallsyms]    [k] vsnprintf\n    10.85%  stat_check.py  [kernel.kallsyms]    [k] memcpy\n     4.85%  stat_check.py  [kernel.kallsyms]    [k] radix_tree_lookup\n     4.43%  stat_check.py  [kernel.kallsyms]    [k] seq_printf\n\nThis patch removes most of calls to vsnprintf() by adding num_to_str()\nand seq_print_decimal_ull(), which prints decimal numbers without rich\nfunctions provided by printf().\n\nOn my 8cpu box.\n\u003d\u003d Before patch \u003d\u003d\n[root@bluextal test]# time ./stat_check.py\n\nreal    0m0.150s\nuser    0m0.026s\nsys     0m0.121s\n\n\u003d\u003d After patch \u003d\u003d\n[root@bluextal test]# time ./stat_check.py\n\nreal    0m0.055s\nuser    0m0.022s\nsys     0m0.030s\n\n[akpm@linux-foundation.org: remove incorrect comment, use less statck in num_to_str(), move comment from .h to .c, simplify seq_put_decimal_ull()]\n[andrea@betterlinux.com: avoid breaking the ABI in /proc/stat]\nSigned-off-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nSigned-off-by: Andrea Righi \u003candrea@betterlinux.com\u003e\nCc: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Paul Turner \u003cpjt@google.com\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "5cde7656d0dd222170eb0250bd1f70c9018fd438",
      "tree": "6ebd5b76968f84d5fd8545cfe3400162d76d222c",
      "parents": [
        "577eba9e22e872574c466648b46eeb3e0d04372e"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Fri Mar 23 15:02:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:38 2012 -0700"
      },
      "message": "crc32: select an algorithm via Kconfig\n\nAllow the kernel builder to choose a crc32* algorithm for the kernel.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "577eba9e22e872574c466648b46eeb3e0d04372e",
      "tree": "725d141dad7d04d5fc776429eafa82e27fc0a8d2",
      "parents": [
        "6a0962b22eccc70b8421014022c07efcf194a95e"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Fri Mar 23 15:02:26 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:38 2012 -0700"
      },
      "message": "crc32: add self-test code for crc32c\n\nAdd self-test code for crc32c.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "46c5801eaf86e83cb3a4142ad35188db5011fff0",
      "tree": "2b8a8f7709aa7dadafdf13f823488cf51e2e2fed",
      "parents": [
        "78dff4189708d07cdcaf7bfd1b04ebe78ac9c041"
      ],
      "author": {
        "name": "Darrick J. Wong",
        "email": "djwong@us.ibm.com",
        "time": "Fri Mar 23 15:02:25 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:38 2012 -0700"
      },
      "message": "crc32: bolt on crc32c\n\nReuse the existing crc32 code to stamp out a crc32c implementation.\n\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nCc: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nCc: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nCc: Randy Dunlap \u003crdunlap@xenotime.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "78dff4189708d07cdcaf7bfd1b04ebe78ac9c041",
      "tree": "be5ac559beab9f582505d8954cb1b67cc5fa7e3b",
      "parents": [
        "0292c497b6b942557d085b37f888ef5865f67d37"
      ],
      "author": {
        "name": "Bob Pearson",
        "email": "rpearson@systemfabricworks.com",
        "time": "Fri Mar 23 15:02:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:38 2012 -0700"
      },
      "message": "crc32: add note about this patchset to crc32.c\n\nAdd a comment at the top of crc32.c\n\n[djwong@us.ibm.com: Minor changelog tweaks]\nSigned-off-by: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "0292c497b6b942557d085b37f888ef5865f67d37",
      "tree": "fe88508060c0ecdf8fb3d5e98ca2c55057cc5068",
      "parents": [
        "324eb0f17d9dcead3c60c133aa244f6b3631fec9"
      ],
      "author": {
        "name": "Bob Pearson",
        "email": "rpearson@systemfabricworks.com",
        "time": "Fri Mar 23 15:02:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:37 2012 -0700"
      },
      "message": "crc32: optimize loop counter for x86\n\nAdd two changes that improve the performance of x86 systems\n\n1. replace main loop with incrementing counter this change improves\n   the performance of the selftest by about 5-6% on Nehalem CPUs.  The\n   apparent reason is that the compiler can use the loop index to perform\n   an indexed memory access.  This is reported to make the performance of\n   PowerPC CPUs to get worse.\n\n2. replace the rem_len loop with incrementing counter this change\n   improves the performance of the selftest, which has more than the usual\n   number of occurances, by about 1-2% on x86 CPUs.  In actual work loads\n   the length is most often a multiple of 4 bytes and this code does not\n   get executed as often if at all.  Again this change is reported to make\n   the performance of PowerPC get worse.\n\n[djwong@us.ibm.com: Minor changelog tweaks]\nSigned-off-by: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "324eb0f17d9dcead3c60c133aa244f6b3631fec9",
      "tree": "657c564269a0fc1921f4252dbf0184725f5c85fa",
      "parents": [
        "9a1dbf6a29694c9d81b498019f103aee0f8b5b6c"
      ],
      "author": {
        "name": "Bob Pearson",
        "email": "rpearson@systemfabricworks.com",
        "time": "Fri Mar 23 15:02:24 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:37 2012 -0700"
      },
      "message": "crc32: add slice-by-8 algorithm to existing code\n\nAdd slicing-by-8 algorithm to the existing slicing-by-4 algorithm.  This\nconsists of:\n\n- extend largest BITS size from 32 to 64\n- extend tables from tab[4][256] to up to tab[8][256]\n- Add code for inner loop.\n\n[djwong@us.ibm.com: Minor changelog tweaks]\nSigned-off-by: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "9a1dbf6a29694c9d81b498019f103aee0f8b5b6c",
      "tree": "1f331fa108ea29ccf06a7b5816da4dbcaa12bf2d",
      "parents": [
        "ce4320ddda4c2520fe77194d3c801ad4e8a8aa11"
      ],
      "author": {
        "name": "Bob Pearson",
        "email": "rpearson@systemfabricworks.com",
        "time": "Fri Mar 23 15:02:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:37 2012 -0700"
      },
      "message": "crc32: make CRC_*_BITS definition correspond to actual bit counts\n\ncrc32.c provides a choice of one of several algorithms for computing the\nLSB and LSB versions of the CRC32 checksum based on the parameters\nCRC_LE_BITS and CRC_BE_BITS.\n\nIn the original version the values 1, 2, 4 and 8 respectively selected\nversions of the alrogithm that computed the crc 1, 2, 4 and 32 bits as a\ntime.\n\nThis patch series adds a new version that computes the CRC 64 bits at a\ntime.  To make things easier to understand the parameter has been\nreinterpreted to actually stand for the number of bits processed in each\nstep of the algorithm so that the old value 8 has been replaced with the\nvalue 32.\n\nThis also allows us to add in a widely used crc algorithm that computes\nthe crc 8 bits at a time called the Sarwate algorithm.\n\n[djwong@us.ibm.com: Minor changelog tweaks]\nSigned-off-by: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce4320ddda4c2520fe77194d3c801ad4e8a8aa11",
      "tree": "273b405fa1d10a185123d216fd33286d50de74f0",
      "parents": [
        "60e58d5c9d8d698600e8ccb44b5a13cf99d0d90f"
      ],
      "author": {
        "name": "Bob Pearson",
        "email": "rpearson@systemfabricworks.com",
        "time": "Fri Mar 23 15:02:23 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:37 2012 -0700"
      },
      "message": "crc32: fix mixing of endian-specific types\n\ncrc32.c in its original version freely mixed u32, __le32 and __be32 types\nwhich caused warnings from sparse with __CHECK_ENDIAN__.  This patch fixes\nthese by forcing the types to u32.\n\n[djwong@us.ibm.com: Minor changelog tweaks]\nSigned-off-by: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "60e58d5c9d8d698600e8ccb44b5a13cf99d0d90f",
      "tree": "81912b32deaf6edf23a00f0f92f82efa95f6af52",
      "parents": [
        "3863ef31dcf04f977a94402348fec06179db58e0"
      ],
      "author": {
        "name": "Bob Pearson",
        "email": "rpearson@systemfabricworks.com",
        "time": "Fri Mar 23 15:02:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:37 2012 -0700"
      },
      "message": "crc32: miscellaneous cleanups\n\nMisc cleanup of lib/crc32.c and related files.\n\n- remove unnecessary header files.\n\n- straighten out some convoluted ifdef\u0027s\n\n- rewrite some references to 2 dimensional arrays as 1 dimensional\n  arrays to make them correct.  I.e.  replace tab[i] with tab[0][i].\n\n- a few trivial whitespace changes\n\n- fix a warning in gen_crc32tables.c caused by a mismatch in the type of\n  the pointer passed to output table.  Since the table is only used at\n  kernel compile time, it is simpler to make the table big enough to hold\n  the largest column size used.  One cannot make the column size smaller\n  in output_table because it has to be used by both the le and be tables\n  and they can have different column sizes.\n\n[djwong@us.ibm.com: Minor changelog tweaks]\nSigned-off-by: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "3863ef31dcf04f977a94402348fec06179db58e0",
      "tree": "98c50d517472247290b6ccad62b7575d688e0dd6",
      "parents": [
        "fbedceb10066430b925cf43fbf926e8abb9e2359"
      ],
      "author": {
        "name": "Bob Pearson",
        "email": "rpearson@systemfabricworks.com",
        "time": "Fri Mar 23 15:02:22 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Mar 23 16:58:37 2012 -0700"
      },
      "message": "crc32: simplify unit test code\n\nReplace the unit test provided in crc32.c, which doesn\u0027t have a makefile\nand doesn\u0027t compile with current headers, with a simpler self test\nroutine that also gives a measure of performance and runs at module init\ntime.  The self test option can be enabled through a configuration\noption CONFIG_CRC32_SELFTEST.\n\nThe test stresses the pre and post loops and is thus not very realistic\nsince actual uses will likely have addresses and lengths that are at\nleast 4 byte aligned.  However, the main loop is long enough so that the\nperformance is dominated by that loop.\n\nThe expected values for crc32_le and crc32_be were generated with the\noriginal version of crc32.c using CRC_BITS_LE \u003d 8 and CRC_BITS_BE \u003d 8.\nThese values were then used to check all the values of the BITS\nparameters in both the original and new versions.\n\nThe performance results show some variability from run to run in spite\nof attempts to both warm the cache and reduce the amount of OS noise by\nlimiting interrutps during the test.  To get comparable results and to\nanalyse options wrt performance the best time reported over a small\nsample of runs has been taken.\n\n[djwong@us.ibm.com: Minor changelog tweaks]\nSigned-off-by: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nSigned-off-by: Darrick J. Wong \u003cdjwong@us.ibm.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    }
  ],
  "next": "fbedceb10066430b925cf43fbf926e8abb9e2359"
}
