)]}'
{
  "log": [
    {
      "commit": "628cf0d26f8312b178e2c312a36623ea7c97fb89",
      "tree": "133fe07e38c4ad224024b6afdd340e5cdbbb6d7f",
      "parents": [
        "091834d8938120892c3855ff91af9f6c2271a19d"
      ],
      "author": {
        "name": "Tom Marshall",
        "email": "tdm.code@gmail.com",
        "time": "Fri Apr 28 22:46:37 2017 +0000"
      },
      "committer": {
        "name": "Mikhail Chowdhury",
        "email": "mikhail.chowdhury@gmail.com",
        "time": "Tue May 23 18:27:00 2017 +0200"
      },
      "message": "kernel: Only expose su when daemon is running\n\nIt has been claimed that the PG implementation of \u0027su\u0027 has security\nvulnerabilities even when disabled.  Unfortunately, the people that\nfind these vulnerabilities often like to keep them private so they\ncan profit from exploits while leaving users exposed to malicious\nhackers.\n\nIn order to reduce the attack surface for vulnerabilites, it is\ntherefore necessary to make \u0027su\u0027 completely inaccessible when it\nis not in use (except by the root and system users).\n\nChange-Id: Ia7d50ba46c3d932c2b0ca5fc8e9ec69ec9045f85\n"
    },
    {
      "commit": "c7222a2b570115867d5c1c043dd0fc2bb8736575",
      "tree": "8e2d50cc861b3e8983dba1a63d98b6a7edc55615",
      "parents": [
        "d90ec5a1e3ff823ba6e06b545b211996fe6b37ba"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Dec 16 12:30:04 2015 +0900"
      },
      "committer": {
        "name": "Pavel Malyutin",
        "email": "pavel.malyutin@gmail.com",
        "time": "Sun Feb 26 16:41:09 2017 +0000"
      },
      "message": "net: diag: Support SOCK_DESTROY for inet sockets.\n\nThis passes the SOCK_DESTROY operation to the underlying protocol\ndiag handler, or returns -EOPNOTSUPP if that handler does not\ndefine a destroy operation.\n\nMost of this patch is just renaming functions. This is not\nstrictly necessary, but it would be fairly counterintuitive to\nhave the code to destroy inet sockets be in a function whose name\nstarts with inet_diag_get.\n\n[Backport of net-next 6eb5d2e08f071c05ecbe135369c9ad418826cab2]\n\nChange-Id: I70a700ec66e0ea8526a17137ba6cb5a3f2dce45f\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "d90ec5a1e3ff823ba6e06b545b211996fe6b37ba",
      "tree": "d7cde70478771ef1187cfaa0a4b2b2a166210621",
      "parents": [
        "a0c0d4acdb0d1a0e2ee800dc1c98604e5fd27855"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Dec 16 12:30:02 2015 +0900"
      },
      "committer": {
        "name": "Pavel Malyutin",
        "email": "pavel.malyutin@gmail.com",
        "time": "Sun Feb 26 16:38:56 2017 +0000"
      },
      "message": "net: diag: split inet_diag_dump_one_icsk into two\n\nCurrently, inet_diag_dump_one_icsk finds a socket and then dumps\nits information to userspace. Split it into a part that finds the\nsocket and a part that dumps the information.\n\n[Backport of net-next b613f56ec9baf30edf5d9d607b822532a273dad7]\n\nChange-Id: I6b570c35a4928ea072de3e31f9f3ca89668a5244\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "8b378f1ff4c2aed62f6e64b8d802ca9d1f097335",
      "tree": "2e2f181714819906f0f1b7bf7a444818336fa1bf",
      "parents": [
        "16a39eddb18a2daf21142a8fd1fd0cfde76a9397"
      ],
      "author": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Thu Jan 05 19:17:33 2017 -0600"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Thu Jan 05 19:29:20 2017 -0600"
      },
      "message": "sunrpc: Resolve uninitialized variable warnings\n\nChange-Id: Icb5134616d814da8b87ffdd199d62947da65b88b\n"
    },
    {
      "commit": "16a39eddb18a2daf21142a8fd1fd0cfde76a9397",
      "tree": "5f858f20e445c8a45078ca0ec5f61c4e088e1deb",
      "parents": [
        "e39192331424b6e0695038c1dd57f43efebe9355",
        "8d1988f838a95e836342b505398d38b223181f17"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Fri Dec 30 09:42:57 2016 -0600"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Fri Dec 30 10:00:46 2016 -0600"
      },
      "message": "Merge tag \u0027v3.4.113\u0027 into cm-14.1\n\nChange-Id: Ifa814958fd557299a5442731fc22fcb62139898b\n"
    },
    {
      "commit": "1fe59765f55e5f987b761e60be2277c6d21af417",
      "tree": "07e1bec075a2234d0971e79ff7b6cc446c281cfe",
      "parents": [
        "df6d5fd2a3e9dabffab716fcd3fbc4d9ba447614"
      ],
      "author": {
        "name": "fluxi",
        "email": "linflux@arcor.de",
        "time": "Fri Oct 21 22:57:35 2016 +0200"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Wed Nov 30 10:28:00 2016 -0600"
      },
      "message": "sdcardfs: Flag files as non-mappable\n\nImplement Samsung\u0027s FMODE_NONMAPPABLE flag from\nsdcardfs version 2.1.4 as we hit a BUG on ext4:\n\n[   49.655037]@0 Kernel BUG at ffffffc0001deeec [verbose debug info unavailable]\n[   49.655045]@0 Internal error: Oops - BUG: 0 [#1] PREEMPT SMP\n[   49.655052]@0 Modules linked in:\n[   49.655061]@0 CPU: 0 PID: 283 Comm: kworker/u8:7 Tainted: G        W      3.18.20-perf-g3be2054-00086-ga8307fb #1\n[   49.655070]@0 Hardware name: Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8996 MTP (DT)\n[   49.655077]@0 Workqueue: writeback bdi_writeback_workfn (flush-8:0)\n[   49.655096]@0 task: ffffffc174ba8b00 ti: ffffffc174bb4000 task.ti: ffffffc174bb4000\n[   49.655108]@0 PC is at mpage_prepare_extent_to_map+0x198/0x218\n[   49.655116]@0 LR is at mpage_prepare_extent_to_map+0x110/0x218\n[   49.655121]@0 pc : [\u003cffffffc0001deeec\u003e] lr : [\u003cffffffc0001dee64\u003e] pstate: 60000145\n[   49.655126]@0 sp : ffffffc174bb7800\n[   49.655130]@0 x29: ffffffc174bb7800 x28: ffffffc174bb7880\n[   49.655140]@0 x27: 000000000000000d x26: ffffffc1245505e8\n[   49.655149]@0 x25: 0000000000000000 x24: 0000000000003400\n[   49.655160]@0 x23: ffffffffffffffff x22: 0000000000000000\n[   49.655172]@0 x21: ffffffc174bb7888 x20: ffffffc174bb79e0\n[   49.655182]@0 x19: ffffffbdc4ee7b80 x18: 0000007f92872000\n[   49.655191]@0 x17: 0000007f959b6424 x16: ffffffc00016d1ac\n[   49.655201]@0 x15: 0000007f9285d158 x14: ffffffc1734796e8\n[   49.655210]@0 x13: ffffffbdc1ffa4c0 x12: ffffffbdc4ee7b80\n[   49.655220]@0 x11: 0000000000000100 x10: 0000000000000000\n[   49.655229]@0 x9 : 0000000000000000 x8 : ffffffc0b444e210\n[   49.655237]@0 x7 : 0000000000000000 x6 : ffffffc0b444e1e0\n[   49.655246]@0 x5 : 0000000000000000 x4 : 0000000000000001\n[   49.655254]@0 x3 : 0000000000000000 x2 : 400000000002003d\n[   49.655263]@0 x1 : ffffffbdc4ee7b80 x0 : 400000000002003d\n[   49.655271]@0\n[   49.656502]@0 Process kworker/u8:7 (pid: 283, stack limit \u003d 0xffffffc174bb4058)\n[   49.656509]@0 Call trace:\n[   49.656514]@0 [\u003cffffffc0001deeec\u003e] mpage_prepare_extent_to_map+0x198/0x218\n[   49.656526]@0 [\u003cffffffc0001e28d0\u003e] ext4_writepages+0x270/0xa58\n[   49.656533]@0 [\u003cffffffc00012982c\u003e] do_writepages+0x24/0x40\n[   49.656541]@0 [\u003cffffffc000180160\u003e] __writeback_single_inode+0x40/0x114\n[   49.656549]@0 [\u003cffffffc000180e50\u003e] writeback_sb_inodes+0x1dc/0x34c\n[   49.656555]@0 [\u003cffffffc00018103c\u003e] __writeback_inodes_wb+0x7c/0xc4\n[   49.656560]@0 [\u003cffffffc000181224\u003e] wb_writeback+0x110/0x1a8\n[   49.656565]@0 [\u003cffffffc000181344\u003e] wb_check_old_data_flush+0x88/0x98\n[   49.656571]@0 [\u003cffffffc00018156c\u003e] bdi_writeback_workfn+0xf4/0x1fc\n[   49.656576]@0 [\u003cffffffc0000b14f8\u003e] process_one_work+0x1e0/0x300\n[   49.656585]@0 [\u003cffffffc0000b1e14\u003e] worker_thread+0x318/0x438\n[   49.656590]@0 [\u003cffffffc0000b5da0\u003e] kthread+0xe0/0xec\n[   49.656598]@0 Code: f9400260 f9400a63 1ad92063 37580040 (e7f001f2)\n[   49.656604]@0 ---[ end trace cbed09f772fd630d ]---\n\nChange-Id: I931da7cb3841db1f130dba298a7d256b6f02d1bc\n"
    },
    {
      "commit": "03d1eccc55e86bf063bac2b8a44b11bb6148d9ee",
      "tree": "4fca3bf4f16465155706fd33641d1a411fb63eae",
      "parents": [
        "09a3900b6e6d6e180d1fb437837958ce41b1bd36"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Fri Apr 22 00:00:48 2016 -0700"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Wed Nov 30 10:25:34 2016 -0600"
      },
      "message": "fuse: Add support for d_canonical_path\n\nAllows FUSE to report to inotify that it is acting\nas a layered filesystem. The userspace component\nreturns a string representing the location of the\nunderlying file. If the string cannot be resolved\ninto a path, the top level path is returned instead.\n\nbug: 23904372\nChange-Id: Iabdca0bbedfbff59e9c820c58636a68ef9683d9f\nSigned-off-by: Daniel Rosenberg \u003cdrosen@google.com\u003e\n"
    },
    {
      "commit": "09a3900b6e6d6e180d1fb437837958ce41b1bd36",
      "tree": "772937252491c482ecaac30e91f8835e366269cf",
      "parents": [
        "44d71eba7954a24e2ab72b7334337bfb76ab94d7"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Fri Apr 22 00:00:14 2016 -0700"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Wed Nov 30 10:25:27 2016 -0600"
      },
      "message": "vfs: change d_canonical_path to take two paths\n\nbug: 23904372\nChange-Id: I4a686d64b6de37decf60019be1718e1d820193e6\nSigned-off-by: Daniel Rosenberg \u003cdrosen@google.com\u003e\n"
    },
    {
      "commit": "44d71eba7954a24e2ab72b7334337bfb76ab94d7",
      "tree": "2adf23ccac1ebf748d021cdcf4a1fccd23dedba7",
      "parents": [
        "00f3a5fc3108e366f48730299199390d87225bf7"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Thu Feb 11 16:44:15 2016 -0800"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Wed Nov 30 10:24:55 2016 -0600"
      },
      "message": "vfs: add d_canonical_path for stacked filesystem support\n\nInotify does not currently know when a filesystem\nis acting as a wrapper around another fs. This means\nthat inotify watchers will miss any modifications to\nthe base file, as well as any made in a separate\nstacked fs that points to the same file.\nd_canonical_path solves this problem by allowing the fs\nto map a dentry to a path in the lower fs. Inotify\ncan use it to find the appropriate place to watch to\nbe informed of all changes to a file.\n\nChange-Id: I09563baffad1711a045e45c1bd0bd8713c2cc0b6\nSigned-off-by: Daniel Rosenberg \u003cdrosen@google.com\u003e\n"
    },
    {
      "commit": "d8554b108e421210750e7ef5ebab53f6de03fceb",
      "tree": "9cc591f4cc420ffb139f016acd0f0d8db94257a7",
      "parents": [
        "dd096bc7335a7857ee053712f64f9938d0bbdb2b"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Thu Feb 11 16:53:36 2016 -0800"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Wed Nov 30 10:24:24 2016 -0600"
      },
      "message": "sdcardfs: Add support for d_canonicalize\n\nChange-Id: I5d6f0e71b8ca99aec4b0894412f1dfd1cfe12add\nSigned-off-by: Daniel Rosenberg \u003cdrosen@google.com\u003e\n"
    },
    {
      "commit": "b7fb16f31a39e25c73635c09997966c508ba6db0",
      "tree": "fe9e38f476e2c34e9766dec4d6173f8efa924697",
      "parents": [
        "1d930b2b94f95685b6520fb5dca522ed41c1be6f"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 15 03:01:42 2012 +0400"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Wed Nov 30 08:32:27 2016 -0600"
      },
      "message": "get rid of kern_path_parent()\n\nall callers want the same thing, actually - a kinda-sorta analog of\nkern_path_create().  I.e. they want parent vfsmount/dentry (with\n-\u003ei_mutex held, to make sure the child dentry is still their child)\n+ the child dentry.\n\nSigned-off-by Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n\nChange-Id: I58cc7b0a087646516db9af69962447d27fb3ee8b\n"
    },
    {
      "commit": "1d930b2b94f95685b6520fb5dca522ed41c1be6f",
      "tree": "6f8281b575ee677a2190d2a18e114a3013ae55e3",
      "parents": [
        "885fd32ea5abab0e338f2068d09ee80f659999c4"
      ],
      "author": {
        "name": "Daniel Campello",
        "email": "campello@google.com",
        "time": "Mon Jul 20 16:23:50 2015 -0700"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Wed Nov 30 08:32:23 2016 -0600"
      },
      "message": "Included sdcardfs source code for kernel 3.0\n\nOnly included the source code as is for kernel 3.0. Following patches\ntake care of porting this file system to version 3.10.\n\nChange-Id: I09e76db77cd98a059053ba5b6fd88572a4b75b5b\nSigned-off-by: Daniel Campello \u003ccampello@google.com\u003e\n"
    },
    {
      "commit": "885fd32ea5abab0e338f2068d09ee80f659999c4",
      "tree": "4742569da9c4afb3e8cb4f3b14942cc72420756c",
      "parents": [
        "c97fe2418e51a47b1966fbdd60beb9d84f703bc0"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Dec 16 12:30:03 2015 +0900"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Wed Nov 23 09:30:01 2016 -0600"
      },
      "message": "net: diag: Add the ability to destroy a socket.\n\nThis patch adds a SOCK_DESTROY operation, a destroy function\npointer to sock_diag_handler, and a diag_destroy function\npointer.  It does not include any implementation code.\n\n[Backport of net-next 64be0aed59ad519d6f2160868734f7e278290ac1]\n\nChange-Id: I1d998e1c5f836b2f5638c0f79244c372c8d2d9d9\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b62986e7bd31fbad9e01c5f6199a01413e9b164f",
      "tree": "94ae99a2a24d048956cf302861f4be1092ca9048",
      "parents": [
        "315a9ded11f15ab0e43e30683e2b62453e695d6e"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Tue Jul 21 15:17:26 2015 -0700"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Wed Nov 23 06:52:53 2016 -0800"
      },
      "message": "Fix incorrect conflict resolution in \"vfs: Add setns support for the mount namespace\"\n\nChange-Id: Ib974a066d15036c75f13ff7845cffc5b1f66ac75\n(cherry picked from commit 831730dbc5ebebe0f7d921dafd8aa5e4ed1b4192)\n"
    },
    {
      "commit": "1c8544a93151329be95f702f6f4029f860b77ee7",
      "tree": "1a1cd34ba915faa832ac83d0086e0cc9f1b1be45",
      "parents": [
        "86eecef7f9d182c759c687020a504235c6bef903"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Sun Oct 16 11:55:00 2016 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Oct 26 23:15:46 2016 +0800"
      },
      "message": "mm, gup: close FOLL MAP_PRIVATE race\n\ncommit 19be0eaffa3ac7d8eb6784ad9bdbc7d67ed8e619 upstream.\n\nfaultin_page drops FOLL_WRITE after the page fault handler did the CoW\nand then we retry follow_page_mask to get our CoWed page. This is racy,\nhowever because the page might have been unmapped by that time and so\nwe would have to do a page fault again, this time without CoW. This\nwould cause the page cache corruption for FOLL_FORCE on MAP_PRIVATE\nread only mappings with obvious consequences.\n\nThis is an ancient bug that was actually already fixed once by Linus\neleven years ago in commit 4ceb5db9757a (\"Fix get_user_pages() race\nfor write access\") but that was then undone due to problems on s390\nby commit f33ea7f404e5 (\"fix get_user_pages bug\") because s390 didn\u0027t\nhave proper dirty pte tracking until abf09bed3cce (\"s390/mm: implement\nsoftware dirty bits\"). This wasn\u0027t a problem at the time as pointed out\nby Hugh Dickins because madvise relied on mmap_sem for write up until\n0a27a14a6292 (\"mm: madvise avoid exclusive mmap_sem\") but since then we\ncan race with madvise which can unmap the fresh COWed page or with KSM\nand corrupt the content of the shared page.\n\nThis patch is based on the Linus\u0027 approach to not clear FOLL_WRITE after\nthe CoW page fault (aka VM_FAULT_WRITE) but instead introduces FOLL_COW\nto note this fact. The flag is then rechecked during follow_pfn_pte to\nenforce the page fault again if we do not see the CoWed page. Linus was\nsuggesting to check pte_dirty again as s390 is OK now. But that would\nmake backporting to some old kernels harder. So instead let\u0027s just make\nsure that vm_normal_page sees a pure anonymous page.\n\nThis would guarantee we are seeing a real CoW page. Introduce\ncan_follow_write_pte which checks both pte_write and falls back to\nPageAnon on forced write faults which passed CoW already. Thanks to Hugh\nto point out that a special care has to be taken for KSM pages because\nour COWed page might have been merged with a KSM one and keep its\nPageAnon flag.\n\nFixes: 0a27a14a6292 (\"mm: madvise avoid exclusive mmap_sem\")\nReported-by: Phil \"not Paul\" Oester \u003ckernel@linuxace.com\u003e\nDisclosed-by: Andy Lutomirski \u003cluto@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\n[bwh: Backported to 3.2:\n - Adjust filename, context, indentation\n - The \u0027no_page\u0027 exit path in follow_page() is different, so open-code the\n   cleanup\n - Delete a now-unused label]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "7862b8a351bb72b45307123993b2991374869765",
      "tree": "2e78f60d9eb52ac478e6384de8fdb4e4cd45adbb",
      "parents": [
        "d64519bf05760fc4f2d9a31e28df56af873c5b65"
      ],
      "author": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Sun Oct 09 19:20:47 2016 +0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Oct 26 23:15:44 2016 +0800"
      },
      "message": "Revert \"USB: Add device quirk for ASUS T100 Base Station keyboard\"\n\nThis reverts commit eea5a87d270e8d6925063019c3b0f3ff61fcb49a.\n\nConflicts:\n\tdrivers/usb/core/quirks.c\n\tinclude/linux/usb/quirks.h\n\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "0dd69de3c4f45c6e3af43e9146ee4679dbc45a33",
      "tree": "e12fe94a12bb98f9030ff607c9ac6d9f1cc5d9d7",
      "parents": [
        "1405c2b764791b8b6328d1e39059fb6780beef9e"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Dec 11 09:16:38 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Oct 26 23:15:37 2016 +0800"
      },
      "message": "ses: fix additional element traversal bug\n\ncommit 5e1033561da1152c57b97ee84371dba2b3d64c25 upstream.\n\nKASAN found that our additional element processing scripts drop off\nthe end of the VPD page into unallocated space.  The reason is that\nnot every element has additional information but our traversal\nroutines think they do, leading to them expecting far more additional\ninformation than is present.  Fix this by adding a gate to the\ntraversal routine so that it only processes elements that are expected\nto have additional information (list is in SES-2 section 6.1.13.1:\nAdditional Element Status diagnostic page overview)\n\nReported-by: Pavel Tikhomirov \u003cptikhomirov@virtuozzo.com\u003e\nTested-by: Pavel Tikhomirov \u003cptikhomirov@virtuozzo.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "1be2ead7a8f779f2595afaa5523e7f83cd0dcf2b",
      "tree": "c6bf0497e9819a794611333d238f48c46f861f14",
      "parents": [
        "ff0dd8f8f68435374713feecdf74736953fd5196"
      ],
      "author": {
        "name": "Chen Yu",
        "email": "yu.c.chen@intel.com",
        "time": "Sun Oct 25 01:02:19 2015 +0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Oct 26 23:15:26 2016 +0800"
      },
      "message": "ACPI: Use correct IRQ when uninstalling ACPI interrupt handler\n\ncommit 49e4b84333f338d4f183f28f1f3c1131b9fb2b5a upstream.\n\nCurrently when the system is trying to uninstall the ACPI interrupt\nhandler, it uses acpi_gbl_FADT.sci_interrupt as the IRQ number.\nHowever, the IRQ number that the ACPI interrupt handled is installed\nfor comes from acpi_gsi_to_irq() and that is the number that should\nbe used for the handler removal.\n\nFix this problem by using the mapped IRQ returned from acpi_gsi_to_irq()\nas appropriate.\n\nAcked-by: Lv Zheng \u003clv.zheng@intel.com\u003e\nSigned-off-by: Chen Yu \u003cyu.c.chen@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "8fb4b054c92925545e6e12b59f0c8b6b6f514984",
      "tree": "44361522917cf85e00136eb90fcc8c7e57d692c4",
      "parents": [
        "b7d44ef53eb257900c6f0183a39e4dee6fad6072"
      ],
      "author": {
        "name": "Daeho Jeong",
        "email": "daeho.jeong@samsung.com",
        "time": "Sun Oct 18 17:02:56 2015 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Oct 26 23:15:25 2016 +0800"
      },
      "message": "ext4, jbd2: ensure entering into panic after recording an error in superblock\n\ncommit 4327ba52afd03fc4b5afa0ee1d774c9c5b0e85c5 upstream.\n\nIf a EXT4 filesystem utilizes JBD2 journaling and an error occurs, the\njournaling will be aborted first and the error number will be recorded\ninto JBD2 superblock and, finally, the system will enter into the\npanic state in \"errors\u003dpanic\" option.  But, in the rare case, this\nsequence is little twisted like the below figure and it will happen\nthat the system enters into panic state, which means the system reset\nin mobile environment, before completion of recording an error in the\njournal superblock. In this case, e2fsck cannot recognize that the\nfilesystem failure occurred in the previous run and the corruption\nwouldn\u0027t be fixed.\n\nTask A                        Task B\next4_handle_error()\n-\u003e jbd2_journal_abort()\n  -\u003e __journal_abort_soft()\n    -\u003e __jbd2_journal_abort_hard()\n    | -\u003e journal-\u003ej_flags |\u003d JBD2_ABORT;\n    |\n    |                         __ext4_abort()\n    |                         -\u003e jbd2_journal_abort()\n    |                         | -\u003e __journal_abort_soft()\n    |                         |   -\u003e if (journal-\u003ej_flags \u0026 JBD2_ABORT)\n    |                         |           return;\n    |                         -\u003e panic()\n    |\n    -\u003e jbd2_journal_update_sb_errno()\n\nTested-by: Hobin Woo \u003chobin.woo@samsung.com\u003e\nSigned-off-by: Daeho Jeong \u003cdaeho.jeong@samsung.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "4b97aa11bdea56a873def5228ea1e336f922678d",
      "tree": "2b733861734fc64ed2013c42d7613afd7ecb2a14",
      "parents": [
        "f218884cb16105c0ee25cf0e875f7ce1ca2cac70"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Oct 20 00:49:40 2016 +0200"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Tue Oct 25 13:48:12 2016 -0500"
      },
      "message": "mm: remove gup_flags FOLL_WRITE games from __get_user_pages()\n\nThis is an ancient bug that was actually attempted to be fixed once\n(badly) by me eleven years ago in commit 4ceb5db9757a (\"Fix\nget_user_pages() race for write access\") but that was then undone due to\nproblems on s390 by commit f33ea7f404e5 (\"fix get_user_pages bug\").\n\nIn the meantime, the s390 situation has long been fixed, and we can now\nfix it by checking the pte_dirty() bit properly (and do it better).  The\ns390 dirty bit was implemented in abf09bed3cce (\"s390/mm: implement\nsoftware dirty bits\") which made it into v3.9.  Earlier kernels will\nhave to look at the page state itself.\n\nAlso, the VM has become more scalable, and what used a purely\ntheoretical race back then has become easier to trigger.\n\nTo fix it, we introduce a new internal FOLL_COW flag to mark the \"yes,\nwe already did a COW\" rather than play racy games with FOLL_WRITE that\nis very fundamental, and then use the pte dirty flag to validate that\nthe FOLL_COW flag is still valid.\n\nChange-Id: Id9bec3722797dff7d0ff0d9f6097c4229e31fd62\nReported-and-tested-by: Phil \"not Paul\" Oester \u003ckernel@linuxace.com\u003e\nAcked-by: Hugh Dickins \u003chughd@google.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.com\u003e\nCc: Andy Lutomirski \u003cluto@kernel.org\u003e\nCc: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Oleg Nesterov \u003coleg@redhat.com\u003e\nCc: Willy Tarreau \u003cw@1wt.eu\u003e\nCc: Nick Piggin \u003cnpiggin@gmail.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: stable@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[wt: s/gup.c/memory.c; s/follow_page_pte/follow_page_mask;\n     s/faultin_page/__get_user_page]\nSigned-off-by: Willy Tarreau \u003cw@1wt.eu\u003e\n"
    },
    {
      "commit": "9f8ea59bdb92e7a2282a12e1f7417edcc811b23f",
      "tree": "14a99794f4aaef1b8ad98a20501741d8924f38e7",
      "parents": [
        "b99355c6fe72634cfb7633b1c6e1129ea83926ac"
      ],
      "author": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Thu Aug 18 22:06:13 2016 -0500"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Thu Aug 18 22:06:13 2016 -0500"
      },
      "message": "f2fs: Squashed update from f2fs-stable\n\nhttps://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-stable.git\nBranch: linux-3.4.y\nUp to and including:\n  fscrypto: no support for v3.4\n  2220ac23c3c583321276c85cbfd7f6378abd8f94\n\nChange-Id: I417b0479dcd9e9c257beb45852b70bca3630c61e\n"
    },
    {
      "commit": "6c846329cfe0a31cf2aa5f7bb161dd7e12e9e22c",
      "tree": "00620d6638b945408bd547f2c8235a197bb70dd3",
      "parents": [
        "b23297ea412da06e84002f441f209cc5df45d0d1"
      ],
      "author": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Fri Jun 03 11:26:48 2016 -0500"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Fri Jun 03 09:36:54 2016 -0700"
      },
      "message": "f2fs: Squashed update from f2fs-stable\n\nhttps://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-stable.git\nBranch: linux-3.4.y\nUp to and including:\n  f2fs: adjust other changes\n  2ba43a590c3fd78b3d05edd49aab3d2c34ae7232\n\nChange-Id: If67141f1a9d23e42bd972ad9aaef6e6aa3ac28b8\n"
    },
    {
      "commit": "482159dc9981163724c5eb3e5fbbfc5d95e709f1",
      "tree": "50fce437e582f9eb3f9844ee22ec4415c412fe65",
      "parents": [
        "d9a1c8fd2bb7290f0f20d3919947a9dff8ec805d"
      ],
      "author": {
        "name": "Willy Tarreau",
        "email": "w@1wt.eu",
        "time": "Mon Jan 18 16:36:09 2016 +0100"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Mon May 23 21:13:07 2016 -0500"
      },
      "message": "pipe: limit the per-user amount of pages allocated in pipes\n\nOn no-so-small systems, it is possible for a single process to cause an\nOOM condition by filling large pipes with data that are never read. A\ntypical process filling 4000 pipes with 1 MB of data will use 4 GB of\nmemory. On small systems it may be tricky to set the pipe max size to\nprevent this from happening.\n\nThis patch makes it possible to enforce a per-user soft limit above\nwhich new pipes will be limited to a single page, effectively limiting\nthem to 4 kB each, as well as a hard limit above which no new pipes may\nbe created for this user. This has the effect of protecting the system\nagainst memory abuse without hurting other users, and still allowing\npipes to work correctly though with less data at once.\n\nThe limit are controlled by two new sysctls : pipe-user-pages-soft, and\npipe-user-pages-hard. Both may be disabled by setting them to zero. The\ndefault soft limit allows the default number of FDs per process (1024)\nto create pipes of the default size (64kB), thus reaching a limit of 64MB\nbefore starting to create only smaller pipes. With 256 processes limited\nto 1024 FDs each, this results in 1024*64kB + (256*1024 - 1024) * 4kB \u003d\n1084 MB of memory allocated for a user. The hard limit is disabled by\ndefault to avoid breaking existing applications that make intensive use\nof pipes (eg: for splicing).\n\nReported-by: socketpair@gmail.com\nReported-by: Tetsuo Handa \u003cpenguin-kernel@I-love.SAKURA.ne.jp\u003e\nMitigates: CVE-2013-4312 (Linux 2.0+)\nSuggested-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Willy Tarreau \u003cw@1wt.eu\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n\nConflicts:\n\tDocumentation/sysctl/fs.txt\n\tfs/pipe.c\n\tinclude/linux/sched.h\n\nChange-Id: Ic7c678af18129943e16715fdaa64a97a7f0854be\n"
    },
    {
      "commit": "7d1db3b4bf74cce126755dfb4475632b82fcb95c",
      "tree": "93c3d320898d4c6eb0900e629f985256761e5cfb",
      "parents": [
        "332797a68d7a269225c47de2bb4e581eea5bcb47"
      ],
      "author": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Mon May 23 11:34:02 2016 -0500"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Mon May 23 12:01:42 2016 -0500"
      },
      "message": "f2fs: Squashed update of f2fs-stable\n\nhttps://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs-stable.git\nBranch: linux-3.4.y\nUp to and including:\n  Revert \"f2fs: use cryptoapi crc32 functions\"\n  5b2523fc731f68cb48ca3d82f3ef2952a61ae5ba\n\nChange-Id: I062d186a7525d6a2ac431f811e5ca550c41ecf0f\n"
    },
    {
      "commit": "b0cce01be5f58ed399fdfc8e1b0fbcd827a35aef",
      "tree": "cf61f307b591ed355c8a8df39d43d9649fd0ee18",
      "parents": [
        "7646c507f1ad8bd14a3196f84b0eabb229dafb75"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Fri Sep 04 15:44:57 2015 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Apr 27 18:55:18 2016 +0800"
      },
      "message": "fs: create and use seq_show_option for escaping\n\ncommit a068acf2ee77693e0bf39d6e07139ba704f461c3 upstream.\n\nMany file systems that implement the show_options hook fail to correctly\nescape their output which could lead to unescaped characters (e.g.  new\nlines) leaking into /proc/mounts and /proc/[pid]/mountinfo files.  This\ncould lead to confusion, spoofed entries (resulting in things like\nsystemd issuing false d-bus \"mount\" notifications), and who knows what\nelse.  This looks like it would only be the root user stepping on\nthemselves, but it\u0027s possible weird things could happen in containers or\nin other situations with delegated mount privileges.\n\nHere\u0027s an example using overlay with setuid fusermount trusting the\ncontents of /proc/mounts (via the /etc/mtab symlink).  Imagine the use\nof \"sudo\" is something more sneaky:\n\n  $ BASE\u003d\"ovl\"\n  $ MNT\u003d\"$BASE/mnt\"\n  $ LOW\u003d\"$BASE/lower\"\n  $ UP\u003d\"$BASE/upper\"\n  $ WORK\u003d\"$BASE/work/ 0 0\n  none /proc fuse.pwn user_id\u003d1000\"\n  $ mkdir -p \"$LOW\" \"$UP\" \"$WORK\"\n  $ sudo mount -t overlay -o \"lowerdir\u003d$LOW,upperdir\u003d$UP,workdir\u003d$WORK\" none /mnt\n  $ cat /proc/mounts\n  none /root/ovl/mnt overlay rw,relatime,lowerdir\u003dovl/lower,upperdir\u003dovl/upper,workdir\u003dovl/work/ 0 0\n  none /proc fuse.pwn user_id\u003d1000 0 0\n  $ fusermount -u /proc\n  $ cat /proc/mounts\n  cat: /proc/mounts: No such file or directory\n\nThis fixes the problem by adding new seq_show_option and\nseq_show_option_n helpers, and updating the vulnerable show_option\nhandlers to use them as needed.  Some, like SELinux, need to be open\ncoded due to unusual existing escape mechanisms.\n\n[akpm@linux-foundation.org: add lost chunk, per Kees]\n[keescook@chromium.org: seq_show_option should be using const parameters]\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Jan Kara \u003cjack@suse.com\u003e\nAcked-by: Paul Moore \u003cpaul@paul-moore.com\u003e\nCc: J. R. Okajima \u003chooanon05g@gmail.com\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - one more place in ceph needs to be changed\n - drop changes to overlayfs\n - drop showing vers in cifs]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "dc7e2fb68c6c0c268bfb264846d54dc8bf273a56",
      "tree": "2caf7a09868edb701e481423734ade5070347231",
      "parents": [
        "c02b085fafa2f8a6a9c447c4ac472552fabf3140"
      ],
      "author": {
        "name": "Mark Rustad",
        "email": "mark.d.rustad@intel.com",
        "time": "Mon Jul 13 11:40:02 2015 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Wed Apr 27 18:55:13 2016 +0800"
      },
      "message": "PCI: Add dev_flags bit to access VPD through function 0\n\ncommit 932c435caba8a2ce473a91753bad0173269ef334 upstream.\n\nAdd a dev_flags bit, PCI_DEV_FLAGS_VPD_REF_F0, to access VPD through\nfunction 0 to provide VPD access on other functions.  This is for hardware\ndevices that provide copies of the same VPD capability registers in\nmultiple functions.  Because the kernel expects that each function has its\nown registers, both the locking and the state tracking are affected by VPD\naccesses to different functions.\n\nOn such devices for example, if a VPD write is performed on function 0,\n*any* later attempt to read VPD from any other function of that device will\nhang.  This has to do with how the kernel tracks the expected value of the\nF bit per function.\n\nConcurrent accesses to different functions of the same device can not only\nhang but also corrupt both read and write VPD data.\n\nWhen hangs occur, typically the error message:\n\n  vpd r/w failed.  This is likely a firmware bug on this device.\n\nwill be seen.\n\nNever set this bit on function 0 or there will be an infinite recursion.\n\nSigned-off-by: Mark Rustad \u003cmark.d.rustad@intel.com\u003e\nSigned-off-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nAcked-by: Alexander Duyck \u003calexander.h.duyck@redhat.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "abd7a6fdf5c96e661e4520ec1cf718b9378f1342",
      "tree": "196b1c60ccc0499fe92e3a531576e6c6c18198c0",
      "parents": [
        "86f24e99598f298b78759616dfa9e8fcca0d3688",
        "3389604d77540abf738b486d650c1745b2d663ca"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Mon Apr 11 13:09:16 2016 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Apr 11 13:39:17 2016 -0700"
      },
      "message": "Merge tag \u0027v3.4.111\u0027 into cm-13.0\n\nThis is the 3.4.111 stable release\n\nConflicts:\n    fs/file_table.c\n    include/net/sock.h\n\nChange-Id: Ic65a8a4450b508018d5c092b420ebb23df0daef6\n"
    },
    {
      "commit": "4954e931655bcdb49e252960a651b3fd46b558c5",
      "tree": "3c4b8a9565b992de885bf0c907338f096dcb7901",
      "parents": [
        "9935340b80c4d3316268ab03ae1d3a1b0228cacc"
      ],
      "author": {
        "name": "Vasily Kulikov",
        "email": "segoon@openwall.com",
        "time": "Wed Sep 09 15:36:00 2015 -0700"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Tue Mar 22 12:38:28 2016 -0500"
      },
      "message": "UPSTREAM: include/linux/poison.h: fix LIST_POISON{1,2} offset\n\n(cherry pick from commit 8a5e5e02fc83aaf67053ab53b359af08c6c49aaf)\n\nPoison pointer values should be small enough to find a room in\nnon-mmap\u0027able/hardly-mmap\u0027able space.  E.g.  on x86 \"poison pointer space\"\nis located starting from 0x0.  Given unprivileged users cannot mmap\nanything below mmap_min_addr, it should be safe to use poison pointers\nlower than mmap_min_addr.\n\nThe current poison pointer values of LIST_POISON{1,2} might be too big for\nmmap_min_addr values equal or less than 1 MB (common case, e.g.  Ubuntu\nuses only 0x10000).  There is little point to use such a big value given\nthe \"poison pointer space\" below 1 MB is not yet exhausted.  Changing it\nto a smaller value solves the problem for small mmap_min_addr setups.\n\nThe values are suggested by Solar Designer:\nhttp://www.openwall.com/lists/oss-security/2015/05/02/6\n\nSigned-off-by: Vasily Kulikov \u003csegoon@openwall.com\u003e\nCc: Solar Designer \u003csolar@openwall.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nBug: 26429468\nBug: 26186802\nBug: 26429519\nChange-Id: Ic51614f6cc98e416282f19af96b9d116eff7c08b\n"
    },
    {
      "commit": "f074c267d478acb66379d510c3132402f5384847",
      "tree": "2851f3ce8ec60c8999393f7739c2630eb817b4f1",
      "parents": [
        "8f452aa305e1b8bec21c8ce191c4af2b0cc14067"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Oct 04 11:06:42 2013 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Mar 21 09:17:55 2016 +0800"
      },
      "message": "get rid of s_files and files_lock\n\ncommit eee5cc2702929fd41cce28058dc6d6717f723f87 upstream.\n\nThe only thing we need it for is alt-sysrq-r (emergency remount r/o)\nand these days we can do just as well without going through the\nlist of files.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "3330d7bdad8141a862d7d9f19423453fbd92b76a",
      "tree": "5b192b64a5586b4bbfa5662d6634f7d9babdb4b6",
      "parents": [
        "460baab8b45e6f2a92a5e583d5e1bd9dd15b0f3a"
      ],
      "author": {
        "name": "Arne Fitzenreiter",
        "email": "arne_f@ipfire.org",
        "time": "Wed Jul 15 13:54:36 2015 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Mar 21 09:17:45 2016 +0800"
      },
      "message": "libata: add ATA_HORKAGE_NOTRIM\n\ncommit 71d126fd28de2d4d9b7b2088dbccd7ca62fad6e0 upstream.\n\nSome devices lose data on TRIM whether queued or not.  This patch adds\na horkage to disable TRIM.\n\ntj: Collapsed unnecessary if() nesting.\n\nSigned-off-by: Arne Fitzenreiter \u003carne_f@ipfire.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - drop changes to show_ata_dev_trim()]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "e47e85894f5db4049982296a46526a2aab78fd51",
      "tree": "dda302bb17a28711cda5b14ace930aa6eaffa826",
      "parents": [
        "9810a13f3e3fe2ba25fcd1fb6a8bd06e752998c2"
      ],
      "author": {
        "name": "Nikolay Borisov",
        "email": "kernel@kyup.com",
        "time": "Thu Jul 02 01:32:44 2015 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Mar 21 09:17:40 2016 +0800"
      },
      "message": "bufferhead: Add _gfp version for sb_getblk()\n\ncommit bd7ade3cd9b0850264306f5c2b79024a417b6396 upstream.\n\nsb_getblk() is used during ext4 (and possibly other FSes) writeback\npaths. Sometimes such path require allocating memory and guaranteeing\nthat such allocation won\u0027t block. Currently, however, there is no way\nto provide user flags for sb_getblk which could lead to deadlocks.\n\nThis patch implements a sb_getblk_gfp with the only difference it can\naccept user-provided GFP flags.\n\nSigned-off-by: Nikolay Borisov \u003ckernel@kyup.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "9810a13f3e3fe2ba25fcd1fb6a8bd06e752998c2",
      "tree": "5aed0c07e063d6fda3def6f35363666d8a5b520c",
      "parents": [
        "38464cd9b38b43ef757da18bc8b9badcd2b70dfb"
      ],
      "author": {
        "name": "Gioh Kim",
        "email": "gioh.kim@lge.com",
        "time": "Thu Sep 04 22:04:42 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Mar 21 09:17:39 2016 +0800"
      },
      "message": "fs/buffer.c: support buffer cache allocations with gfp modifiers\n\ncommit 3b5e6454aaf6b4439b19400d8365e2ec2d24e411 upstream.\n\nA buffer cache is allocated from movable area because it is referred\nfor a while and released soon.  But some filesystems are taking buffer\ncache for a long time and it can disturb page migration.\n\nNew APIs are introduced to allocate buffer cache with user specific\nflag.  *_gfp APIs are for user want to set page allocation flag for\npage cache allocation.  And *_unmovable APIs are for the user wants to\nallocate page cache from non-movable area.\n\nSigned-off-by: Gioh Kim \u003cgioh.kim@lge.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "ad31516703a7c1210078f690ea94a8efe4d01e91",
      "tree": "ab4494f3a60980909ac339ea58ec920c363dbf18",
      "parents": [
        "e8a835b9a482c3ab97c08847361900f7ed8ab1a6",
        "3edd6224c2a677bb59efe0b083a51fc2b3b5c64d"
      ],
      "author": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Mon Feb 22 00:00:29 2016 -0500"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Mon Feb 22 17:33:37 2016 -0500"
      },
      "message": "Merge tag v3.4.110 into cm-13.0\n\nConflicts:\n\tdrivers/bluetooth/btusb.c\n\tdrivers/cpufreq/cpufreq.c\n\tdrivers/md/dm-crypt.c\n\tdrivers/mmc/core/core.c\n\tfs/namespace.c\n\tinclude/linux/usb/quirks.h\n\tnet/bluetooth/l2cap_core.c\n\tnet/bluetooth/smp.c\n\tnet/netfilter/xt_socket.c\n\tsecurity/keys/gc.c\n\tsecurity/selinux/nlmsgtab.c\n\nChange-Id: I336fc28268bf70846a49e8f1db4899a10a4e5edb\n"
    },
    {
      "commit": "9f62ded449a12eee28b004208cc7ed4aa7e2a311",
      "tree": "3be2e5dab59557027e0dfcb574ffa84dccadf017",
      "parents": [
        "039b1209eee164ab26ea181c60e98e10175c5d89"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri May 11 10:56:56 2012 +0100"
      },
      "committer": {
        "name": "David Hays",
        "email": "dhays90@gmail.com",
        "time": "Wed Feb 17 10:56:16 2016 -0500"
      },
      "message": "KEYS: Perform RCU synchronisation on keys prior to key destruction\n\nMake the keys garbage collector invoke synchronize_rcu() prior to destroying\nkeys with a zero usage count.  This means that a key can be examined under the\nRCU read lock in the safe knowledge that it won\u0027t get deallocated until after\nthe lock is released - even if its usage count becomes zero whilst we\u0027re\nlooking at it.\n\nThis is useful in keyring search vs key link.  Consider a keyring containing a\nlink to a key.  That link can be replaced in-place in the keyring without\nrequiring an RCU copy-and-replace on the keyring contents without breaking a\nsearch underway on that keyring when the displaced key is released, provided\nthe key is actually destroyed only after the RCU read lock held by the search\nalgorithm is released.\n\nThis permits __key_link() to replace a key without having to reallocate the key\npayload.  A key gets replaced if a new key being linked into a keyring has the\nsame type and description.\n\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\nAcked-by: Jeff Layton \u003cjlayton@redhat.com\u003e\n\nConflicts:\n\tsecurity/keys/gc.c\n\nChange-Id: Ifd8549b5b906c638d63c358ce1f34acd81139207\n"
    },
    {
      "commit": "f192bd55edc1a5f639c0ac9828dba91f356fb41a",
      "tree": "c8a7d223438eb961f0de6b25f55e5d666cb1cc9a",
      "parents": [
        "ff028063a496f2a1748cdbe437dfcf5ba9970c75"
      ],
      "author": {
        "name": "Shiju Mathew",
        "email": "shijum@codeaurora.org",
        "time": "Fri Nov 13 15:51:34 2015 -0500"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Dec 22 10:16:52 2015 -0800"
      },
      "message": "msm: vidc: Add support for Picture Order Count Type\n\nThis patch adds POC type support for video core that\nenables low-latency encoding.\n\nChange-Id: I1fe8ea38c7ed8d203a3ef99febb4001165a856fe\nSigned-off-by: Shiju Mathew \u003cshijum@codeaurora.org\u003e\n"
    },
    {
      "commit": "5d1694ec31f22ab352bb41ecaee86f947605a3e5",
      "tree": "11ead058f4615f20d15996de989c17373eea6072",
      "parents": [
        "1c82b8b45cb936204baaee9aec0f6813d7b8544a"
      ],
      "author": {
        "name": "Sabrina Dubroca",
        "email": "sd@queasysnail.net",
        "time": "Thu Oct 15 12:25:00 2015 -0500"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Tue Nov 10 15:39:42 2015 -0600"
      },
      "message": "net: add length argument to skb_copy_and_csum_datagram_iovec\n\nWithout this length argument, we can read past the end of the iovec in\nmemcpy_toiovec because we have no way of knowing the total length of the\niovec\u0027s buffers.\n\nThis is needed for stable kernels where 89c22d8c3b27 (\"net: Fix skb\ncsum races when peeking\") has been backported but that don\u0027t have the\nioviter conversion, which is almost all the stable trees \u003c\u003d 3.18.\n\nThis also fixes a kernel crash for NFS servers when the client uses\n -onfsvers\u003d3,proto\u003dudp to mount the export.\n\nChange-Id: I1865e3d7a1faee42a5008a9ad58c4d3323ea4bab\nSigned-off-by: Sabrina Dubroca \u003csd@queasysnail.net\u003e\nReviewed-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\n"
    },
    {
      "commit": "e1ae22abf3a99e98cc109253400662b7f00403e1",
      "tree": "d1b9c4b07d7e518270a478f6f1e994e828dc2987",
      "parents": [
        "15488de7b72b6ab8254dda07053faa4be6b9ec66"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.com",
        "time": "Tue Jul 28 14:57:14 2015 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Oct 22 09:20:08 2015 +0800"
      },
      "message": "jbd2: avoid infinite loop when destroying aborted journal\n\ncommit 841df7df196237ea63233f0f9eaa41db53afd70f upstream.\n\nCommit 6f6a6fda2945 \"jbd2: fix ocfs2 corrupt when updating journal\nsuperblock fails\" changed jbd2_cleanup_journal_tail() to return EIO\nwhen the journal is aborted. That makes logic in\njbd2_log_do_checkpoint() bail out which is fine, except that\njbd2_journal_destroy() expects jbd2_log_do_checkpoint() to always make\na progress in cleaning the journal. Without it jbd2_journal_destroy()\njust loops in an infinite loop.\n\nFix jbd2_journal_destroy() to cleanup journal checkpoint lists of\njbd2_log_do_checkpoint() fails with error.\n\nReported-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nTested-by: Eryu Guan \u003cguaneryu@gmail.com\u003e\nFixes: 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a\nSigned-off-by: Jan Kara \u003cjack@suse.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "aef2b5342c1c17abbcd068d25ce5c48e6b43a5f8",
      "tree": "438da77f4c6bb8c0644f66e667be2093ef31afc5",
      "parents": [
        "c4b0cf56edc955b00510b36c890ca3fd78df7d67"
      ],
      "author": {
        "name": "Jeff Layton",
        "email": "jlayton@poochiereds.net",
        "time": "Tue Jun 09 19:43:56 2015 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Oct 22 09:20:05 2015 +0800"
      },
      "message": "nfs: increase size of EXCHANGE_ID name string buffer\n\ncommit 764ad8ba8cd4c6f836fca9378f8c5121aece0842 upstream.\n\nThe current buffer is much too small if you have a relatively long\nhostname. Bring it up to the size of the one that SETCLIENTID has.\n\nReported-by: Michael Skralivetsky \u003cmichael.skralivetsky@primarydata.com\u003e\nSigned-off-by: Jeff Layton \u003cjeff.layton@primarydata.com\u003e\nSigned-off-by: Trond Myklebust \u003ctrond.myklebust@primarydata.com\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "2fe77cbcdb483b9ce541c0978fb485f31213ee23",
      "tree": "ef04521ff912e7cd41eea5fc2541ee46d8cdf427",
      "parents": [
        "2cd65577af5bb06910596361166f8eb1b5bbc491"
      ],
      "author": {
        "name": "Joseph Qi",
        "email": "joseph.qi@huawei.com",
        "time": "Mon Jun 15 14:36:01 2015 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Thu Oct 22 09:20:04 2015 +0800"
      },
      "message": "jbd2: fix ocfs2 corrupt when updating journal superblock fails\n\ncommit 6f6a6fda294506dfe0e3e0a253bb2d2923f28f0a upstream.\n\nIf updating journal superblock fails after journal data has been\nflushed, the error is omitted and this will mislead the caller as a\nnormal case.  In ocfs2, the checkpoint will be treated successfully\nand the other node can get the lock to update. Since the sb_start is\nstill pointing to the old log block, it will rewrite the journal data\nduring journal recovery by the other node. Thus the new updates will\nbe overwritten and ocfs2 corrupts.  So in above case we have to return\nthe error, and ocfs2_commit_cache will take care of the error and\nprevent the other node to do update first.  And only after recovering\njournal it can do the new updates.\n\nThe issue discussion mail can be found at:\nhttps://oss.oracle.com/pipermail/ocfs2-devel/2015-June/010856.html\nhttp://comments.gmane.org/gmane.comp.file-systems.ext4/48841\n\n[ Fixed bug in patch which allowed a non-negative error return from\n  jbd2_cleanup_journal_tail() to leak out of jbd2_fjournal_flush(); this\n  was causing xfstests ext4/306 to fail. -- Ted ]\n\nReported-by: Yiwen Jiang \u003cjiangyiwen@huawei.com\u003e\nSigned-off-by: Joseph Qi \u003cjoseph.qi@huawei.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nTested-by: Yiwen Jiang \u003cjiangyiwen@huawei.com\u003e\nCc: Junxiao Bi \u003cjunxiao.bi@oracle.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "aa18f6fcc491d131e2b67135622e3c089bd5d0b4",
      "tree": "40086c66ca378f8d1334fa8f2ad84243eafedc31",
      "parents": [
        "6ff9603dec2399dbe2fe9e5fe87c11fda054c668"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Jun 15 10:21:48 2011 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 16:13:18 2015 -0700"
      },
      "message": "proc: Usable inode numbers for the namespace file descriptors.\n\nAssign a unique proc inode to each namespace, and use that\ninode number to ensure we only allocate at most one proc\ninode for every namespace in proc.\n\nA single proc inode per namespace allows userspace to test\nto see if two processes are in the same namespace.\n\nThis has been a long requested feature and only blocked because\na naive implementation would put the id in a global space and\nwould ultimately require having a namespace for the names of\nnamespaces, making migration and certain virtualization tricks\nimpossible.\n\nWe still don\u0027t have per superblock inode numbers for proc, which\nappears necessary for application unaware checkpoint/restart and\nmigrations (if the application is using namespace file descriptors)\nbut that is now allowd by the design if it becomes important.\n\nI have preallocated the ipc and uts initial proc inode numbers so\ntheir structures can be statically initialized.\n\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n(cherry picked from commit 98f842e675f96ffac96e6c50315790912b2812be)\n"
    },
    {
      "commit": "f3490a8f47a85c396e80397d1bd2df11c254b3d4",
      "tree": "6e47939aa3cc9eacbe97056478066ca9e347b1f1",
      "parents": [
        "0793d2538c2e32a60f4c0d4a796e8eca7dba9274"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Jun 17 13:33:20 2011 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 16:13:17 2015 -0700"
      },
      "message": "proc: Generalize proc inode allocation\n\nGeneralize the proc inode allocation so that it can be\nused without having to having to create a proc_dir_entry.\n\nThis will allow namespace file descriptors to remain light\nweight entitities but still have the same inode number\nwhen the backing namespace is the same.\n\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@ubuntu.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n(cherry picked from commit 33d6dce607573b5fd7a43168e0d91221b3ca532b)\n"
    },
    {
      "commit": "0793d2538c2e32a60f4c0d4a796e8eca7dba9274",
      "tree": "229336e395de77c4d7d2013b0595a9e1e2269d2b",
      "parents": [
        "fbbe2736fa1f0af8d343f3ecef1181b6d50de9fe"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 26 21:42:03 2012 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 16:13:17 2015 -0700"
      },
      "message": "vfs: Allow unprivileged manipulation of the mount namespace.\n\n- Add a filesystem flag to mark filesystems that are safe to mount as\n  an unprivileged user.\n\n- Add a filesystem flag to mark filesystems that don\u0027t need MNT_NODEV\n  when mounted by an unprivileged user.\n\n- Relax the permission checks to allow unprivileged users that have\n  CAP_SYS_ADMIN permissions in the user namespace referred to by the\n  current mount namespace to be allowed to mount, unmount, and move\n  filesystems.\n\nAcked-by: \"Serge E. Hallyn\" \u003cserge@hallyn.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n(cherry picked from commit 0c55cfc4166d9a0f38de779bd4d75a90afbe7734)\n"
    },
    {
      "commit": "bc1d98d9537f9cd5c6ff72bbec99c2a475219591",
      "tree": "e32cea9de3180021e271e3decc20adfd1c413996",
      "parents": [
        "c409ef81f8fb8af14a6d58bd2a639fcb0e5ca103"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 26 21:08:32 2012 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 16:13:16 2015 -0700"
      },
      "message": "vfs: Add a user namespace reference from struct mnt_namespace\n\nThis will allow for support for unprivileged mounts in a new user namespace.\n\nAcked-by: \"Serge E. Hallyn\" \u003cserge@hallyn.com\u003e\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n(cherry picked from commit 771b1371686e0a63e938ada28de020b9a0040f55)\n"
    },
    {
      "commit": "c409ef81f8fb8af14a6d58bd2a639fcb0e5ca103",
      "tree": "9c3a869bd6e6ef17d29fa99f6454426e23b923d9",
      "parents": [
        "f3565936d74a0f04cff7a7f960ba3cd0e2beca76"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Mar 07 18:49:36 2010 -0800"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 16:13:16 2015 -0700"
      },
      "message": "vfs: Add setns support for the mount namespace\n\nsetns support for the mount namespace is a little tricky as an\narbitrary decision must be made about what to set fs-\u003eroot and\nfs-\u003epwd to, as there is no expectation of a relationship between\nthe two mount namespaces.  Therefore I arbitrarily find the root\nmount point, and follow every mount on top of it to find the top\nof the mount stack.  Then I set fs-\u003eroot and fs-\u003epwd to that\nlocation.  The topmost root of the mount stack seems like a\nreasonable place to be.\n\nBind mount support for the mount namespace inodes has the\npossibility of creating circular dependencies between mount\nnamespaces.  Circular dependencies can result in loops that\nprevent mount namespaces from every being freed.  I avoid\ncreating those circular dependencies by adding a sequence number\nto the mount namespace and require all bind mounts be of a\nyounger mount namespace into an older mount namespace.\n\nAdd a helper function proc_ns_inode so it is possible to\ndetect when we are attempting to bind mound a namespace inode.\n\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nSigned-off-by: Eric W. Biederman \u003cebiederm@xmission.com\u003e\n(cherry picked from commit 8823c079ba7136dc1948d6f6dcb5f8022bde438e)\n"
    },
    {
      "commit": "f3565936d74a0f04cff7a7f960ba3cd0e2beca76",
      "tree": "0e9d36de5c89a12fdcf689efbbd295d0eafacaee",
      "parents": [
        "1b0a36cca2297351d5e889397b35df0dea590d28"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 11 11:42:01 2012 -0400"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 16:13:15 2015 -0700"
      },
      "message": "consitify do_mount() arguments\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n(cherry picked from commit 808d4e3cfdcc52b19276175464f6dbca4df13b09)\n"
    },
    {
      "commit": "fe103a1d3950455b4681e883ecec60967b6daa27",
      "tree": "17cbe539a73f788eeeca46081f00190bdad4c8ce",
      "parents": [
        "9f0d2df70d2e209f7149edc804180ae7a5cf4bbc"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 26 09:59:21 2012 -0400"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 16:13:14 2015 -0700"
      },
      "message": "fs: introduce inode operation -\u003eupdate_time\n\nBtrfs has to make sure we have space to allocate new blocks in order to modify\nthe inode, so updating time can fail.  We\u0027ve gotten around this by having our\nown file_update_time but this is kind of a pain, and Christoph has indicated he\nwould like to make xfs do something different with atime updates.  So introduce\n-\u003eupdate_time, where we will deal with i_version an a/m/c time updates and\nindicate which changes need to be made.  The normal version just does what it\nhas always done, updates the time and marks the inode dirty, and then\nfilesystems can choose to do something different.\n\nI\u0027ve gone through all of the users of file_update_time and made them check for\nerrors with the exception of the fault code since it\u0027s complicated and I wasn\u0027t\nquite sure what to do there, also Jan is going to be pushing the file time\nupdates into page_mkwrite for those who have it so that should satisfy btrfs and\nmake it not a big deal to check the file_update_time() return code in the\ngeneric fault path. Thanks,\n\nSigned-off-by: Josef Bacik \u003cjosef@redhat.com\u003e\n(cherry picked from commit c3b2da314834499f34cba94f7053e55f6d6f92d8)\n"
    },
    {
      "commit": "0a6c3854fee6372ca2ea2f83973db0103f8e7b26",
      "tree": "c0b6cf1930d17035c70e63fa56d5e082ff81b3d5",
      "parents": [
        "33f50252ce953a70fa3129503f4d39331849a677"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue May 08 13:32:24 2012 +0930"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 15:53:55 2015 -0700"
      },
      "message": "brlocks/lglocks: turn into functions\n\nlglocks and brlocks are currently generated with some complicated macros\nin lglock.h.  But there\u0027s no reason to not just use common utility\nfunctions and put all the data into a common data structure.\n\nSince there are at least two users it makes sense to share this code in a\nlibrary.  This is also easier maintainable than a macro forest.\n\nThis will also make it later possible to dynamically allocate lglocks and\nalso use them in modules (this would both still need some additional, but\nnow straightforward, code)\n\n[akpm@linux-foundation.org: checkpatch fixes]\nSigned-off-by: Andi Kleen \u003cak@linux.intel.com\u003e\nCc: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n\n(cherry picked from commit eea62f831b8030b0eeea8314eed73b6132d1de26)\n\nChange-Id: I65a14e405b6a4188b8dd301d35904e9fc8fda72f\n"
    },
    {
      "commit": "33f50252ce953a70fa3129503f4d39331849a677",
      "tree": "fe574a984ff0927c1410b3efd3d5c2736bf8e0e7",
      "parents": [
        "c12ad5a133635df7d0130709e09770c4e3e4628e"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue May 08 13:29:45 2012 +0930"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 15:53:54 2015 -0700"
      },
      "message": "lglock: remove online variants of lock\n\nOptimizing the slow paths adds a lot of complexity.  If you need to\ngrab every lock often, you have other problems.\n\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nAcked-by: Nick Piggin \u003cnpiggin@kernel.dk\u003e\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n(cherry picked from commit 9dd6fa03ab31bb57cee4623a689d058d222fbe68)\n"
    },
    {
      "commit": "69f240403baf245110eba9f1403835869f6a27a4",
      "tree": "81a3ffbff2b7453660deae421dfc438d8036344b",
      "parents": [
        "931c39db9aeac51f4572dd8096fc2a2828e64b43"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Tue Oct 30 14:45:57 2012 -0400"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 15:32:45 2015 -0700"
      },
      "message": "hashtable: introduce a small and naive hashtable\n\nThis hashtable implementation is using hlist buckets to provide a simple\nhashtable to prevent it from getting reimplemented all over the kernel.\n\nChange-Id: Ie91c0b7a0537b8863d6df1e2771f54d4b731c496\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\n[ Merging this now, so that subsystems can start applying Sasha\u0027s\n  patches that use this   - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d5c5dbff34a1b8cb1204bff4e80a23cdce900461",
      "tree": "2933bacdb57cd71b8732a43da0a3d2c9b99921e3",
      "parents": [
        "b26b27c9b907e144555719fb8bc0d2cb2728c59d"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Sat Apr 04 16:15:54 2015 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sat Oct 17 14:58:09 2015 -0700"
      },
      "message": "security: lsm_audit: add ioctl specific auditing\n\nAdd information about ioctl calls to the LSM audit data. Log the\nfile path and command number.\n\nBug: 20350607\nBug: 18087110\nChange-Id: Idbbd106db6226683cb30022d9e8f6f3b8fab7f84\nSigned-off-by: Jeff Vander Stoep \u003cjeffv@google.com\u003e\n"
    },
    {
      "commit": "017fd99beb3ccdb301009fa8f905f574e3e3ce29",
      "tree": "aedf3c10df99abe1e241568a011f5c310b4816a1",
      "parents": [
        "ba4e97b49e74a7b1c6283e3d4d6dbe0c72b991af"
      ],
      "author": {
        "name": "Gabriele Mazzotta",
        "email": "gabriele.mzt@gmail.com",
        "time": "Sat Apr 25 19:52:37 2015 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Sep 18 09:20:37 2015 +0800"
      },
      "message": "libata: Ignore spurious PHY event on LPM policy change\n\ncommit 09c5b4803a80a5451d950d6a539d2eb311dc0fb1 upstream.\n\nWhen the LPM policy is set to ATA_LPM_MAX_POWER, the device might\ngenerate a spurious PHY event that cuases errors on the link.\nIgnore this event if it occured within 10s after the policy change.\n\nThe timeout was chosen observing that on a Dell XPS13 9333 these\nspurious events can occur up to roughly 6s after the policy change.\n\nLink: http://lkml.kernel.org/g/3352987.ugV1Ipy7Z5@xps13\nSigned-off-by: Gabriele Mazzotta \u003cgabriele.mzt@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "ba4e97b49e74a7b1c6283e3d4d6dbe0c72b991af",
      "tree": "2dc648fa8cb42d140e81c72f9bdb06a3a4bdb9b1",
      "parents": [
        "d939e53d62fd55fd83d243c3831ac44cd36a743d"
      ],
      "author": {
        "name": "Gabriele Mazzotta",
        "email": "gabriele.mzt@gmail.com",
        "time": "Sat Apr 25 19:52:36 2015 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Sep 18 09:20:37 2015 +0800"
      },
      "message": "libata: Add helper to determine when PHY events should be ignored\n\ncommit 8393b811f38acdf7fd8da2028708edad3e68ce1f upstream.\n\nThis is a preparation commit that will allow to add other criteria\naccording to which PHY events should be dropped.\n\nSigned-off-by: Gabriele Mazzotta \u003cgabriele.mzt@gmail.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "a885169f03f6b84653b8418d2739397f0286d360",
      "tree": "a1803a328b2e17c8ab0b4ec74c03dc947cd26c96",
      "parents": [
        "350b59e331e49c018e55f9b4ab7a9638f3ca2707"
      ],
      "author": {
        "name": "Ryusuke Konishi",
        "email": "konishi.ryusuke@lab.ntt.co.jp",
        "time": "Tue May 05 16:24:00 2015 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Sep 18 09:20:36 2015 +0800"
      },
      "message": "nilfs2: fix sanity check of btree level in nilfs_btree_root_broken()\n\ncommit d8fd150fe3935e1692bf57c66691e17409ebb9c1 upstream.\n\nThe range check for b-tree level parameter in nilfs_btree_root_broken()\nis wrong; it accepts the case of \"level \u003d\u003d NILFS_BTREE_LEVEL_MAX\" even\nthough the level is limited to values in the range of 0 to\n(NILFS_BTREE_LEVEL_MAX - 1).\n\nSince the level parameter is read from storage device and used to index\nnilfs_btree_path array whose element count is NILFS_BTREE_LEVEL_MAX, it\ncan cause memory overrun during btree operations if the boundary value\nis set to the level parameter on device.\n\nThis fixes the broken sanity check and adds a comment to clarify that\nthe upper bound NILFS_BTREE_LEVEL_MAX is exclusive.\n\nSigned-off-by: Ryusuke Konishi \u003ckonishi.ryusuke@lab.ntt.co.jp\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": "ae3668ffeb437e04d7f085ad8f97ce383852ab7c",
      "tree": "72e138ab0ae59fdcdc4cdd67df38bb043a57456a",
      "parents": [
        "90b3fc7daf325f7d5b10301562ac2708839cacc7"
      ],
      "author": {
        "name": "Alexander Duyck",
        "email": "alexander.h.duyck@redhat.com",
        "time": "Tue Mar 31 14:19:10 2015 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Sep 18 09:20:27 2015 +0800"
      },
      "message": "jhash: Update jhash_[321]words functions to use correct initval\n\ncommit 2e7056c433216f406b90a003aa0ba42e19d3bdcf upstream.\n\nLooking over the implementation for jhash2 and comparing it to jhash_3words\nI realized that the two hashes were in fact very different.  Doing a bit of\ndigging led me to \"The new jhash implementation\" in which lookup2 was\nsupposed to have been replaced with lookup3.\n\nIn reviewing the patch I noticed that jhash2 had originally initialized a\nand b to JHASH_GOLDENRATIO and c to initval, but after the patch a, b, and\nc were initialized to initval + (length \u003c\u003c 2) + JHASH_INITVAL.  However the\nchanges in jhash_3words simply replaced the initialization of a and b with\nJHASH_INITVAL.\n\nThis change corrects what I believe was an oversight so that a, b, and c in\njhash_3words all have the same value added consisting of initval + (length\n\u003c\u003c 2) + JHASH_INITVAL so that jhash2 and jhash_3words will now produce the\nsame hash result given the same inputs.\n\nFixes: 60d509c823cca (\"The new jhash implementation\")\nSigned-off-by: Alexander Duyck \u003calexander.h.duyck@redhat.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "940f14ac4f4ccc28bdcb1e38cbec29d9a2bb25cc",
      "tree": "bae931f47f5267babf6eb182345ebe7c4e748efe",
      "parents": [
        "484f4c629d37d76fb16e39b962b584c72c5e64e3"
      ],
      "author": {
        "name": "Arianna Avanzini",
        "email": "avanzini.arianna@gmail.com",
        "time": "Mon Jan 27 23:50:08 2014 +0100"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Sep 15 17:57:40 2015 -0700"
      },
      "message": "block: cgroups, kconfig, build bits for BFQ-v7r8-3.4\n\nUpdate Kconfig.iosched and do the related Makefile changes to include\nkernel configuration options for BFQ. Also add the bfqio controller\nto the cgroups subsystem.\n\nChange-Id: I233ba33f79d6885d5e8598cf4b451b6044a16aa0\nSigned-off-by: Paolo Valente \u003cpaolo.valente@unimore.it\u003e\nSigned-off-by: Arianna Avanzini \u003cavanzini.arianna@gmail.com\u003e\n"
    },
    {
      "commit": "a346a29d06777dfae7df4f3d5e9909b36a2ea253",
      "tree": "5fd7bb49ad57e76feebb6d4f0af70facf3906901",
      "parents": [
        "0783b1d64cde81b08db5a82c9f3384d118dc597e"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Aug 24 15:58:21 2015 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Aug 25 00:08:57 2015 -0700"
      },
      "message": "input: ewtzmu2: Lock I2C accesses\n\n* Attempting I2C transactions while the device has been powered down\n  results in a device crash.\n* Force all functions which use the I2C bus to check device power status\n  before execution.\n* Read lock all I2C accessing functions.\n* Write lock all device power up/down function.\n\nChange-Id: I5c22b550ab03f39d2f1f3ed3901a680dbf484e30\n"
    },
    {
      "commit": "0783b1d64cde81b08db5a82c9f3384d118dc597e",
      "tree": "5fe3c185e589f9e32b80c392cf944e8de3198cdc",
      "parents": [
        "bdd68452f0b6fa383b9baee3e48b0c7a2375d044"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Aug 24 13:58:34 2015 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Aug 24 20:07:29 2015 -0700"
      },
      "message": "Revert \"input: ewtzmu2: Fix gyro off status checks\"\n\nThis reverts commit e75b9c0357c3c308e908337f932ae47ce855563d.\n\nChange-Id: I656e83f047cbd1df6458c465a788ce47d5cd1aa0\n"
    },
    {
      "commit": "9550bd2ebb5f204de5d6cbdc9ec8366c6d56f577",
      "tree": "c0dfc7f9df3e772a07639110689b03d7dc6b7e52",
      "parents": [
        "0c44e40b89e5c3e015195b4109a45d1779cd01d2"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Oct 28 18:11:14 2014 +0900"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Thu Aug 06 19:23:38 2015 -0500"
      },
      "message": "net: ipv6: Add a sysctl to make optimistic addresses useful candidates\n\nAdd a sysctl that causes an interface\u0027s optimistic addresses\nto be considered equivalent to other non-deprecated addresses\nfor source address selection purposes.  Preferred addresses\nwill still take precedence over optimistic addresses, subject\nto other ranking in the source address selection algorithm.\n\nThis is useful where different interfaces are connected to\ndifferent networks from different ISPs (e.g., a cell network\nand a home wifi network).\n\nThe current behaviour complies with RFC 3484/6724, and it\nmakes sense if the host has only one interface, or has\nmultiple interfaces on the same network (same or cooperating\nadministrative domain(s), but not in the multiple distinct\nnetworks case.\n\nFor example, if a mobile device has an IPv6 address on an LTE\nnetwork and then connects to IPv6-enabled wifi, while the wifi\nIPv6 address is undergoing DAD, IPv6 connections will try use\nthe wifi default route with the LTE IPv6 address, and will get\nstuck until they time out.\n\nAlso, because optimistic nodes can receive frames, issue\nan RTM_NEWADDR as soon as DAD starts (with the IFA_F_OPTIMSTIC\nflag appropriately set).  A second RTM_NEWADDR is sent if DAD\ncompletes (the address flags have changed), otherwise an\nRTM_DELADDR is sent.\n\nAlso: add an entry in ip-sysctl.txt for optimistic_dad.\n\n[backport of net-next 7fd2561e4ebdd070ebba6d3326c4c5b13942323f]\n\nSigned-off-by: Erik Kline \u003cek@google.com\u003e\nAcked-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nAcked-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nBug: 17769720\nBug: 18180674\nChange-Id: I440a9b8c788db6767d191bbebfd2dff481aa9e0d\n"
    },
    {
      "commit": "0c44e40b89e5c3e015195b4109a45d1779cd01d2",
      "tree": "a605ff05a43db104894660c36d7dcb305a4d7c44",
      "parents": [
        "cf869839fec707290a57f08b71302512df024b33"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Wed Feb 22 10:59:31 2012 -0600"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Thu Aug 06 19:23:37 2015 -0500"
      },
      "message": "net/compat.c,linux/filter.h: share compat_sock_fprog\n\nAny other users of bpf_*_filter that take a struct sock_fprog from\nuserspace will need to be able to also accept a compat_sock_fprog\nif the arch supports compat calls.  This change allows the existing\ncompat_sock_fprog be shared.\n\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: tasered by the apostrophe police\nv14: rebase/nochanges\nv13: rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\nv12: rebase on to linux-next\nv11: introduction\n"
    },
    {
      "commit": "cf869839fec707290a57f08b71302512df024b33",
      "tree": "d8355cbe23ef19078179a9ee11d0bf619203febd",
      "parents": [
        "5f08bb6e54df5c0567a566fc5c888deb970d3116"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Fri Mar 09 10:43:50 2012 -0600"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Thu Aug 06 19:22:41 2015 -0500"
      },
      "message": "sk_run_filter: add BPF_S_ANC_SECCOMP_LD_W\n\nIntroduces a new BPF ancillary instruction that all LD calls will be\nmapped through when skb_run_filter() is being used for seccomp BPF.  The\nrewriting will be done using a secondary chk_filter function that is run\nafter skb_chk_filter.\n\nThe code change is guarded by CONFIG_SECCOMP_FILTER which is added,\nalong with the seccomp_bpf_load() function later in this series.\n\nThis is based on http://lkml.org/lkml/2012/3/2/141\n\nSuggested-by: Indan Zupancic \u003cindan@nul.nu\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: rebase\n...\nv15: include seccomp.h explicitly for when seccomp_bpf_load exists.\nv14: First cut using a single additional instruction\n... v13: made bpf functions generic.\n"
    },
    {
      "commit": "a4a17895fb3fefe8622e0a4cdffc555cfd7e53f4",
      "tree": "9b57539fbdfa733a82f7941327564961f41d42e2",
      "parents": [
        "38468bb1a2eaf0d5a18b12291b17f4ceff3e67a2",
        "4a3ed04b969fb3e062ab11a4ce0856744be1203b"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jul 27 12:14:22 2015 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Jul 27 12:14:22 2015 -0700"
      },
      "message": "Merge remote-tracking branch \u0027caf/LA.AF.1.1_rb1.18\u0027 into HEAD\n"
    },
    {
      "commit": "bded67cc51db4e29af84f9ec1d671a86b0b6763b",
      "tree": "886108ad45fd36ac490e2e74c10d853b39e91566",
      "parents": [
        "edf76233db20b417ad0cb88cc9f4d4001fef1bd3"
      ],
      "author": {
        "name": "Yinghai Lu",
        "email": "yinghai@kernel.org",
        "time": "Mon Dec 09 22:54:40 2013 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:34 2015 +0800"
      },
      "message": "PCI: Convert pcibios_resource_to_bus() to take a pci_bus, not a pci_dev\n\ncommit fc2798502f860b18f3c7121e4dc659d3d9d28d74 upstream.\n\nThese interfaces:\n\n  pcibios_resource_to_bus(struct pci_dev *dev, *bus_region, *resource)\n  pcibios_bus_to_resource(struct pci_dev *dev, *resource, *bus_region)\n\ntook a pci_dev, but they really depend only on the pci_bus.  And we want to\nuse them in resource allocation paths where we have the bus but not a\ndevice, so this patch converts them to take the pci_bus instead of the\npci_dev:\n\n  pcibios_resource_to_bus(struct pci_bus *bus, *bus_region, *resource)\n  pcibios_bus_to_resource(struct pci_bus *bus, *resource, *bus_region)\n\nIn fact, with standard PCI-PCI bridges, they only depend on the host\nbridge, because that\u0027s the only place address translation occurs, but\nwe aren\u0027t going that far yet.\n\n[bhelgaas: changelog]\nSigned-off-by: Yinghai Lu \u003cyinghai@kernel.org\u003e\nSigned-off-by: Bjorn Helgaas \u003cbhelgaas@google.com\u003e\nCc: Dirk Behme \u003cdirk.behme@gmail.com\u003e\n[lizf: Backported to 3.4:\n - make changes to pci_host_bridge() instead of find_pci_root_bus()\n - adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "419d4c989459c5fa2d3fa42c061c097e53dcaf19",
      "tree": "034a48251dfb4a4de07ab3e6e1e3b4bdaab67ce6",
      "parents": [
        "9796d87a38b95a9550f6a22d933f7354ab966748"
      ],
      "author": {
        "name": "Bart Van Assche",
        "email": "bart.vanassche@sandisk.com",
        "time": "Wed Mar 04 10:31:47 2015 +0100"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:31 2015 +0800"
      },
      "message": "Defer processing of REQ_PREEMPT requests for blocked devices\n\ncommit bba0bdd7ad4713d82338bcd9b72d57e9335a664b upstream.\n\nSCSI transport drivers and SCSI LLDs block a SCSI device if the\ntransport layer is not operational. This means that in this state\nno requests should be processed, even if the REQ_PREEMPT flag has\nbeen set. This patch avoids that a rescan shortly after a cable\npull sporadically triggers the following kernel oops:\n\nBUG: unable to handle kernel paging request at ffffc9001a6bc084\nIP: [\u003cffffffffa04e08f2\u003e] mlx4_ib_post_send+0xd2/0xb30 [mlx4_ib]\nProcess rescan-scsi-bus (pid: 9241, threadinfo ffff88053484a000, task ffff880534aae100)\nCall Trace:\n [\u003cffffffffa0718135\u003e] srp_post_send+0x65/0x70 [ib_srp]\n [\u003cffffffffa071b9df\u003e] srp_queuecommand+0x1cf/0x3e0 [ib_srp]\n [\u003cffffffffa0001ff1\u003e] scsi_dispatch_cmd+0x101/0x280 [scsi_mod]\n [\u003cffffffffa0009ad1\u003e] scsi_request_fn+0x411/0x4d0 [scsi_mod]\n [\u003cffffffff81223b37\u003e] __blk_run_queue+0x27/0x30\n [\u003cffffffff8122a8d2\u003e] blk_execute_rq_nowait+0x82/0x110\n [\u003cffffffff8122a9c2\u003e] blk_execute_rq+0x62/0xf0\n [\u003cffffffffa000b0e8\u003e] scsi_execute+0xe8/0x190 [scsi_mod]\n [\u003cffffffffa000b2f3\u003e] scsi_execute_req+0xa3/0x130 [scsi_mod]\n [\u003cffffffffa000c1aa\u003e] scsi_probe_lun+0x17a/0x450 [scsi_mod]\n [\u003cffffffffa000ce86\u003e] scsi_probe_and_add_lun+0x156/0x480 [scsi_mod]\n [\u003cffffffffa000dc2f\u003e] __scsi_scan_target+0xdf/0x1f0 [scsi_mod]\n [\u003cffffffffa000dfa3\u003e] scsi_scan_host_selected+0x183/0x1c0 [scsi_mod]\n [\u003cffffffffa000edfb\u003e] scsi_scan+0xdb/0xe0 [scsi_mod]\n [\u003cffffffffa000ee13\u003e] store_scan+0x13/0x20 [scsi_mod]\n [\u003cffffffff811c8d9b\u003e] sysfs_write_file+0xcb/0x160\n [\u003cffffffff811589de\u003e] vfs_write+0xce/0x140\n [\u003cffffffff81158b53\u003e] sys_write+0x53/0xa0\n [\u003cffffffff81464592\u003e] system_call_fastpath+0x16/0x1b\n [\u003c00007f611c9d9300\u003e] 0x7f611c9d92ff\n\nReported-by: Max Gurtuvoy \u003cmaxg@mellanox.com\u003e\nSigned-off-by: Bart Van Assche \u003cbart.vanassche@sandisk.com\u003e\nReviewed-by: Mike Christie \u003cmichaelc@cs.wisc.edu\u003e\nSigned-off-by: James Bottomley \u003cJBottomley@Odin.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "c93fc8932e95ace45c35fe7a7220acd866bc5ae0",
      "tree": "ae9624c295ba6204b663a2b4875e13a8b5be8518",
      "parents": [
        "26ea9e4d43a01bb161276648b6e306322ed1da1c"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Tue Feb 10 14:08:32 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:14 2015 +0800"
      },
      "message": "fsnotify: fix handling of renames in audit\n\ncommit 6ee8e25fc3e916193bce4ebb43d5439e1e2144ab upstream.\n\nCommit e9fd702a58c4 (\"audit: convert audit watches to use fsnotify\ninstead of inotify\") broke handling of renames in audit.  Audit code\nwants to update inode number of an inode corresponding to watched name\nin a directory.  When something gets renamed into a directory to a\nwatched name, inotify previously passed moved inode to audit code\nhowever new fsnotify code passes directory inode where the change\nhappened.  That confuses audit and it starts watching parent directory\ninstead of a file in a directory.\n\nThis can be observed for example by doing:\n\n  cd /tmp\n  touch foo bar\n  auditctl -w /tmp/foo\n  touch foo\n  mv bar foo\n  touch foo\n\nIn audit log we see events like:\n\n  type\u003dCONFIG_CHANGE msg\u003daudit(1423563584.155:90): auid\u003d1000 ses\u003d2 op\u003d\"updated rules\" path\u003d\"/tmp/foo\" key\u003d(null) list\u003d4 res\u003d1\n  ...\n  type\u003dPATH msg\u003daudit(1423563584.155:91): item\u003d2 name\u003d\"bar\" inode\u003d1046884 dev\u003d08:0 2 mode\u003d0100644 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 nametype\u003dDELETE\n  type\u003dPATH msg\u003daudit(1423563584.155:91): item\u003d3 name\u003d\"foo\" inode\u003d1046842 dev\u003d08:0 2 mode\u003d0100644 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 nametype\u003dDELETE\n  type\u003dPATH msg\u003daudit(1423563584.155:91): item\u003d4 name\u003d\"foo\" inode\u003d1046884 dev\u003d08:0 2 mode\u003d0100644 ouid\u003d0 ogid\u003d0 rdev\u003d00:00 nametype\u003dCREATE\n  ...\n\nand that\u0027s it - we see event for the first touch after creating the\naudit rule, we see events for rename but we don\u0027t see any event for the\nlast touch.  However we start seeing events for unrelated stuff\nhappening in /tmp.\n\nFix the problem by passing moved inode as data in the FS_MOVED_FROM and\nFS_MOVED_TO events instead of the directory where the change happens.\nThis doesn\u0027t introduce any new problems because noone besides\naudit_watch.c cares about the passed value:\n\n  fs/notify/fanotify/fanotify.c cares only about FSNOTIFY_EVENT_PATH events.\n  fs/notify/dnotify/dnotify.c doesn\u0027t care about passed \u0027data\u0027 value at all.\n  fs/notify/inotify/inotify_fsnotify.c uses \u0027data\u0027 only for FSNOTIFY_EVENT_PATH.\n  kernel/audit_tree.c doesn\u0027t care about passed \u0027data\u0027 at all.\n  kernel/audit_watch.c expects moved inode as \u0027data\u0027.\n\nFixes: e9fd702a58c49db (\"audit: convert audit watches to use fsnotify instead of inotify\")\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Paul Moore \u003cpaul@paul-moore.com\u003e\nCc: Eric Paris \u003ceparis@redhat.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: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "019b694fbccafebc550a7b1fcb3bb13e9b32ae03",
      "tree": "e32872c68d09000e77cebdd67dd7f27a2fd5308b",
      "parents": [
        "a54c78b91ad0058aef14fd4804e5d6f8e253cf2b"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Thu Jan 29 15:05:04 2015 -0500"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:13 2015 +0800"
      },
      "message": "USB: add flag for HCDs that can\u0027t receive wakeup requests (isp1760-hcd)\n\ncommit 074f9dd55f9cab1b82690ed7e44bcf38b9616ce0 upstream.\n\nCurrently the USB stack assumes that all host controller drivers are\ncapable of receiving wakeup requests from downstream devices.\nHowever, this isn\u0027t true for the isp1760-hcd driver, which means that\nit isn\u0027t safe to do a runtime suspend of any device attached to a\nroot-hub port if the device requires wakeup.\n\nThis patch adds a \"cant_recv_wakeups\" flag to the usb_hcd structure\nand sets the flag in isp1760-hcd.  The core is modified to prevent a\ndirect child of the root hub from being put into runtime suspend with\nwakeup enabled if the flag is set.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nTested-by: Nicolas Pitre \u003cnico@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgreg@kroah.com\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "aef29c3576fb89843193a2a026719a0fdb4145ab",
      "tree": "88ae159b31337a680d36e89041e5cbebe09fcd48",
      "parents": [
        "3274eed40faa3c0af04a78c2372ec4bd172bbe7a"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Dec 05 15:13:54 2014 +0100"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Fri Jun 19 11:40:11 2015 +0800"
      },
      "message": "usb: core: buffer: smallest buffer should start at ARCH_DMA_MINALIGN\n\ncommit 5efd2ea8c9f4f12916ffc8ba636792ce052f6911 upstream.\n\nthe following error pops up during \"testusb -a -t 10\"\n| musb-hdrc musb-hdrc.1.auto: dma_pool_free buffer-128,\tf134e000/be842000 (bad dma)\nhcd_buffer_create() creates a few buffers, the smallest has 32 bytes of\nsize. ARCH_KMALLOC_MINALIGN is set to 64 bytes. This combo results in\nhcd_buffer_alloc() returning memory which is 32 bytes aligned and it\nmight by identified by buffer_offset() as another buffer. This means the\nbuffer which is on a 32 byte boundary will not get freed, instead it\ntries to free another buffer with the error message.\n\nThis patch fixes the issue by creating the smallest DMA buffer with the\nsize of ARCH_KMALLOC_MINALIGN (or 32 in case ARCH_KMALLOC_MINALIGN is\nsmaller). This might be 32, 64 or even 128 bytes. The next three pools\nwill have the size 128, 512 and 2048.\nIn case the smallest pool is 128 bytes then we have only three pools\ninstead of four (and zero the first entry in the array).\nThe last pool size is always 2048 bytes which is the assumed PAGE_SIZE /\n2 of 4096. I doubt it makes sense to continue using PAGE_SIZE / 2 where\nwe would end up with 8KiB buffer in case we have 16KiB pages.\nInstead I think it makes sense to have a common size(s) and extend them\nif there is need to.\nThere is a BUILD_BUG_ON() now in case someone has a minalign of more than\n128 bytes.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "35c8d87c7bb58c4a91c53c86e338914be67ca1e4",
      "tree": "fc38830faeac8df349d91a91682b06bf40d0cc38",
      "parents": [
        "c8e2629c821b79b0f4ccf8e35aa03c86b5c536c7"
      ],
      "author": {
        "name": "Hanumant Singh",
        "email": "hanumant@codeaurora.org",
        "time": "Fri Nov 01 21:46:53 2013 -0700"
      },
      "committer": {
        "name": "Sashidhar Ganiga",
        "email": "sganig@codeaurora.org",
        "time": "Wed May 20 14:09:08 2015 +0530"
      },
      "message": "esoc: Add external soc control framework\n\nExternal slave soc can be powered on/off and monitored\nfor power states and crash events.\n\nChange-Id: I9c3317f798b204b754d612a3115dcd71935b5ef2\nSigned-off-by: Hanumant Singh \u003chanumant@codeaurora.org\u003e\nsganig@codeaurora.org: Added ESOC_REQ_SHUTDOWN to header\nfile esoc.h in additon to base gerrit changes for\nenabling the mdm-detect feature in A-Family\nSigned-off-by: Sashidhar Ganiga \u003csganig@codeaurora.org\u003e\n"
    },
    {
      "commit": "6fd17def6d964c81205230e02b4208c653106d51",
      "tree": "1253f07591fe80dc3442db927536c1b3f66b5cd7",
      "parents": [
        "a42e15a485c14f6d994192af4c16775fbd6c1126"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Oct 26 19:19:16 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:58 2015 +0800"
      },
      "message": "move d_rcu from overlapping d_child to overlapping d_alias\n\ncommit 946e51f2bf37f1656916eb75bd0742ba33983c28 upstream.\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n[bwh: Backported to 3.2:\n - Apply name changes in all the different places we use d_alias and d_child\n - Move the WARN_ON() in __d_free() to d_free() as we don\u0027t have dentry_free()]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - need one more name change in debugfs]\n"
    },
    {
      "commit": "a10ca0dbc2bcf3383fa42dcfeca055f7b5fe1106",
      "tree": "26f0801fa023eda3343cb648f996dcd55fdc4c0c",
      "parents": [
        "6c7738f3aca22188f304ec78f853a4b82ba9a679"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 10:51:32 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:57 2015 +0800"
      },
      "message": "vm: add VM_FAULT_SIGSEGV handling support\n\ncommit 33692f27597fcab536d7cbbcc8f52905133e4aa7 upstream.\n\nThe core VM already knows about VM_FAULT_SIGBUS, but cannot return a\n\"you should SIGSEGV\" error, because the SIGSEGV case was generally\nhandled by the caller - usually the architecture fault handler.\n\nThat results in lots of duplication - all the architecture fault\nhandlers end up doing very similar \"look up vma, check permissions, do\nretries etc\" - but it generally works.  However, there are cases where\nthe VM actually wants to SIGSEGV, and applications _expect_ SIGSEGV.\n\nIn particular, when accessing the stack guard page, libsigsegv expects a\nSIGSEGV.  And it usually got one, because the stack growth is handled by\nthat duplicated architecture fault handler.\n\nHowever, when the generic VM layer started propagating the error return\nfrom the stack expansion in commit fee7e49d4514 (\"mm: propagate error\nfrom stack expansion even for guard page\"), that now exposed the\nexisting VM_FAULT_SIGBUS result to user space.  And user space really\nexpected SIGSEGV, not SIGBUS.\n\nTo fix that case, we need to add a VM_FAULT_SIGSEGV, and teach all those\nduplicate architecture fault handlers about it.  They all already have\nthe code to handle SIGSEGV, so it\u0027s about just tying that new return\nvalue to the existing code, but it\u0027s all a bit annoying.\n\nThis is the mindless minimal patch to do this.  A more extensive patch\nwould be to try to gather up the mostly shared fault handling logic into\none generic helper routine, and long-term we really should do that\ncleanup.\n\nJust from this patch, you can generally see that most architectures just\ncopied (directly or indirectly) the old x86 way of doing things, but in\nthe meantime that original x86 model has been improved to hold the VM\nsemaphore for shorter times etc and to handle VM_FAULT_RETRY and other\n\"newer\" things, so it would be a good idea to bring all those\nimprovements to the generic case and teach other architectures about\nthem too.\n\nReported-and-tested-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nTested-by: Jan Engelhardt \u003cjengelh@inai.de\u003e\nAcked-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e # \"s390 still compiles and boots\"\nCc: linux-arch@vger.kernel.org\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[bwh: Backported to 3.2:\n - Adjust filenames, context\n - Drop arc, metag, nios2 and lustre changes\n - For sh, patch both 32-bit and 64-bit implementations to use goto bad_area\n - For s390, pass int_code and trans_exc_code as arguments to do_no_context()\n   and do_sigsegv()]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\n[lizf: Backported to 3.4:\n - adjust context in arch/power/mm/fault.c\n - apply the original change in upstream commit for s390]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "7583c9fa5344a6cc217be4f6ded892648ff0e3f5",
      "tree": "9cac39e673ced34ed4b02a11c679793a3213e966",
      "parents": [
        "d6d1536d901f5805565af5dd38d2d0ae766ee875"
      ],
      "author": {
        "name": "James P Michels III",
        "email": "james.p.michels@gmail.com",
        "time": "Sun Jul 27 13:28:04 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:56 2015 +0800"
      },
      "message": "usb-core bInterval quirk\n\ncommit cd83ce9e6195aa3ea15ab4db92892802c20df5d0 upstream.\n\nThis patch adds a usb quirk to support devices with interupt endpoints\nand bInterval values expressed as microframes. The quirk causes the\nparse endpoint function to modify the reported bInterval to a standards\nconforming value.\n\nThere is currently code in the endpoint parser that checks for\nbIntervals that are outside of the valid range (1-16 for USB 2+ high\nspeed and super speed interupt endpoints). In this case, the code assumes\nthe bInterval is being reported in 1ms frames. As well, the correction\nis only applied if the original bInterval value is out of the 1-16 range.\n\nWith this quirk applied to the device, the bInterval will be\naccurately adjusted from microframes to an exponent.\n\nSigned-off-by: James P Michels III \u003cjames.p.michels@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "ef978a9da7dcda0f159a9ddf9136be389333cf17",
      "tree": "997e5388a1bdf1e2866b4eb6a43f61a12e5ce6ef",
      "parents": [
        "89f1d011748d70b830f452bba6e7e83666123e90"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Jun 30 11:04:21 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:56 2015 +0800"
      },
      "message": "usb-storage/SCSI: Add broken_fua blacklist flag\n\ncommit b14bf2d0c0358140041d1c1805a674376964d0e0 upstream.\n\nSome buggy JMicron USB-ATA bridges don\u0027t know how to translate the FUA\nbit in READs or WRITEs.  This patch adds an entry in unusual_devs.h\nand a blacklist flag to tell the sd driver not to use FUA.\n\nSigned-off-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nReported-by: Michael Büsch \u003cm@bues.ch\u003e\nTested-by: Michael Büsch \u003cm@bues.ch\u003e\nAcked-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nCC: Matthew Dharm \u003cmdharm-usb@one-eyed-alien.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "1e9ecb92905ef940531b8aa70395f532742e7099",
      "tree": "2c426d5650bbe6b9d9a4752a7f06dbdd39c7b71d",
      "parents": [
        "a6887b405068526f98c1a1f6c0368f32308712d0"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jan 16 15:13:02 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:54 2015 +0800"
      },
      "message": "libata: allow sata_sil24 to opt-out of tag ordered submission\n\ncommit 72dd299d5039a336493993dcc63413cf31d0e662 upstream.\n\nRonny reports: https://bugzilla.kernel.org/show_bug.cgi?id\u003d87101\n    \"Since commit 8a4aeec8d \"libata/ahci: accommodate tag ordered\n    controllers\" the access to the harddisk on the first SATA-port is\n    failing on its first access. The access to the harddisk on the\n    second port is working normal.\n\n    When reverting the above commit, access to both harddisks is working\n    fine again.\"\n\nMaintain tag ordered submission as the default, but allow sata_sil24 to\ncontinue with the old behavior.\n\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nReported-by: Ronny Hegewald \u003cRonny.Hegewald@online.de\u003e\nSigned-off-by: Dan Williams \u003cdan.j.williams@intel.com\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "4ef74f7a57f95fa31db9d415c5dee165e7c4875c",
      "tree": "5dbfd93b032ce6b3127f002eb293275468e1dc09",
      "parents": [
        "aa12b754cfbd5b5c900d43a6a215b096d8afc0ee"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Sun Jul 14 16:05:57 2013 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:53 2015 +0800"
      },
      "message": "driver core: Introduce device_create_groups\n\ncommit 39ef311204941ddd01ea2950d6220c8ccc710d15 upstream.\n\ndevice_create_groups lets callers create devices as well as associated\nsysfs attributes with a single call. This avoids race conditions seen\nif sysfs attributes on new devices are created later.\n\n[fixed up comment block placement and add checks for printk buffer\nformats - gregkh]\n\nSigned-off-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nCc: Jean Delvare \u003ckhali@linux-fr.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "aa12b754cfbd5b5c900d43a6a215b096d8afc0ee",
      "tree": "8fae2734605e868e1f0a016496dbf02156aa520b",
      "parents": [
        "5b724689fa7063c323b0dd74e78c51617349cd5f"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 14 16:05:52 2013 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:53 2015 +0800"
      },
      "message": "sysfs.h: add ATTRIBUTE_GROUPS() macro\n\ncommit f2f37f58b1b933b06d6d84e80a31a1b500fb0db2 upstream.\n\nTo make it easier for driver subsystems to work with attribute groups,\ncreate the ATTRIBUTE_GROUPS macro to remove some of the repetitive\ntyping for the most common use for attribute groups.\n\nReviewed-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nTested-by: Guenter Roeck \u003clinux@roeck-us.net\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "7f1be7c6e55b686ee22b97db779eb7ed01a2f3af",
      "tree": "9a9756e65264a0f6f830481a5cbdcf8e214cc459",
      "parents": [
        "0b4f2ae74a52418cd880d9249e65fc935f02e89a"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Jan 08 14:32:18 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:51 2015 +0800"
      },
      "message": "mm: protect set_page_dirty() from ongoing truncation\n\ncommit 2d6d7f98284648c5ed113fe22a132148950b140f upstream.\n\nTejun, while reviewing the code, spotted the following race condition\nbetween the dirtying and truncation of a page:\n\n__set_page_dirty_nobuffers()       __delete_from_page_cache()\n  if (TestSetPageDirty(page))\n                                     page-\u003emapping \u003d NULL\n\t\t\t\t     if (PageDirty())\n\t\t\t\t       dec_zone_page_state(page, NR_FILE_DIRTY);\n\t\t\t\t       dec_bdi_stat(mapping-\u003ebacking_dev_info, BDI_RECLAIMABLE);\n    if (page-\u003emapping)\n      account_page_dirtied(page)\n        __inc_zone_page_state(page, NR_FILE_DIRTY);\n\t__inc_bdi_stat(mapping-\u003ebacking_dev_info, BDI_RECLAIMABLE);\n\nwhich results in an imbalance of NR_FILE_DIRTY and BDI_RECLAIMABLE.\n\nDirtiers usually lock out truncation, either by holding the page lock\ndirectly, or in case of zap_pte_range(), by pinning the mapcount with\nthe page table lock held.  The notable exception to this rule, though,\nis do_wp_page(), for which this race exists.  However, do_wp_page()\nalready waits for a locked page to unlock before setting the dirty bit,\nin order to prevent a race where clear_page_dirty() misses the page bit\nin the presence of dirty ptes.  Upgrade that wait to a fully locked\nset_page_dirty() to also cover the situation explained above.\n\nAfterwards, the code in set_page_dirty() dealing with a truncation race\nis no longer needed.  Remove it.\n\nReported-by: Tejun Heo \u003ctj@kernel.org\u003e\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill.shutemov@linux.intel.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - use VM_BUG_ON() instead of VM_BUG_ON_PAGE()]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "0b4f2ae74a52418cd880d9249e65fc935f02e89a",
      "tree": "8d6dad4b1ebffe29c82b07b7b01057a8ba0c3646",
      "parents": [
        "b26c83df4ea0b42d394db241c4f775be025171ba"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "koct9i@gmail.com",
        "time": "Thu Jan 08 14:32:15 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:51 2015 +0800"
      },
      "message": "mm: prevent endless growth of anon_vma hierarchy\n\ncommit 7a3ef208e662f4b63d43a23f61a64a129c525bbc upstream.\n\nConstantly forking task causes unlimited grow of anon_vma chain.  Each\nnext child allocates new level of anon_vmas and links vma to all\nprevious levels because pages might be inherited from any level.\n\nThis patch adds heuristic which decides to reuse existing anon_vma\ninstead of forking new one.  It adds counter anon_vma-\u003edegree which\ncounts linked vmas and directly descending anon_vmas and reuses anon_vma\nif counter is lower than two.  As a result each anon_vma has either vma\nor at least two descending anon_vmas.  In such trees half of nodes are\nleafs with alive vmas, thus count of anon_vmas is no more than two times\nbigger than count of vmas.\n\nThis heuristic reuses anon_vmas as few as possible because each reuse\nadds false aliasing among vmas and rmap walker ought to scan more ptes\nwhen it searches where page is might be mapped.\n\nLink: http://lkml.kernel.org/r/20120816024610.GA5350@evergreen.ssec.wisc.edu\nFixes: 5beb49305251 (\"mm: change anon_vma linking to fix multi-process server scalability issue\")\n[akpm@linux-foundation.org: fix typo, per Rik]\nSigned-off-by: Konstantin Khlebnikov \u003ckoct9i@gmail.com\u003e\nReported-by: Daniel Forrest \u003cdan.forrest@ssec.wisc.edu\u003e\nTested-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nTested-by: Jerome Marchand \u003cjmarchan@redhat.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "370375c0a447eefedc19e872e5137eeff47162f2",
      "tree": "57fbb90eb9b5fbb56fc8733bafaf252e1d85c9f6",
      "parents": [
        "b25489c724b2775cb5eb3eb6d525ad355d1b1f47"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Wed Dec 03 19:22:48 2014 -0500"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:50 2015 +0800"
      },
      "message": "time: settimeofday: Validate the values of tv from user\n\ncommit 6ada1fc0e1c4775de0e043e1bd3ae9d065491aa5 upstream.\n\nAn unvalidated user input is multiplied by a constant, which can result in\nan undefined behaviour for large values. While this is validated later,\nwe should avoid triggering undefined behaviour.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\n[jstultz: include trivial milisecond-\u003emicrosecond correction noticed\nby Andy]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n[lizf: Backported to 3.4: adjust filename]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "288a07dd11b2fc0408fbcb2a6dc2f837dedfb3d8",
      "tree": "e18a3f84791dc8934b4dcba6ea96c18175fc6966",
      "parents": [
        "58250a5c1cc9357d1b41d5ff080ed1990bc344fb"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 13:00:05 2015 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:50 2015 +0800"
      },
      "message": "mm: propagate error from stack expansion even for guard page\n\ncommit fee7e49d45149fba60156f5b59014f764d3e3728 upstream.\n\nJay Foad reports that the address sanitizer test (asan) sometimes gets\nconfused by a stack pointer that ends up being outside the stack vma\nthat is reported by /proc/maps.\n\nThis happens due to an interaction between RLIMIT_STACK and the guard\npage: when we do the guard page check, we ignore the potential error\nfrom the stack expansion, which effectively results in a missing guard\npage, since the expected stack expansion won\u0027t have been done.\n\nAnd since /proc/maps explicitly ignores the guard page (commit\nd7824370e263: \"mm: fix up some user-visible effects of the stack guard\npage\"), the stack pointer ends up being outside the reported stack area.\n\nThis is the minimal patch: it just propagates the error.  It also\neffectively makes the guard page part of the stack limit, which in turn\nmeasn that the actual real stack is one page less than the stack limit.\n\nLet\u0027s see if anybody notices.  We could teach acct_stack_growth() to\nallow an extra page for a grow-up/grow-down stack in the rlimit test,\nbut I don\u0027t want to add more complexity if it isn\u0027t needed.\n\nReported-and-tested-by: Jay Foad \u003cjay.foad@gmail.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "d756c73de80039720cb2373468a096dc8e8c14cd",
      "tree": "24e708e0f7a91be0876dd4052b3809f9d823c276",
      "parents": [
        "3d8b6705ac104513c2c72173c1ac83e5331778a7"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Tue Dec 11 11:04:50 2012 +1030"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:49 2015 +0800"
      },
      "message": "virtio: use dev_to_virtio wrapper in virtio\n\ncommit 9bffdca8c64a72ac54c47a552734ab457bc720d4 upstream.\n\nUse dev_to_virtio wrapper in virtio to make code clearly.\n\nCc: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nCc: \"Michael S. Tsirkin\" \u003cmst@redhat.com\u003e\nSigned-off-by: Wanlong Gao \u003cgaowanlong@cn.fujitsu.com\u003e\nSigned-off-by: Rusty Russell \u003crusty@rustcorp.com.au\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "0d030473658c7760c4cdd4fd0cc61e287b6023b3",
      "tree": "0e66b9c5b5a6760e43c38bb8899fb2964bf5deba",
      "parents": [
        "81cc271d2c4a179aae41c503562af9e11ce94adc"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 11 23:01:41 2014 +0100"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Tue Apr 14 17:33:46 2015 +0800"
      },
      "message": "genirq: Prevent proc race against freeing of irq descriptors\n\ncommit c291ee622165cb2c8d4e7af63fffd499354a23be upstream.\n\nSince the rework of the sparse interrupt code to actually free the\nunused interrupt descriptors there exists a race between the /proc\ninterfaces to the irq subsystem and the code which frees the interrupt\ndescriptor.\n\nCPU0\t\t\t\tCPU1\n\t\t\t\tshow_interrupts()\n\t\t\t\t  desc \u003d irq_to_desc(X);\nfree_desc(desc)\n  remove_from_radix_tree();\n  kfree(desc);\n\t\t\t\t  raw_spinlock_irq(\u0026desc-\u003elock);\n\n/proc/interrupts is the only interface which can actively corrupt\nkernel memory via the lock access. /proc/stat can only read from freed\nmemory. Extremly hard to trigger, but possible.\n\nThe interfaces in /proc/irq/N/ are not affected by this because the\nremoval of the proc file is serialized in procfs against concurrent\nreaders/writers. The removal happens before the descriptor is freed.\n\nFor architectures which have CONFIG_SPARSE_IRQ\u003dn this is a non issue\nas the descriptor is never freed. It\u0027s merely cleared out with the irq\ndescriptor lock held. So any concurrent proc access will either see\nthe old correct value or the cleared out ones.\n\nProtect the lookup and access to the irq descriptor in\nshow_interrupts() with the sparse_irq_lock.\n\nProvide kstat_irqs_usr() which is protecting the lookup and access\nwith sparse_irq_lock and switch /proc/stat to use it.\n\nDocument the existing kstat_irqs interfaces so it\u0027s clear that the\ncaller needs to take care about protection. The users of these\ninterfaces are either not affected due to SPARSE_IRQ\u003dn or already\nprotected against removal.\n\nFixes: 1f5a5b87f78f \"genirq: Implement a sane sparse_irq allocator\"\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n[lizf: Backported to 3.4:\n - define kstat_irqs() for CONFIG_GENERIC_HARDIRQS\n - add ifdef/endif CONFIG_SPARSE_IRQ]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "97c0eac0609a72e22bd614e840511fec3a8498b7",
      "tree": "a2e9dd8b262522c1234c3d99ea49303057335756",
      "parents": [
        "b0909e70d8ff9345687ecdfc4765229605db556a"
      ],
      "author": {
        "name": "jrior001",
        "email": "jriordan001@gmail.com",
        "time": "Mon Mar 09 20:50:56 2015 -0400"
      },
      "committer": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Tue Apr 07 13:47:29 2015 -0500"
      },
      "message": "fs: add f2fs support\n\nSquashed import of f2fs filesystem from:\nhttps://kernel.googlesource.com/pub/scm/linux/kernel/git/jaegeuk/f2fs\nbranch: linux-3.4\n\nImports all relevant changes, up to and including commit:\n  f2fs: support 3.4\n  Author: Jaegeuk Kim \u003cjaegeuk.kim@samsung.com\u003e\n  Date: Wed May 29 10:15:36 2013 +0900\n  SHA1: adecc452383b9394e75417c4516924ac00519ac0\n\nChange-Id: I75179ebca9f83c83a923fe150a68f986ba712d68\n"
    },
    {
      "commit": "c7258f9c79d5161d9e5118bfa34387eaf705a84c",
      "tree": "9f38f752c911424b5f49c76f510c4a090351fe23",
      "parents": [
        "28b8962274e4f964feb2c92b717820de6b203202",
        "a8fa520aef7044c3366dc8eaa860624a3140a721"
      ],
      "author": {
        "name": "Matt Mower",
        "email": "mowerm@gmail.com",
        "time": "Tue Mar 31 14:34:18 2015 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Tue Mar 31 14:58:55 2015 -0700"
      },
      "message": "Merge remote-tracking branch \u0027caf/LA.AF.1.1_rb1.16\u0027 into cm-12.1\n\nConflicts:\n\tdrivers/gpu/ion/ion.c\n\tdrivers/gpu/ion/ion_cma_heap.c\n\tdrivers/media/video/msm/actuators/msm_actuator.c\n\tdrivers/media/video/msm/cpp/msm_cpp.c\n\tdrivers/media/video/msm/csi/msm_csid.c\n\tdrivers/media/video/msm/msm_vpe.c\n\tdrivers/misc/qseecom.c\n\nChange-Id: Iba8bebe2bc49c9c70b848833ecda9ab4480fa3fd\n"
    },
    {
      "commit": "28b8962274e4f964feb2c92b717820de6b203202",
      "tree": "59525eb1c29ef7a89a5679cc5387349f65dcb5d9",
      "parents": [
        "c9a35c8b14af12ef6523298ca2ac69fc7b6730b2"
      ],
      "author": {
        "name": "Brinly Taylor",
        "email": "uberlaggydarwin@gmail.com",
        "time": "Thu Mar 19 17:49:40 2015 +1030"
      },
      "committer": {
        "name": "Brinly Taylor",
        "email": "uberlaggydarwin@gmail.com",
        "time": "Fri Mar 20 06:47:34 2015 +1030"
      },
      "message": "power: pm8921-charger: Add DLXP support\n\nChange-Id: I8425a2a6751643b79c183885a6cf9c16ef97129b\n"
    },
    {
      "commit": "6441177128e959f07ec37a3db8d8e7a6556f8599",
      "tree": "ca14685c570b7ee5274db4b82ea04eea4b4a9632",
      "parents": [
        "d453a947e726ad7549017590f2f4eaebb22f219a"
      ],
      "author": {
        "name": "Sergey Senozhatsky",
        "email": "sergey.senozhatsky@gmail.com",
        "time": "Wed Sep 11 14:26:32 2013 -0700"
      },
      "committer": {
        "name": "jrior001",
        "email": "jriordan001@gmail.com",
        "time": "Fri Mar 13 00:53:59 2015 -0400"
      },
      "message": "lz4: fix compression/decompression signedness mismatch\n\nLZ4 compression and decompression functions require different in\nsignedness input/output parameters: unsigned char for compression and\nsigned char for decompression.\n\nChange decompression API to require \"(const) unsigned char *\".\n\nSigned-off-by: Sergey Senozhatsky \u003csergey.senozhatsky@gmail.com\u003e\nCc: Kyungsik Lee \u003ckyungsik.lee@lge.com\u003e\nCc: Geert Uytterhoeven \u003cgeert@linux-m68k.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": "ef5831e6d41df31f995763118e9eaa2649428945",
      "tree": "4c59ee59ca4c3124c91c8ff7280bdb51f4dfb834",
      "parents": [
        "a57d3d240d6c5b5eb4192342e287954b8075afac"
      ],
      "author": {
        "name": "Chanho Min",
        "email": "chanho.min@lge.com",
        "time": "Mon Jul 08 16:01:49 2013 -0700"
      },
      "committer": {
        "name": "jrior001",
        "email": "jriordan001@gmail.com",
        "time": "Fri Mar 13 00:53:58 2015 -0400"
      },
      "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": "a57d3d240d6c5b5eb4192342e287954b8075afac",
      "tree": "c79a630c4df8d00d95b3b162fe946573afd16a85",
      "parents": [
        "5baa8c98da19b943d01238f670cd77237c267167"
      ],
      "author": {
        "name": "Kyungsik Lee",
        "email": "kyungsik.lee@lge.com",
        "time": "Mon Jul 08 16:01:46 2013 -0700"
      },
      "committer": {
        "name": "jrior001",
        "email": "jriordan001@gmail.com",
        "time": "Fri Mar 13 00:53:58 2015 -0400"
      },
      "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": "5baa8c98da19b943d01238f670cd77237c267167",
      "tree": "15f20fe16f9db8dd01c14d21a40d810b0b5b7afb",
      "parents": [
        "6d716e038735a4729457e63415e8c6f85d50fcd1"
      ],
      "author": {
        "name": "Kyungsik Lee",
        "email": "kyungsik.lee@lge.com",
        "time": "Mon Jul 08 16:01:45 2013 -0700"
      },
      "committer": {
        "name": "jrior001",
        "email": "jriordan001@gmail.com",
        "time": "Fri Mar 13 00:53:57 2015 -0400"
      },
      "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": "7eb23b5191c33c1c4877dd984bcc00021715121f",
      "tree": "6cc6f6aa0c5b11cc4e721e2227e910a3e8077f2f",
      "parents": [
        "d38e242922b8c07519c2f44bd96981e4d78b9ffb"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Thu Jan 30 15:45:55 2014 -0800"
      },
      "committer": {
        "name": "jrior001",
        "email": "jriordan001@gmail.com",
        "time": "Thu Mar 12 22:49:27 2015 -0400"
      },
      "message": "zsmalloc: add copyright\n\nAdd my copyright to the zsmalloc source code which I maintain.\n\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Nitin Gupta \u003cngupta@vflare.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "d38e242922b8c07519c2f44bd96981e4d78b9ffb",
      "tree": "49bf0b59fce0c70455ca26c7b1e12ffb2173ec59",
      "parents": [
        "36be14c491b2cb22141d4b18a85d1c2369b3d9fa"
      ],
      "author": {
        "name": "Minchan Kim",
        "email": "minchan@kernel.org",
        "time": "Thu Jan 30 15:45:50 2014 -0800"
      },
      "committer": {
        "name": "jrior001",
        "email": "jriordan001@gmail.com",
        "time": "Thu Mar 12 22:49:14 2015 -0400"
      },
      "message": "zsmalloc: move it under mm\n\nThis patch moves zsmalloc under mm directory.\n\nBefore that, description will explain why we have needed custom\nallocator.\n\nZsmalloc is a new slab-based memory allocator for storing compressed\npages.  It is designed for low fragmentation and high allocation success\nrate on large object, but \u003c\u003d PAGE_SIZE allocations.\n\nzsmalloc differs from the kernel slab allocator in two primary ways to\nachieve these design goals.\n\nzsmalloc never requires high order page allocations to back slabs, or\n\"size classes\" in zsmalloc terms.  Instead it allows multiple\nsingle-order pages to be stitched together into a \"zspage\" which backs\nthe slab.  This allows for higher allocation success rate under memory\npressure.\n\nAlso, zsmalloc allows objects to span page boundaries within the zspage.\nThis allows for lower fragmentation than could be had with the kernel\nslab allocator for objects between PAGE_SIZE/2 and PAGE_SIZE.  With the\nkernel slab allocator, if a page compresses to 60% of it original size,\nthe memory savings gained through compression is lost in fragmentation\nbecause another object of the same size can\u0027t be stored in the leftover\nspace.\n\nThis ability to span pages results in zsmalloc allocations not being\ndirectly addressable by the user.  The user is given an\nnon-dereferencable handle in response to an allocation request.  That\nhandle must be mapped, using zs_map_object(), which returns a pointer to\nthe mapped region that can be used.  The mapping is necessary since the\nobject data may reside in two different noncontigious pages.\n\nThe zsmalloc fulfills the allocation needs for zram perfectly\n\n[sjenning@linux.vnet.ibm.com: borrow Seth\u0027s quote]\nSigned-off-by: Minchan Kim \u003cminchan@kernel.org\u003e\nAcked-by: Nitin Gupta \u003cngupta@vflare.org\u003e\nReviewed-by: Konrad Rzeszutek Wilk \u003ckonrad.wilk@oracle.com\u003e\nCc: Bob Liu \u003cbob.liu@oracle.com\u003e\nCc: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nCc: Hugh Dickins \u003chughd@google.com\u003e\nCc: Jens Axboe \u003caxboe@kernel.dk\u003e\nCc: Luigi Semenzato \u003csemenzato@google.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Rik van Riel \u003criel@redhat.com\u003e\nCc: Seth Jennings \u003csjenning@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\n\nChange-Id: Ib026c17143131089494dc394c4a35e230220ec83\n"
    },
    {
      "commit": "784ba5c1c345de50bc9ce8c81e59ef61c0bc7504",
      "tree": "682b8e093cc4b89820bfd8679d7820aea7c23cd2",
      "parents": [
        "43f8d52ad02e76ddc3c638b24127faaaa1913ed4"
      ],
      "author": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Sun Mar 08 16:38:43 2015 -0700"
      },
      "committer": {
        "name": "Ethan Chen",
        "email": "intervigil@gmail.com",
        "time": "Mon Mar 09 17:46:23 2015 +0000"
      },
      "message": "misc: tfa9887: Update HTC TFA9887 amp driver\n\n* HTC kernel version: m7stockui-3.4.0-g3a7d36e\n\nChange-Id: Ib9851998705609707f829b3a82410eb8c8662c40\n"
    },
    {
      "commit": "63c86b4162ba703618da91f8bde9811c2a977b75",
      "tree": "c890d2f9d7fbca8b0b51d34844f9481216a56676",
      "parents": [
        "99adaf289ca1a35a4ff0adcc31294af5582cec7e"
      ],
      "author": {
        "name": "Ananda Kishore",
        "email": "kananda@codeaurora.org",
        "time": "Tue Dec 02 11:24:19 2014 +0530"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Wed Mar 04 05:19:36 2015 -0800"
      },
      "message": "sensors: add the sensors class support\n\nAdd a new sensors sysfs class and put all the sensors\ndevice driver information in sensor class folder.\n\nChange-Id: I141e79aee337d8a63998b5b5a4890b6eb6d1c4e4\nSigned-off-by: Ananda Kishore \u003ckananda@codeaurora.org\u003e\n"
    },
    {
      "commit": "26db0a6ddcd0aad8bff909ba2470c20131bd4355",
      "tree": "661d47254f9492a00413c389d3516bb7bc4b76da",
      "parents": [
        "ea82b7468c7b4d21d86ae8149fa9077487b5b8b1"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@gmail.com",
        "time": "Sat Jun 15 15:32:44 2013 +0200"
      },
      "committer": {
        "name": "jrior001",
        "email": "jriordan001@gmail.com",
        "time": "Tue Mar 03 21:26:05 2015 -0500"
      },
      "message": "input: document gamepad API and add extra keycodes\n\nUntil today all gamepad input drivers report their data differently. It is\nnearly impossible to write applications for more than one device in a\ngeneric way. Therefore, this patch introduces a uniform gamepad API which\nwill be used for all new drivers.\n\nInstead of mapping buttons by their labels, we now map them by position.\nThis allows applications to work with any gamepad regardless of the labels\non the buttons. Furthermore, we standardize the ABS_* codes for analog\ntriggers and sticks.\n\nFor D-Pads the long overdue BTN_DPAD_* codes are introduced. They should\nbe fairly obvious how to use. To avoid confusion, the action buttons now\nhave BTN_EAST/SOUTH/WEST/NORTH aliases.\n\nReported-by: Todd Showalter \u003ctodd@electronjump.com\u003e\nAcked-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nSigned-off-by: David Herrmann \u003cdh.herrmann@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "0350de0eab3268372dca504504688286d8d18df9",
      "tree": "8f8d0ab1f1171a74b44eb988f8f547bf29dc3e5e",
      "parents": [
        "c9db0543617a3ae5c50a91950641dddad43cc869"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@linaro.org",
        "time": "Mon Nov 03 15:15:35 2014 +0000"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:05:13 2015 +0800"
      },
      "message": "of: Fix overflow bug in string property parsing functions\n\ncommit a87fa1d81a9fb5e9adca9820e16008c40ad09f33 upstream.\n\nThe string property read helpers will run off the end of the buffer if\nit is handed a malformed string property. Rework the parsers to make\nsure that doesn\u0027t happen. At the same time add new test cases to make\nsure the functions behave themselves.\n\nThe original implementations of of_property_read_string_index() and\nof_property_count_strings() both open-coded the same block of parsing\ncode, each with it\u0027s own subtly different bugs. The fix here merges\nfunctions into a single helper and makes the original functions static\ninline wrappers around the helper.\n\nOne non-bugfix aspect of this patch is the addition of a new wrapper,\nof_property_read_string_array(). The new wrapper is needed by the\ndevice_properties feature that Rafael is working on and planning to\nmerge for v3.19. The implementation is identical both with and without\nthe new static inline wrapper, so it just got left in to reduce the\nchurn on the header file.\n\nSigned-off-by: Grant Likely \u003cgrant.likely@linaro.org\u003e\nCc: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nCc: Mika Westerberg \u003cmika.westerberg@linux.intel.com\u003e\nCc: Rob Herring \u003crobh+dt@kernel.org\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Darren Hart \u003cdarren.hart@intel.com\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - drop selftest hunks that don\u0027t apply]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "8cb0a20aaef0546ca0daf685ab127b181ea8284b",
      "tree": "7c981c9dd664d4b141a7d650069bd61559395e49",
      "parents": [
        "c960659c347e5e0c979084a793bf1f125f3b57ba"
      ],
      "author": {
        "name": "Johan Hovold",
        "email": "johan@kernel.org",
        "time": "Mon Aug 25 17:51:26 2014 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:05:12 2015 +0800"
      },
      "message": "USB: core: add device-qualifier quirk\n\ncommit 2a159389bf5d962359349a76827b2f683276a1c7 upstream.\n\nAdd new quirk for devices that cannot handle requests for the\ndevice_qualifier descriptor.\n\nA USB-2.0 compliant device must respond to requests for the\ndevice_qualifier descriptor (even if it\u0027s with a request error), but at\nleast one device is known to misbehave after such a request.\n\nSuggested-by: Bjørn Mork \u003cbjorn@mork.no\u003e\nSigned-off-by: Johan Hovold \u003cjohan@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "5e93a23b3f887d4824d0e3f64e834fbc22b2bf9b",
      "tree": "7fed13167d7579008e2db9fa7f17cdda2746af89",
      "parents": [
        "4fc93811a205db660b007a6d03386f9ef188a6b8"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Oct 29 14:50:31 2014 -0700"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:05:07 2015 +0800"
      },
      "message": "mm, thp: fix collapsing of hugepages on madvise\n\ncommit 6d50e60cd2edb5a57154db5a6f64eef5aa59b751 upstream.\n\nIf an anonymous mapping is not allowed to fault thp memory and then\nmadvise(MADV_HUGEPAGE) is used after fault, khugepaged will never\ncollapse this memory into thp memory.\n\nThis occurs because the madvise(2) handler for thp, hugepage_madvise(),\nclears VM_NOHUGEPAGE on the stack and it isn\u0027t stored in vma-\u003evm_flags\nuntil the final action of madvise_behavior().  This causes the\nkhugepaged_enter_vma_merge() to be a no-op in hugepage_madvise() when\nthe vma had previously had VM_NOHUGEPAGE set.\n\nFix this by passing the correct vma flags to the khugepaged mm slot\nhandler.  There\u0027s no chance khugepaged can run on this vma until after\nmadvise_behavior() returns since we hold mm-\u003emmap_sem.\n\nIt would be possible to clear VM_NOHUGEPAGE directly from vma-\u003evm_flags\nin hugepage_advise(), but I didn\u0027t want to introduce special case\nbehavior into madvise_behavior().  I think it\u0027s best to just let it\nalways set vma-\u003evm_flags itself.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "7655f8554eb2792101151ba7a79919bf0a78b51c",
      "tree": "936925abffd063c3e1dcf8122d8100007855b7f5",
      "parents": [
        "b71ec07584b31aacb937d8b775a6e373b109028a"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Mon Oct 20 18:12:32 2014 +0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:55 2015 +0800"
      },
      "message": "OOM, PM: OOM killed task shouldn\u0027t escape PM suspend\n\ncommit 5695be142e203167e3cb515ef86a88424f3524eb upstream.\n\nPM freezer relies on having all tasks frozen by the time devices are\ngetting frozen so that no task will touch them while they are getting\nfrozen. But OOM killer is allowed to kill an already frozen task in\norder to handle OOM situtation. In order to protect from late wake ups\nOOM killer is disabled after all tasks are frozen. This, however, still\nkeeps a window open when a killed task didn\u0027t manage to die by the time\nfreeze_processes finishes.\n\nReduce the race window by checking all tasks after OOM killer has been\ndisabled. This is still not race free completely unfortunately because\noom_killer_disable cannot stop an already ongoing OOM killer so a task\nmight still wake up from the fridge and get killed without\nfreeze_processes noticing. Full synchronization of OOM and freezer is,\nhowever, too heavy weight for this highly unlikely case.\n\nIntroduce and check oom_kills counter which gets incremented early when\nthe allocator enters __alloc_pages_may_oom path and only check all the\ntasks if the counter changes during the freezing attempt. The counter\nis updated so early to reduce the race window since allocator checked\noom_killer_disabled which is set by PM-freezing code. A false positive\nwill push the PM-freezer into a slow path but that is not a big deal.\n\nChanges since v1\n- push the re-check loop out of freeze_processes into\n  check_frozen_processes and invert the condition to make the code more\n  readable as per Rafael\n\nFixes: f660daac474c6f (oom: thaw threads if oom killed thread is frozen before deferring)\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "b71ec07584b31aacb937d8b775a6e373b109028a",
      "tree": "2bb5d578e9f8308a842033fb3dd968a061b0d21a",
      "parents": [
        "ace595fd79ba3c6f1d067e8be9d311951f591d9c"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 21 15:49:56 2014 -0800"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:55 2015 +0800"
      },
      "message": "introduce for_each_thread() to replace the buggy while_each_thread()\n\ncommit 0c740d0afc3bff0a097ad03a1c8df92757516f5c upstream.\n\nwhile_each_thread() and next_thread() should die, almost every lockless\nusage is wrong.\n\n1. Unless g \u003d\u003d current, the lockless while_each_thread() is not safe.\n\n   while_each_thread(g, t) can loop forever if g exits, next_thread()\n   can\u0027t reach the unhashed thread in this case. Note that this can\n   happen even if g is the group leader, it can exec.\n\n2. Even if while_each_thread() itself was correct, people often use\n   it wrongly.\n\n   It was never safe to just take rcu_read_lock() and loop unless\n   you verify that pid_alive(g) \u003d\u003d T, even the first next_thread()\n   can point to the already freed/reused memory.\n\nThis patch adds signal_struct-\u003ethread_head and task-\u003ethread_node to\ncreate the normal rcu-safe list with the stable head.  The new\nfor_each_thread(g, t) helper is always safe under rcu_read_lock() as\nlong as this task_struct can\u0027t go away.\n\nNote: of course it is ugly to have both task_struct-\u003ethread_node and the\nold task_struct-\u003ethread_group, we will kill it later, after we change\nthe users of while_each_thread() to use for_each_thread().\n\nPerhaps we can kill it even before we convert all users, we can\nreimplement next_thread(t) using the new thread_head/thread_node.  But\nwe can\u0027t do this right now because this will lead to subtle behavioural\nchanges.  For example, do/while_each_thread() always sees at least one\ntask, while for_each_thread() can do nothing if the whole thread group\nhas died.  Or thread_group_empty(), currently its semantics is not clear\nunless thread_group_leader(p) and we need to audit the callers before we\ncan change it.\n\nSo this patch adds the new interface which has to coexist with the old\none for some time, hopefully the next changes will be more or less\nstraightforward and the old one will go away soon.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nTested-by: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nReviewed-by: Sameer Nanda \u003csnanda@chromium.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: \"Ma, Xindong\" \u003cxindong.ma@intel.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: \"Tu, Xiaobing\" \u003cxiaobing.tu@intel.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: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "6a16b0d080cd68ffac3f063891612dd9725a6d93",
      "tree": "e2d9c64fbe93bc2c253e0a3e40708f4a3f2bcdef",
      "parents": [
        "e4425815a8d45e730f3a0bd52b149ab65bbad73b"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Tue Aug 26 23:16:35 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:54 2015 +0800"
      },
      "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": "e4425815a8d45e730f3a0bd52b149ab65bbad73b",
      "tree": "dfde7c17421015d922718609b539f7b4d5e3e03f",
      "parents": [
        "e7ce7b473f9131b3073baa6dae63cd22de1c4d23"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.eti.br",
        "time": "Mon Nov 25 22:00:41 2013 -0200"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:53 2015 +0800"
      },
      "message": "crypto: more robust crypto_memneq\n\ncommit fe8c8a126806fea4465c43d62a1f9d273a572bf5 upstream.\n\n[Only use the compiler.h portion of this patch, to get the\nOPTIMIZER_HIDE_VAR() macro, which we need for other -stable patches\n- gregkh]\n\nDisabling compiler optimizations can be fragile, since a new\noptimization could be added to -O0 or -Os that breaks the assumptions\nthe code is making.\n\nInstead of disabling compiler optimizations, use a dummy inline assembly\n(based on RELOC_HIDE) to block the problematic kinds of optimization,\nwhile still allowing other optimizations to be applied to the code.\n\nThe dummy inline assembly is added after every OR, and has the\naccumulator variable as its input and output. The compiler is forced to\nassume that the dummy inline assembly could both depend on the\naccumulator variable and change the accumulator variable, so it is\nforced to compute the value correctly before the inline assembly, and\ncannot assume anything about its value after the inline assembly.\n\nThis change should be enough to make crypto_memneq work correctly (with\ndata-independent timing) even if it is inlined at its call sites. That\ncan be done later in a followup patch.\n\nCompile-tested on x86_64.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.eti.br\u003e\nAcked-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "60e7100a311b7b0d4ad87f20d6a13f1f4a4d786d",
      "tree": "1134746c46072c2d7a061fb1a5fff0cedb22ac14",
      "parents": [
        "e306b0daae1fe8ad4b581dcc2f12917732a5fb1b"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Oct 01 21:49:18 2014 -0400"
      },
      "committer": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Mon Feb 02 17:04:52 2015 +0800"
      },
      "message": "vfs: fix data corruption when blocksize \u003c pagesize for mmaped data\n\ncommit 90a8020278c1598fafd071736a0846b38510309c upstream.\n\n-\u003epage_mkwrite() is used by filesystems to allocate blocks under a page\nwhich is becoming writeably mmapped in some process\u0027 address space. This\nallows a filesystem to return a page fault if there is not enough space\navailable, user exceeds quota or similar problem happens, rather than\nsilently discarding data later when writepage is called.\n\nHowever VFS fails to call -\u003epage_mkwrite() in all the cases where\nfilesystems need it when blocksize \u003c pagesize. For example when\nblocksize \u003d 1024, pagesize \u003d 4096 the following is problematic:\n  ftruncate(fd, 0);\n  pwrite(fd, buf, 1024, 0);\n  map \u003d mmap(NULL, 1024, PROT_WRITE, MAP_SHARED, fd, 0);\n  map[0] \u003d \u0027a\u0027;       ----\u003e page_mkwrite() for index 0 is called\n  ftruncate(fd, 10000); /* or even pwrite(fd, buf, 1, 10000) */\n  mremap(map, 1024, 10000, 0);\n  map[4095] \u003d \u0027a\u0027;    ----\u003e no page_mkwrite() called\n\nAt the moment -\u003epage_mkwrite() is called, filesystem can allocate only\none block for the page because i_size \u003d\u003d 1024. Otherwise it would create\nblocks beyond i_size which is generally undesirable. But later at\n-\u003ewritepage() time, we also need to store data at offset 4095 but we\ndon\u0027t have block allocated for it.\n\nThis patch introduces a helper function filesystems can use to have\n-\u003epage_mkwrite() called at all the necessary moments.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - truncate_setsize() already has an oldsize variable]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    }
  ],
  "next": "bf70aaaa88db72720aee2460157bf7afd20601e4"
}
