)]}'
{
  "log": [
    {
      "commit": "53b4f1f0348a4e335fe05906c13591c340d81a4e",
      "tree": "9142eaf20cc68108f3da6672774ccdf0b3f1b2ea",
      "parents": [
        "12cc41c1fae385eb8ceaff6964a155595c98a815"
      ],
      "author": {
        "name": "Willy Tarreau",
        "email": "w@1wt.eu",
        "time": "Mon Jan 18 16:36:09 2016 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:07:58 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\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "dbc29455e7c6c0cfd8f15d4586ef67acfd3e55ca",
      "tree": "04b8021967027e6b17c90dc3c7aa837d3eb6cc80",
      "parents": [
        "7059dd38b647d08c8086379e02c05dc29aaebef5"
      ],
      "author": {
        "name": "Dave Chinner",
        "email": "dchinner@redhat.com",
        "time": "Tue Jul 02 22:38:35 2013 +1000"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Jul 13 07:02:21 2016 -0400"
      },
      "message": "sync: don\u0027t block the flusher thread waiting on IO\n\nWhen sync does it\u0027s WB_SYNC_ALL writeback, it issues data Io and\nthen immediately waits for IO completion. This is done in the\ncontext of the flusher thread, and hence completely ties up the\nflusher thread for the backing device until all the dirty inodes\nhave been synced. On filesystems that are dirtying inodes constantly\nand quickly, this means the flusher thread can be tied up for\nminutes per sync call and hence badly affect system level write IO\nperformance as the page cache cannot be cleaned quickly.\n\nWe already have a wait loop for IO completion for sync(2), so cut\nthis out of the flusher thread and delegate it to wait_sb_inodes().\nHence we can do rapid IO submission, and then wait for it all to\ncomplete.\n\nEffect of sync on fsmark before the patch:\n\nFSUse%        Count         Size    Files/sec     App Overhead\n.....\n     0       640000         4096      35154.6          1026984\n     0       720000         4096      36740.3          1023844\n     0       800000         4096      36184.6           916599\n     0       880000         4096       1282.7          1054367\n     0       960000         4096       3951.3           918773\n     0      1040000         4096      40646.2           996448\n     0      1120000         4096      43610.1           895647\n     0      1200000         4096      40333.1           921048\n\nAnd a single sync pass took:\n\n  real    0m52.407s\n  user    0m0.000s\n  sys     0m0.090s\n\nAfter the patch, there is no impact on fsmark results, and each\nindividual sync(2) operation run concurrently with the same fsmark\nworkload takes roughly 7s:\n\n  real    0m6.930s\n  user    0m0.000s\n  sys     0m0.039s\n\nIOWs, sync is 7-8x faster on a busy filesystem and does not have an\nadverse impact on ongoing async data write operations.\n\nSigned-off-by: Dave Chinner \u003cdchinner@redhat.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n\nChange-Id: I9e55d65f5ecb2305497711d4688f0647d9346035\n"
    },
    {
      "commit": "37672bd0ee797c574ade6a70051fa0ec8faa17a1",
      "tree": "77ecaabc3d6d091705c82deea1296e5096588808",
      "parents": [
        "53da56e352545f33300e84bf519635bdcbba51a6"
      ],
      "author": {
        "name": "NewbyJE",
        "email": "NewbyJE@comcast.net",
        "time": "Wed May 25 06:12:22 2016 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 31 14:16:02 2016 -0400"
      },
      "message": "mbm: revert/fix kernel drivers\n\nChange-Id: Ia4a832ec9d81c83c95652ec4068c5ed5a28e3b04\n"
    },
    {
      "commit": "4cb0dcdcf19bb2a1928675b042a85cb91cc293b5",
      "tree": "0c3c993240191799272be738fe2594a399eab3d8",
      "parents": [
        "582bdf5b0c1ab084e9fc3b0ee9a42da92a242039",
        "4a3ed04b969fb3e062ab11a4ce0856744be1203b"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu May 19 13:12:59 2016 -0500"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu May 19 13:13:07 2016 -0500"
      },
      "message": "Merge remote-tracking branch \u0027caf/LA.AF.1.1_rb1.18\u0027 into HEAD\n\nChange-Id: I5ff7ee6a8875318a6bd8e9a7e3828f629c6a3d1c\n"
    },
    {
      "commit": "66238f92326956bd8601d75eccfe54c02f8f12a6",
      "tree": "41a628ede1223478f89d41b8d012011c69fbaa76",
      "parents": [
        "0d6f45f41693448c8431737ae9686baf874ac585"
      ],
      "author": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed May 18 06:27:06 2016 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed May 18 06:27:06 2016 -0400"
      },
      "message": "Revert \"PORTED: Subsystem map api is deprecated and will be removed.\"\n\nThis reverts commit fdbf5bb4aa9548fd9961617c2412ecd1241c7dc9.\n"
    },
    {
      "commit": "857973b6e22fb8075df6d8d71f28293aa4d90a35",
      "tree": "ce7c28cdb31ae1899200f3e4bb74278a7aff7f5f",
      "parents": [
        "c2c36d616852ac822195c651956c59ea45b47d22"
      ],
      "author": {
        "name": "detule",
        "email": "ogjoneski@gmail.com",
        "time": "Mon Mar 25 10:13:13 2013 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 17 16:30:53 2016 -0400"
      },
      "message": "M2: ion: using client-\u003eheap_mask instead of ion_full_heap_mask in COMPAT ioctl\n"
    },
    {
      "commit": "ce2569585f5eecff7079676f5abefab3f911f27f",
      "tree": "263d45e499f7cb22a080b2c85b9822f8c32490a5",
      "parents": [
        "3c02040e110a4bba08b8c2a71dad75ccbd92b625"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sun Nov 30 18:07:09 2014 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 17 16:28:32 2016 -0400"
      },
      "message": "gpu: ion: Introduce ion_map_iommu_by_force()\n\nThis does the same thing as ion_map_iommu(), but if the handle that is attempting to be mapped is already mapped then it will be unmapped first, ensuring success. This should be used in areas where hard-to-debug memory leaks are expected and where the success of ion_map_iommu() is crucial.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "14deb7a4a66d66bfa29502923149126c1cb50fb6",
      "tree": "d233e443e399e4c6b1a7ac71f082ef0296e32d1b",
      "parents": [
        "a4f8119a758d91dcdd83dc63455b612e97ae090e"
      ],
      "author": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 17 10:56:05 2016 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 17 10:56:05 2016 -0400"
      },
      "message": "fixup for Cherry-Pick\n\nChange-Id: Ic4b3246d9e16abe265abf0eacf145db4736aca6d\n"
    },
    {
      "commit": "766ce4e5a952510f9f27511cbfecc884bf5147cd",
      "tree": "93ad1970e254fc3b1fb0650a4dc449d86ad5114e",
      "parents": [
        "3bc527393379fcd740cc66c700da808abdbf5a5d"
      ],
      "author": {
        "name": "Ivan Grinko",
        "email": "iivanich@gmail.com",
        "time": "Thu Apr 28 22:06:41 2016 +0300"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 17 08:03:16 2016 -0400"
      },
      "message": "Linux 3.4.112\n\nhttps://cdn.kernel.org/pub/linux/kernel/v3.x/ChangeLog-3.4.112\n\nChange-Id: Ic146bc84c10ebcfe256eb6bffa8ffef44c9a1d38\n"
    },
    {
      "commit": "3bc527393379fcd740cc66c700da808abdbf5a5d",
      "tree": "28ccf85853beefbb12a446f66f2cde64eaf5f8d8",
      "parents": [
        "0cf007169665bc6c8eeca0e9089ef0e805c2ac42"
      ],
      "author": {
        "name": "Ivan Grinko",
        "email": "iivanich@gmail.com",
        "time": "Thu Mar 31 13:55:55 2016 +0300"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 17 07:52:48 2016 -0400"
      },
      "message": "f2fs: catch up to v4.4-rc1\n\nThe last patch is:\n\ncommit beaa57dd986d4f398728c060692fc2452895cfd8\nAuthor: Chao Yu \u003cchao2.yu@samsung.com\u003e\nDate:   Thu Oct 22 18:24:12 2015 +0800\n\n    f2fs: fix to skip shrinking extent nodes\n\n    In f2fs_shrink_extent_tree we should stop shrink flow if we have already\n    shrunk enough nodes in extent cache.\n\nChange-Id: I9a1f4463b1e4418d34473cde5181bed9ff471953\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "0cf007169665bc6c8eeca0e9089ef0e805c2ac42",
      "tree": "82a470f9ef259808f9d063d24c860bfab5da3809",
      "parents": [
        "25bec49c55f487637b2f9550b6e04ffb51c5863f"
      ],
      "author": {
        "name": "Ivan Grinko",
        "email": "iivanich@gmail.com",
        "time": "Thu Mar 24 09:39:37 2016 +0200"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 17 07:52:15 2016 -0400"
      },
      "message": "Linux 3.4.111\n"
    },
    {
      "commit": "25bec49c55f487637b2f9550b6e04ffb51c5863f",
      "tree": "d46ee8ee31adb8ad133b4c89036ea5f2ff70f194",
      "parents": [
        "fdc76dab9f46e3cb5fcc43146da6bd666c04496e"
      ],
      "author": {
        "name": "Vasily Kulikov",
        "email": "segoon@openwall.com",
        "time": "Wed Sep 09 15:36:00 2015 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 17 07:52:02 2016 -0400"
      },
      "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": "89e5a191b78002585e63baf4899fb456216e093e",
      "tree": "80e998cc91a00db42db13b55cfb8596ab9a6a718",
      "parents": [
        "089c80be5bd49aeba851b6c471b2deba57976fc4"
      ],
      "author": {
        "name": "Konstantin Dorfman",
        "email": "kdorfman@codeaurora.org",
        "time": "Sun Feb 02 12:49:54 2014 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Apr 27 13:27:21 2016 -0500"
      },
      "message": "mmc: queue: do not clean current request when urgent in progress\n\nAs a result of following fix: \"mmc: core: do not reinsert prepeared\nFUA and FLUSH requests in stop flow\" REQ_FUA and REQ_FLUSH requests\nare not reinserted back into i/o scheduler, but instead started request\nexecution.\n\nThis change will prevent cleaning current request pointer for such\nrequests.\n\nChange-Id: I25f8706954fb538be62182c87d5fb20354696b7a\nCRs-fixed: 600127\nSigned-off-by: Konstantin Dorfman \u003ckdorfman@codeaurora.org\u003e\n"
    },
    {
      "commit": "f9e0e114fefe0af425813720ccfc03e865e04ea6",
      "tree": "f06e156722ed19f3661704a8de2a25c4f9f21d8f",
      "parents": [
        "e9ce223b950d33f6379b3d02437940d665b30e7e"
      ],
      "author": {
        "name": "Konstantin Dorfman",
        "email": "kdorfman@codeaurora.org",
        "time": "Sun Mar 10 17:39:16 2013 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Apr 27 13:27:07 2016 -0500"
      },
      "message": "mmc: fix read latency of urgent request\n\nIn order to improve read request latency, urgent notification allowed\nanytime, when current or previous requests are existing in the mmc layer.\nIt is not allowed to stop following running requests:\n- urgent request: block layer should serialize urgent request notification.\n- read request: it can\u0027t be packed, therefore it is better\nto wait for its completion.\n- REQ_FUA: interruption and delay in such request will impact sync process\nof upper layers.\n\nChange-Id: Id7d1480cce2059c1f23a5f29ad8f74e858be1ee6\nSigned-off-by: Konstantin Dorfman \u003ckdorfman@codeaurora.org\u003e\nSigned-off-by: Maya Erez \u003cmerez@codeaurora.org\u003e\nSigned-off-by: Tatyana Brokhman \u003ctlinder@codeaurora.org\u003e\n"
    },
    {
      "commit": "18d5ad0c215d2cb114f5acd5ef74dbcad79df359",
      "tree": "4fedf1eb9e4f6a567f31248e846de8715e9a906c",
      "parents": [
        "918a2cc9edc70a695181cb0a956d0c00e60abcda"
      ],
      "author": {
        "name": "Venkat Gopalakrishnan",
        "email": "venkatg@codeaurora.org",
        "time": "Mon Jun 03 18:24:57 2013 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Apr 27 13:26:25 2016 -0500"
      },
      "message": "mmc: core: Refactor bus speed selection code\n\nThe bus speed selection code in mmc_card_init() is convoluted, refactor\nthe code to simplify this and make it simpler for adding new bus speed\ncapabilities.\n\nChange-Id: I1ee5365eaad42298a053d0b2d64b87b64bd05c5e\nSigned-off-by: Venkat Gopalakrishnan \u003cvenkatg@codeaurora.org\u003e\n"
    },
    {
      "commit": "0173a719c11329c413d2d6930cb573a9d20e64fa",
      "tree": "706ad50e3ec8aa68f8316944a0ce088ef3202161",
      "parents": [
        "71cfa3bc191c50eafa4659eef4ef35f5bead56bd"
      ],
      "author": {
        "name": "Subhash Jadavani",
        "email": "subhashj@codeaurora.org",
        "time": "Mon May 27 16:35:35 2013 +0530"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Apr 27 13:26:02 2016 -0500"
      },
      "message": "mmc: core: export mmc_host_may_gate_card function\n\nMMC Host driver might want to use the mmc_host_may_gate_card() API\nto know whether the clock can be gated to the card or not hence\nexport this function for usage outside its current scope.\n\nChange-Id: I9ec4173063e2505eca179161cdf8cda033a3fd4b\nSigned-off-by: Subhash Jadavani \u003csubhashj@codeaurora.org\u003e\n"
    },
    {
      "commit": "cdac522a7498c6fa7bc7dc86181868acebb9ccf8",
      "tree": "18dda2bd8a0dea27a06d7d50c077277e22c8b6a8",
      "parents": [
        "cd1ab6d7e03f358e5bf0a4aac5d0c2299bf37c2b"
      ],
      "author": {
        "name": "Konstantin Dorfman",
        "email": "kdorfman@codeaurora.org",
        "time": "Tue Feb 12 13:19:48 2013 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Apr 27 13:25:30 2016 -0500"
      },
      "message": "mmc: Add support to handle Urgent data transfer request\n\nUrgent request notification stops currently running transaction\non bus.\nIn order to decrease a latency of a prioritized requests (aka Urgent\nrequest), we might want to stop the transmission of a running \"low\npriority\" request in order to handle the Urgent request. The urgency of\nthe request is decided by the block layer I/O scheduler. When the block\nlayer notifies the MMC layer of an urgent request and if the MMC layer is\nblocked on current request to complete, it will be woken up.\n\nThe decision on whether to stop an ongoing transfer is taken according to\nseveral parameters, one of them being the number of bytes already\ntransferred for ongoing transfer by host controller so far.\n\nTo calculate how many bytes were successfully programmed before stop,\nCORRECTLY_PRG_SECTORS_NUM[245:242] parsed from EXT_CSD register. The\nremainder of stopped request (and next prepared request in case it\nexists) re-inserted back to the I/O scheduler to be handled after the\ncompletion of the urgent request.\n\nIn case it is decided not to stop the ongoing transfer, MMC context will\nwait for normal completion of the ongoing transfer, then already prepared\nnext request (if it exists) will be re-inserted back into block layer and\nthe urgent request fetched.\n\nURGENT_REQUEST handling has following dependencies:\n1. Host controller driver should support mmc_host op named \"stop_request\"\n2. Block I/O scheduler should support re-insert API\n3. eMMC card should support HPI (High Priority Interrupt) command\n\nIf any of the above dependencies are not met then urgent request mechanism\nwill not become operational.\n\nChange-Id: Ic3fa1ca9463cc8991aefee940d8bfddf76c111d3\nSigned-off-by: Konstantin Dorfman \u003ckdorfman@codeaurora.org\u003e\n"
    },
    {
      "commit": "4efd995df05b69ab0d611f5152ca676e32250a4f",
      "tree": "9a03a55c91bfbb275694adf8c0dbbc41a73d180c",
      "parents": [
        "1bfba66cfc7064fb234513ed565766038d129695"
      ],
      "author": {
        "name": "Maya Erez",
        "email": "merez@codeaurora.org",
        "time": "Sun Jan 06 10:19:38 2013 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Apr 27 13:25:07 2016 -0500"
      },
      "message": "mmc: do not pack random requests\n\nPacked commands causes higher latency since the completion of each\nrequest is sent to the upper layer upon completion of the complete\npacked request.\nThe benefit from this feature is card dependent. Some of the card\nvendors do not have any benefit from using packed commands for random\nrequests. In case there is no benefit in random requests packing,\nit is better to disable the packing to prevent this high latency.\nThis patch also add the new stop packing reason to the write packing\nstatistics.\n\nChange-Id: I141887dcef2ceee14848634cc27c3c85f8edc7a5\nSigned-off-by: Maya Erez \u003cmerez@codeaurora.org\u003e\n"
    },
    {
      "commit": "1bfba66cfc7064fb234513ed565766038d129695",
      "tree": "7298f1722deab85dfc706bde4c5f94f6679e3049",
      "parents": [
        "b44c9e34998e26a05426a070de8a480ca356efe6"
      ],
      "author": {
        "name": "Konstantin Dorfman",
        "email": "kdorfman@codeaurora.org",
        "time": "Wed Dec 12 16:12:08 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Apr 27 13:25:02 2016 -0500"
      },
      "message": "mmc: fix async request mechanism for sequential read scenarios\n\nWhen current request is running on the bus and if next request fetched\nby mmcqd is NULL, mmc context (mmcqd thread) gets blocked until the\ncurrent request completes. This means that if new request comes in while\nthe mmcqd thread is blocked, this new request can not be prepared in\nparallel to current ongoing request. This may result in delaying the new\nrequest execution and increase it\u0027s latency.\n\nThis change allows to wake up the MMC thread on new request arrival.\nNow once the MMC thread is woken up, a new request can be fetched and\nprepared in parallel to the current running request which means this new\nrequest can be started immediately after the current running request\ncompletes.\n\nWith this change read throughput is improved by 16%.\n\nChange-Id: I8d74fda719c89a710330807c9d8994d40c885aa0\nSigned-off-by: Konstantin Dorfman \u003ckdorfman@codeaurora.org\u003e\n"
    },
    {
      "commit": "9cc712efc708bf2d25b6a6c013c66c42f2cfccd0",
      "tree": "f4b7b9d2354b77f6a63eacded1c5b32282c18abc",
      "parents": [
        "64c363146fe8b4b26285d36fad0fc01b9c8c1285"
      ],
      "author": {
        "name": "José Adolfo Galdámez",
        "email": "josegalre@pac-rom.com",
        "time": "Wed Oct 21 21:52:13 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:04:59 2016 -0500"
      },
      "message": "Merge tag \u0027v3.4.110\u0027 into mm-6.0\n\nChange-Id: I0afc69bce474139d1b70e062d72c0b8054529833\nSigned-off-by: José Adolfo Galdámez \u003cjosegalre@pac-rom.com\u003e\n"
    },
    {
      "commit": "64c363146fe8b4b26285d36fad0fc01b9c8c1285",
      "tree": "f4597aeccc6d37aadbf3a719dfefc62632e4ee10",
      "parents": [
        "900469d0b0c337db19908f77d172f4b17f4573ba"
      ],
      "author": {
        "name": "José Adolfo Galdámez",
        "email": "josegalre@pac-rom.com",
        "time": "Mon Sep 21 22:00:27 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:03:50 2016 -0500"
      },
      "message": "Merge tag \u0027v3.4.109\u0027 into mm-6.0\n\nChange-Id: I93b29443377e338fc5d3b031b130da720f788879\nSigned-off-by: José Adolfo Galdámez \u003cjosegalre@pac-rom.com\u003e\n"
    },
    {
      "commit": "900469d0b0c337db19908f77d172f4b17f4573ba",
      "tree": "e7c8e6e70ad09ecc74c7385269f9a7a908489b88",
      "parents": [
        "3591a444f6b8cb82a9b88a49a4e67d8f4b61a6de"
      ],
      "author": {
        "name": "José Adolfo Galdámez",
        "email": "josegalre@pac-rom.com",
        "time": "Sat Jun 20 23:45:36 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:02:51 2016 -0500"
      },
      "message": "Merge tag \u0027v3.4.108\u0027 into mm-6.0\n\nChange-Id: I5ee718e5c87c9647c6edf0926a887679e065a649\nSigned-off-by: José Adolfo Galdámez \u003cjosegalre@pac-rom.com\u003e\n"
    },
    {
      "commit": "8890d4ee7314a714a0c6118ab5e570f4787b9f94",
      "tree": "5850cc02cb291619eee71169df514e11bc39feea",
      "parents": [
        "b9551bbf95ef564cb55cd253479e7bd57c07e36c"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Tue Jan 13 10:53:20 2015 +0100"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:01:48 2016 -0500"
      },
      "message": "ALSA: ak411x: Fix stall in work callback\n\ncommit 4161b4505f1690358ac0a9ee59845a7887336b21 upstream.\n\nWhen ak4114 work calls its callback and the callback invokes\nak4114_reinit(), it stalls due to flush_delayed_work().  For avoiding\nthis, control the reentrance by introducing a refcount.  Also\nflush_delayed_work() is replaced with cancel_delayed_work_sync().\n\nThe exactly same bug is present in ak4113.c and fixed as well.\n\nReported-by: Pavel Hofman \u003cpavel.hofman@ivitera.com\u003e\nAcked-by: Jaroslav Kysela \u003cperex@perex.cz\u003e\nTested-by: Pavel Hofman \u003cpavel.hofman@ivitera.com\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\n[lizf: Backported to 3.4: snd_ak4113_reinit() and snd_ak4114_reinit()\nused flush_delayed_work_sync() instead of flush_delayed_work()]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "a49e6ce46b2174e740908332b4ec1796af9e029a",
      "tree": "abef367c23b20577a299f363a7d76154fd1e7c21",
      "parents": [
        "5aaf989a3f7a116df4a0dd9a6c537f13cb0e32d2"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Sun Oct 26 19:19:16 2014 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:01:44 2016 -0500"
      },
      "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": "7a1d4bacdd49739a31d87410e21a712bf70b5e3e",
      "tree": "6c386dcd4dcdb53ccb4e1119a73ac468f60809ce",
      "parents": [
        "594c5e6bd48af952f339a8e10873a1079074c4d3"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Thu Oct 09 22:55:31 2014 +0200"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:01:42 2016 -0500"
      },
      "message": "net: sctp: fix skb_over_panic when receiving malformed ASCONF chunks\n\ncommit 9de7922bc709eee2f609cd01d98aaedc4cf5ea74 upstream.\n\nCommit 6f4c618ddb0 (\"SCTP : Add paramters validity check for\nASCONF chunk\") added basic verification of ASCONF chunks, however,\nit is still possible to remotely crash a server by sending a\nspecial crafted ASCONF chunk, even up to pre 2.6.12 kernels:\n\nskb_over_panic: text:ffffffffa01ea1c3 len:31056 put:30768\n head:ffff88011bd81800 data:ffff88011bd81800 tail:0x7950\n end:0x440 dev:\u003cNULL\u003e\n ------------[ cut here ]------------\nkernel BUG at net/core/skbuff.c:129!\n[...]\nCall Trace:\n \u003cIRQ\u003e\n [\u003cffffffff8144fb1c\u003e] skb_put+0x5c/0x70\n [\u003cffffffffa01ea1c3\u003e] sctp_addto_chunk+0x63/0xd0 [sctp]\n [\u003cffffffffa01eadaf\u003e] sctp_process_asconf+0x1af/0x540 [sctp]\n [\u003cffffffff8152d025\u003e] ? _read_unlock_bh+0x15/0x20\n [\u003cffffffffa01e0038\u003e] sctp_sf_do_asconf+0x168/0x240 [sctp]\n [\u003cffffffffa01e3751\u003e] sctp_do_sm+0x71/0x1210 [sctp]\n [\u003cffffffff8147645d\u003e] ? fib_rules_lookup+0xad/0xf0\n [\u003cffffffffa01e6b22\u003e] ? sctp_cmp_addr_exact+0x32/0x40 [sctp]\n [\u003cffffffffa01e8393\u003e] sctp_assoc_bh_rcv+0xd3/0x180 [sctp]\n [\u003cffffffffa01ee986\u003e] sctp_inq_push+0x56/0x80 [sctp]\n [\u003cffffffffa01fcc42\u003e] sctp_rcv+0x982/0xa10 [sctp]\n [\u003cffffffffa01d5123\u003e] ? ipt_local_in_hook+0x23/0x28 [iptable_filter]\n [\u003cffffffff8148bdc9\u003e] ? nf_iterate+0x69/0xb0\n [\u003cffffffff81496d10\u003e] ? ip_local_deliver_finish+0x0/0x2d0\n [\u003cffffffff8148bf86\u003e] ? nf_hook_slow+0x76/0x120\n [\u003cffffffff81496d10\u003e] ? ip_local_deliver_finish+0x0/0x2d0\n [\u003cffffffff81496ded\u003e] ip_local_deliver_finish+0xdd/0x2d0\n [\u003cffffffff81497078\u003e] ip_local_deliver+0x98/0xa0\n [\u003cffffffff8149653d\u003e] ip_rcv_finish+0x12d/0x440\n [\u003cffffffff81496ac5\u003e] ip_rcv+0x275/0x350\n [\u003cffffffff8145c88b\u003e] __netif_receive_skb+0x4ab/0x750\n [\u003cffffffff81460588\u003e] netif_receive_skb+0x58/0x60\n\nThis can be triggered e.g., through a simple scripted nmap\nconnection scan injecting the chunk after the handshake, for\nexample, ...\n\n  -------------- INIT[ASCONF; ASCONF_ACK] -------------\u003e\n  \u003c----------- INIT-ACK[ASCONF; ASCONF_ACK] ------------\n  -------------------- COOKIE-ECHO --------------------\u003e\n  \u003c-------------------- COOKIE-ACK ---------------------\n  ------------------ ASCONF; UNKNOWN ------------------\u003e\n\n... where ASCONF chunk of length 280 contains 2 parameters ...\n\n  1) Add IP address parameter (param length: 16)\n  2) Add/del IP address parameter (param length: 255)\n\n... followed by an UNKNOWN chunk of e.g. 4 bytes. Here, the\nAddress Parameter in the ASCONF chunk is even missing, too.\nThis is just an example and similarly-crafted ASCONF chunks\ncould be used just as well.\n\nThe ASCONF chunk passes through sctp_verify_asconf() as all\nparameters passed sanity checks, and after walking, we ended\nup successfully at the chunk end boundary, and thus may invoke\nsctp_process_asconf(). Parameter walking is done with\nWORD_ROUND() to take padding into account.\n\nIn sctp_process_asconf()\u0027s TLV processing, we may fail in\nsctp_process_asconf_param() e.g., due to removal of the IP\naddress that is also the source address of the packet containing\nthe ASCONF chunk, and thus we need to add all TLVs after the\nfailure to our ASCONF response to remote via helper function\nsctp_add_asconf_response(), which basically invokes a\nsctp_addto_chunk() adding the error parameters to the given\nskb.\n\nWhen walking to the next parameter this time, we proceed\nwith ...\n\n  length \u003d ntohs(asconf_param-\u003eparam_hdr.length);\n  asconf_param \u003d (void *)asconf_param + length;\n\n... instead of the WORD_ROUND()\u0027ed length, thus resulting here\nin an off-by-one that leads to reading the follow-up garbage\nparameter length of 12336, and thus throwing an skb_over_panic\nfor the reply when trying to sctp_addto_chunk() next time,\nwhich implicitly calls the skb_put() with that length.\n\nFix it by using sctp_walk_params() [ which is also used in\nINIT parameter processing ] macro in the verification *and*\nin ASCONF processing: it will make sure we don\u0027t spill over,\nthat we walk parameters WORD_ROUND()\u0027ed. Moreover, we\u0027re being\nmore defensive and guard against unknown parameter types and\nmissized addresses.\n\nJoint work with Vlad Yasevich.\n\nFixes: b896b82be4ae (\"[SCTP] ADDIP: Support for processing incoming ASCONF_ACK chunks.\")\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvyasevich@gmail.com\u003e\nAcked-by: Neil Horman \u003cnhorman@tuxdriver.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "594c5e6bd48af952f339a8e10873a1079074c4d3",
      "tree": "64323d1948f7cf93b0c301375043a4c1b8b11260",
      "parents": [
        "618280557800ea300c61e7b705f182aef3323352"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Thu Oct 09 22:55:32 2014 +0200"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:01:41 2016 -0500"
      },
      "message": "net: sctp: fix panic on duplicate ASCONF chunks\n\ncommit b69040d8e39f20d5215a03502a8e8b4c6ab78395 upstream.\n\nWhen receiving a e.g. semi-good formed connection scan in the\nform of ...\n\n  -------------- INIT[ASCONF; ASCONF_ACK] -------------\u003e\n  \u003c----------- INIT-ACK[ASCONF; ASCONF_ACK] ------------\n  -------------------- COOKIE-ECHO --------------------\u003e\n  \u003c-------------------- COOKIE-ACK ---------------------\n  ---------------- ASCONF_a; ASCONF_b -----------------\u003e\n\n... where ASCONF_a equals ASCONF_b chunk (at least both serials\nneed to be equal), we panic an SCTP server!\n\nThe problem is that good-formed ASCONF chunks that we reply with\nASCONF_ACK chunks are cached per serial. Thus, when we receive a\nsame ASCONF chunk twice (e.g. through a lost ASCONF_ACK), we do\nnot need to process them again on the server side (that was the\nidea, also proposed in the RFC). Instead, we know it was cached\nand we just resend the cached chunk instead. So far, so good.\n\nWhere things get nasty is in SCTP\u0027s side effect interpreter, that\nis, sctp_cmd_interpreter():\n\nWhile incoming ASCONF_a (chunk \u003d event_arg) is being marked\n!end_of_packet and !singleton, and we have an association context,\nwe do not flush the outqueue the first time after processing the\nASCONF_ACK singleton chunk via SCTP_CMD_REPLY. Instead, we keep it\nqueued up, although we set local_cork to 1. Commit 2e3216cd54b1\nchanged the precedence, so that as long as we get bundled, incoming\nchunks we try possible bundling on outgoing queue as well. Before\nthis commit, we would just flush the output queue.\n\nNow, while ASCONF_a\u0027s ASCONF_ACK sits in the corked outq, we\ncontinue to process the same ASCONF_b chunk from the packet. As\nwe have cached the previous ASCONF_ACK, we find it, grab it and\ndo another SCTP_CMD_REPLY command on it. So, effectively, we rip\nthe chunk-\u003elist pointers and requeue the same ASCONF_ACK chunk\nanother time. Since we process ASCONF_b, it\u0027s correctly marked\nwith end_of_packet and we enforce an uncork, and thus flush, thus\ncrashing the kernel.\n\nFix it by testing if the ASCONF_ACK is currently pending and if\nthat is the case, do not requeue it. When flushing the output\nqueue we may relink the chunk for preparing an outgoing packet,\nbut eventually unlink it when it\u0027s copied into the skb right\nbefore transmission.\n\nJoint work with Vlad Yasevich.\n\nFixes: 2e3216cd54b1 (\"sctp: Follow security requirement of responding with 1 packet\")\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: Vlad Yasevich \u003cvyasevich@gmail.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "3f7e51000594675f0a4dd7f6127719157ab8e83c",
      "tree": "78728741c3da0cdb7dd69196b0204bba6699ba32",
      "parents": [
        "502757abf9609faec7c25cec28b27e4020d1db11"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Jan 29 10:51:32 2015 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:01:40 2016 -0500"
      },
      "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": "4b5bfec8170106fe90c5704917041d65b606592a",
      "tree": "dff724874ef8dfe2b4b349a6ae33e28120f491de",
      "parents": [
        "1a9dafe7db19ab7fee15c1a15bf51fe71b65269d"
      ],
      "author": {
        "name": "James P Michels III",
        "email": "james.p.michels@gmail.com",
        "time": "Sun Jul 27 13:28:04 2014 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:01:35 2016 -0500"
      },
      "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": "0ea202cff781c8ac795d3c57625cf2ff50190efa",
      "tree": "334ddff027c05f8a119ee108c654a1c31744f037",
      "parents": [
        "c1f986873050443f1d3448e2d0b238aba659c59d"
      ],
      "author": {
        "name": "Alan Stern",
        "email": "stern@rowland.harvard.edu",
        "time": "Mon Jun 30 11:04:21 2014 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:01:33 2016 -0500"
      },
      "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": "2238346a2635353b745f91b20dde95ad0a2de60b",
      "tree": "acd2fbd5cb9df2a5d50f071750cb2c6d69db92d5",
      "parents": [
        "749bbb98a44b7c2f96cb6f30cf74b94b10e323bc"
      ],
      "author": {
        "name": "Dan Williams",
        "email": "dan.j.williams@intel.com",
        "time": "Fri Jan 16 15:13:02 2015 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:01:25 2016 -0500"
      },
      "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": "b487362d57da9517175e207e9576b3288becdc99",
      "tree": "a452fb41f967e730ec70cfc64e3b4c1c905362f1",
      "parents": [
        "3d44f1b0e049f1cb2c2fd85d6edd88e469b79be1"
      ],
      "author": {
        "name": "Guenter Roeck",
        "email": "linux@roeck-us.net",
        "time": "Sun Jul 14 16:05:57 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:00:52 2016 -0500"
      },
      "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": "3d44f1b0e049f1cb2c2fd85d6edd88e469b79be1",
      "tree": "01007470fa31b06f9988acaab6bfdeb019f701da",
      "parents": [
        "0133134e4a4b7393f48c4b8d3f1b0b2009aafa9c"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 14 16:05:52 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:00:51 2016 -0500"
      },
      "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": "15870706456d9d0d32b2541b967df9119bdda1de",
      "tree": "a49a3491507852431eb7419826689f816d58400f",
      "parents": [
        "a8addb5ef92d396f6b548d6de1863e7b212b6ab5"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Thu Jan 08 14:32:18 2015 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:00:41 2016 -0500"
      },
      "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": "a8addb5ef92d396f6b548d6de1863e7b212b6ab5",
      "tree": "2d7646df137ee928862d2afb2d7dad450cd5d944",
      "parents": [
        "c19381969418716b2f02a49183a59508282a8423"
      ],
      "author": {
        "name": "Konstantin Khlebnikov",
        "email": "koct9i@gmail.com",
        "time": "Thu Jan 08 14:32:15 2015 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:00:40 2016 -0500"
      },
      "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": "70da5b358e7e43293fac0f78317c339d1eff96fa",
      "tree": "b078039b8f0cf6296f2f348f8569289a5361acf6",
      "parents": [
        "631e8a57ea957b730f271a50049959b4afa6472b"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Wed Dec 03 19:22:48 2014 -0500"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:00:35 2016 -0500"
      },
      "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": "02bde22f757039b5eee240440a808772d104056c",
      "tree": "85266c42a59ba11fd7e54e99c7c7fb8335f2a20a",
      "parents": [
        "e5cf1f8e2be88970ce50f356992c6d4fcae27d2f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Tue Jan 06 13:00:05 2015 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:00:34 2016 -0500"
      },
      "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": "2ff2fb94f240ef325f8888a29c93088d28697156",
      "tree": "5b3a394c9807cd0187ba3feb137006d97cdd00f5",
      "parents": [
        "46e11847cf275edf606ef73414c7fedc9dc10d11"
      ],
      "author": {
        "name": "Wanlong Gao",
        "email": "gaowanlong@cn.fujitsu.com",
        "time": "Tue Dec 11 11:04:50 2012 +1030"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:00:30 2016 -0500"
      },
      "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": "20ddfdd45db0dfc1193c8c81cb20196befbf0743",
      "tree": "9b3336a9142e118971e302a83cf2b6ca7d42f55f",
      "parents": [
        "306afdf4e512bf760994face0363fc054ce05dc8"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Dec 11 23:01:41 2014 +0100"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 20:00:11 2016 -0500"
      },
      "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": "7bc7f8aef19baa043b6e884e0686ca3fb71b54e1",
      "tree": "8922dcf54717562fd979cad3f2196b498b65c0df",
      "parents": [
        "cc25831f5262ea2cd68b27efb3756d6cc2022dff"
      ],
      "author": {
        "name": "shumash",
        "email": "shumashgeely@gmail.com",
        "time": "Thu Oct 08 09:47:06 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 19:57:54 2016 -0500"
      },
      "message": "BT: Changes to defconfig, add msm_power\n"
    },
    {
      "commit": "157ecab851fd1f788fd6d3c7d76dc30dbc6278aa",
      "tree": "c4d04c04ddc8195e8ddd1e3a596f65f81e95b41f",
      "parents": [
        "b2f60dfc8a5f68d24936f9cead661b8f7856567d"
      ],
      "author": {
        "name": "shumash",
        "email": "shumashgeely@gmail.com",
        "time": "Sat Jul 18 09:12:19 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 19:57:39 2016 -0500"
      },
      "message": "workqueue: Add system wide power_efficient workqueues\n\nThis patch adds system wide workqueues aligned towards power saving. This is\ndone by allocating them with WQ_UNBOUND flag if \u0027wq_power_efficient\u0027 is set to\n\u0027true\u0027.\n\ntj: updated comments a bit.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n(cherry picked from commit 0668106ca3865ba945e155097fb042bf66d364d3)\nSigned-off-by: Mark Brown \u003cbroonie@linaro.org\u003e\n\nChange-Id: Id0614a3d7f96937fa0c396d2197e3580b8b8de80\n"
    },
    {
      "commit": "b2f60dfc8a5f68d24936f9cead661b8f7856567d",
      "tree": "501db0eaab2dfcbeac9fbe38b3ce03ad86660c29",
      "parents": [
        "e1210196448b3a6c20d21944e3016627b14acdb7"
      ],
      "author": {
        "name": "shumash",
        "email": "shumashgeely@gmail.com",
        "time": "Sat Jul 18 09:03:08 2015 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 10 19:57:38 2016 -0500"
      },
      "message": "workqueues: Introduce new flag WQ_POWER_EFFICIENT for power oriented workqueues\n\nWorkqueues can be performance or power-oriented. Currently, most workqueues are\nbound to the CPU they were created on. This gives good performance (due to cache\neffects) at the cost of potentially waking up otherwise idle cores (Idle from\nscheduler\u0027s perspective. Which may or may not be physically idle) just to\nprocess some work. To save power, we can allow the work to be rescheduled on a\ncore that is already awake.\n\nWorkqueues created with the WQ_UNBOUND flag will allow some power savings.\nHowever, we don\u0027t change the default behaviour of the system.  To enable\npower-saving behaviour, a new config option CONFIG_WQ_POWER_EFFICIENT needs to\nbe turned on. This option can also be overridden by the\nworkqueue.power_efficient boot parameter.\n\ntj: Updated config description and comments.  Renamed\n    CONFIG_WQ_POWER_EFFICIENT to CONFIG_WQ_POWER_EFFICIENT_DEFAULT.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nReviewed-by: Amit Kucheria \u003camit.kucheria@linaro.org\u003e\nSigned-off-by: Tejun Heo \u003ctj@kernel.org\u003e\n(cherry picked from commit cee22a15052faa817e3ec8985a28154d3fabc7aa)\nSigned-off-by: Mark Brown \u003cbroonie@linaro.org\u003e\n\nChange-Id: I5c2f656aaa266deba2dd0887dace9928540910ae\n"
    },
    {
      "commit": "6fdf96829291ed459ac2d7beddc4c4236e3ea5df",
      "tree": "eb5e3fc3e22bb689b13741eec99110c870568a29",
      "parents": [
        "14701fd830b7fecf35fdaebe89b62cbaba173fb7"
      ],
      "author": {
        "name": "Shiju Mathew",
        "email": "shijum@codeaurora.org",
        "time": "Fri Nov 13 15:51:34 2015 -0500"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sun Jan 10 17:39:37 2016 -0500"
      },
      "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\nSigned-off-by: Shiju Mathew \u003cshijum@codeaurora.org\u003e\n\nConflicts:\n\tdrivers/video/msm/vidc/common/enc/venc.c\n\tinclude/media/msm/vcd_property.h\n\nChange-Id: I1fe8ea38c7ed8d203a3ef99febb4001165a856fe\n"
    },
    {
      "commit": "551e1913a7e32d24639bd3457cac6b61aec9761a",
      "tree": "8eeb8f4bcf5ee97b6365ec89c812fa330b3eedd5",
      "parents": [
        "1e3d5cf82112a0a78820b603c6a86a38c5ac300f"
      ],
      "author": {
        "name": "Hannes Frederic Sowa",
        "email": "hannes@stressinduktion.org",
        "time": "Mon Dec 14 21:03:39 2015 +0000"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 19 08:41:03 2015 -0500"
      },
      "message": "net: add validation for the socket syscall protocol argument\n\n郭永刚 reported that one could simply crash the kernel as root by\nusing a simple program:\n\n\tint socket_fd;\n\tstruct sockaddr_in addr;\n\taddr.sin_port \u003d 0;\n\taddr.sin_addr.s_addr \u003d INADDR_ANY;\n\taddr.sin_family \u003d 10;\n\n\tsocket_fd \u003d socket(10,3,0x40000000);\n\tconnect(socket_fd , \u0026addr,16);\n\nAF_INET, AF_INET6 sockets actually only support 8-bit protocol\nidentifiers. inet_sock\u0027s skc_protocol field thus is sized accordingly,\nthus larger protocol identifiers simply cut off the higher bits and\nstore a zero in the protocol fields.\n\nThis could lead to e.g. NULL function pointer because as a result of\nthe cut off inet_num is zero and we call down to inet_autobind, which\nis NULL for raw sockets.\n\nkernel: Call Trace:\nkernel:  [\u003cffffffff816db90e\u003e] ? inet_autobind+0x2e/0x70\nkernel:  [\u003cffffffff816db9a4\u003e] inet_dgram_connect+0x54/0x80\nkernel:  [\u003cffffffff81645069\u003e] SYSC_connect+0xd9/0x110\nkernel:  [\u003cffffffff810ac51b\u003e] ? ptrace_notify+0x5b/0x80\nkernel:  [\u003cffffffff810236d8\u003e] ? syscall_trace_enter_phase2+0x108/0x200\nkernel:  [\u003cffffffff81645e0e\u003e] SyS_connect+0xe/0x10\nkernel:  [\u003cffffffff81779515\u003e] tracesys_phase2+0x84/0x89\n\nI found no particular commit which introduced this problem.\n\nChange-Id: I653fad90da54908144cc8916c2dccb1fa6f14eed\nCVE: CVE-2015-8543\nCc: Cong Wang \u003ccwang@twopensource.com\u003e\nReported-by: 郭永刚 \u003cguoyonggang@360.cn\u003e\nSigned-off-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "b5401aa15d058b45abd5ade0f96484af4afb4ae7",
      "tree": "84ab3c877c6ca08d12d046617f4b3fdef91ac4fa",
      "parents": [
        "6b1fa60f0b88faec25f6bb3bcc494ccb09498294"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri May 11 10:56:56 2012 +0100"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 19 08:40:56 2015 -0500"
      },
      "message": "KEYS: Add invalidation support\n\nAdd support for invalidating a key - which renders it immediately invisible to\nfurther searches and causes the garbage collector to immediately wake up,\nremove it from keyrings and then destroy it when it\u0027s no longer referenced.\n\nIt\u0027s better not to do this with keyctl_revoke() as that marks the key to start\nreturning -EKEYREVOKED to searches when what is actually desired is to have the\nkey refetched.\n\nTo invalidate a key the caller must be granted SEARCH permission by the key.\nThis may be too strict.  It may be better to also permit invalidation if the\ncaller has any of READ, WRITE or SETATTR permission.\n\nThe primary use for this is to evict keys that are cached in special keyrings,\nsuch as the DNS resolver or an ID mapper.\n\nChange-Id: I923ea0f0b8f9d6b3ff8ec8beca77b1774984f1c3\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "6b1fa60f0b88faec25f6bb3bcc494ccb09498294",
      "tree": "78ca2a99f83a48f5bf44a9143eaa0ff1d4a67a38",
      "parents": [
        "c2035a53e48959fc1ce6ed862a156f4c76b3ca85"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri May 11 10:56:56 2012 +0100"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 19 08:40:55 2015 -0500"
      },
      "message": "KEYS: Permit in-place link replacement in keyring list\n\nMake use of the previous patch that makes the garbage collector perform RCU\nsynchronisation before destroying defunct keys.  Key pointers can now be\nreplaced in-place without creating a new keyring payload and replacing the\nwhole thing as the discarded keys will not be destroyed until all currently\nheld RCU read locks are released.\n\nIf the keyring payload space needs to be expanded or contracted, then a\nreplacement will still need allocating, and the original will still have to be\nfreed by RCU.\n\nChange-Id: I6c4f784f120951fb51ac9c23856ea37f51770bb9\nSigned-off-by: David Howells \u003cdhowells@redhat.com\u003e\n"
    },
    {
      "commit": "c2035a53e48959fc1ce6ed862a156f4c76b3ca85",
      "tree": "0d2e070337254c64e8be0fa3c3590da25c1e4537",
      "parents": [
        "c7cbbb1cbddfff2bf8e0983249d4635e2770b133"
      ],
      "author": {
        "name": "David Howells",
        "email": "dhowells@redhat.com",
        "time": "Fri May 11 10:56:56 2012 +0100"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 19 08:40:43 2015 -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": "ccaae27b624cf470afb09a2e5e168615c5d252a7",
      "tree": "64021b364074128dea2862fcf6073a1c700fa099",
      "parents": [
        "2a0028cf33621cb07461813506598bff5e2e0478"
      ],
      "author": {
        "name": "James Sullins",
        "email": "jcsullins@gmail.com",
        "time": "Fri Dec 11 21:21:56 2015 -0500"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sun Dec 13 15:20:35 2015 -0500"
      },
      "message": "Audio fixups based on JcSullins 3.0 Kernel\n\ncommit d39ff6b2ebfa37087f5aeec53501459f00ddd53e\n\nChange-Id: I2b84f1880a55189ecb6b9c9c430a516ec50a37f6\n"
    },
    {
      "commit": "308d058b14d97df46d3530dcb8b46d5b3c9ec0f7",
      "tree": "5b6d3e463db28b753f4942f67e606d0c6b494bee",
      "parents": [
        "aa21524eee5842d52d7853f4ac998da0d37cde64"
      ],
      "author": {
        "name": "Liam Mark",
        "email": "lmark@codeaurora.org",
        "time": "Fri Feb 27 12:59:00 2015 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Nov 21 15:53:36 2015 -0500"
      },
      "message": "lowmemorykiller: Don\u0027t count swap cache pages twice\n\nThe lowmem_shrink function discounts all the swap cache pages from\nthe file cache count. The zone aware code also discounts all file\ncache pages from a certain zone.  This results in some swap cache\npages being discounted twice, which can result in the low memory\nkiller being unnecessarily aggressive.\n\nFix the low memory killer to only discount the swap cache pages\nonce.\n\nChange-Id: I650bbfbf0fbbabd01d82bdb3502b57ff59c3e14f\nSigned-off-by: Liam Mark \u003clmark@codeaurora.org\u003e\n"
    },
    {
      "commit": "30c38e5d7fee1cb1d84224386af5085ce075804f",
      "tree": "270d4dad4a6cdb9b73739169fb72fccccdf84a9b",
      "parents": [
        "44359ab1e3655fd7a515550a103e35cc985c3d49"
      ],
      "author": {
        "name": "Vinayak Menon",
        "email": "vinmenon@codeaurora.org",
        "time": "Tue Mar 31 11:06:29 2015 +0530"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Nov 21 15:53:29 2015 -0500"
      },
      "message": "mm: vmpressure: scale pressure based on reclaim context\n\nThe existing calculation of vmpressure takes into account only\nthe ratio of reclaimed to scanned pages, but not the time spent\nor the difficulty in reclaiming those pages. For e.g. when there\nare quite a number of file pages in the system, an allocation\nrequest can be satisfied by reclaiming the file pages alone. If\nsuch a reclaim is succesful, the vmpressure value will remain low\nirrespective of the time spent by the reclaim code to free up the\nfile pages. With a feature like lowmemorykiller, killing a task\ncan be faster than reclaiming the file pages alone. So if the\nvmpressure values reflect the reclaim difficulty level, clients\ncan make a decision based on that, for e.g. to kill a task early.\n\nThis patch monitors the number of pages scanned in the direct\nreclaim path and scales the vmpressure level according to that.\n\nSigned-off-by: Vinayak Menon \u003cvinmenon@codeaurora.org\u003e\nChange-Id: I6e643d29a9a1aa0814309253a8b690ad86ec0b13\n"
    },
    {
      "commit": "44359ab1e3655fd7a515550a103e35cc985c3d49",
      "tree": "dfe23899f0bf15adff0afe5da55440c2a463dfb2",
      "parents": [
        "e1351deffeac5b1ce1ea074dd2d9e2c2abb17adc"
      ],
      "author": {
        "name": "Laura Abbott",
        "email": "lauraa@codeaurora.org",
        "time": "Mon Sep 22 13:26:28 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Nov 21 15:53:26 2015 -0500"
      },
      "message": "mm: Add notifier framework for showing memory\n\nThere are many drivers in the kernel which can hold on\nto lots of memory. It can be useful to dump out all those\ndrivers at key points in the kernel. Introduct a notifier\nframework for dumping this information. When the notifiers\nare called, drivers can dump out the state of any memory\nthey may be using.\n\nChange-Id: Ifb2946964bf5d072552dd56d8d6dfdd794af6d84\nSigned-off-by: Laura Abbott \u003clauraa@codeaurora.org\u003e\n"
    },
    {
      "commit": "e1351deffeac5b1ce1ea074dd2d9e2c2abb17adc",
      "tree": "f76e88302c1ddf4bc346468fa10a0ef2aa19fb41",
      "parents": [
        "8b559baa5d99d235492a2c45df25af5680632e30"
      ],
      "author": {
        "name": "Vinayak Menon",
        "email": "vinmenon@codeaurora.org",
        "time": "Wed Mar 04 16:38:28 2015 +0530"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Nov 21 15:53:24 2015 -0500"
      },
      "message": "mm: vmpressure: allow in-kernel clients to subscribe for events\n\nCurrently, vmpressure is tied to memcg and its events are\navailable only to userspace clients. This patch removes\nthe dependency on CONFIG_MEMCG and adds a mechanism for\nin-kernel clients to subscribe for vmpressure events (in\nfact raw vmpressure values are delivered instead of vmpressure\nlevels, to provide clients more flexibility to take actions\non custom pressure levels which are not currently defined\nby vmpressure module).\n\nChange-Id: I38010f166546e8d7f12f5f355b5dbfd6ba04d587\nSigned-off-by: Vinayak Menon \u003cvinmenon@codeaurora.org\u003e\n"
    },
    {
      "commit": "8b559baa5d99d235492a2c45df25af5680632e30",
      "tree": "4b8b4318a9395b55cfce1cf16193acb9fce5b736",
      "parents": [
        "f499e4da8d4a77d810101b9962c8b2212b262f2d"
      ],
      "author": {
        "name": "Anton Vorontsov",
        "email": "anton.vorontsov@linaro.org",
        "time": "Mon Apr 29 15:08:31 2013 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Nov 21 15:53:07 2015 -0500"
      },
      "message": "memcg: add memory.pressure_level events\n\nWith this patch userland applications that want to maintain the\ninteractivity/memory allocation cost can use the pressure level\nnotifications.  The levels are defined like this:\n\nThe \"low\" level means that the system is reclaiming memory for new\nallocations.  Monitoring this reclaiming activity might be useful for\nmaintaining cache level.  Upon notification, the program (typically\n\"Activity Manager\") might analyze vmstat and act in advance (i.e.\nprematurely shutdown unimportant services).\n\nThe \"medium\" level means that the system is experiencing medium memory\npressure, the system might be making swap, paging out active file\ncaches, etc.  Upon this event applications may decide to further analyze\nvmstat/zoneinfo/memcg or internal memory usage statistics and free any\nresources that can be easily reconstructed or re-read from a disk.\n\nThe \"critical\" level means that the system is actively thrashing, it is\nabout to out of memory (OOM) or even the in-kernel OOM killer is on its\nway to trigger.  Applications should do whatever they can to help the\nsystem.  It might be too late to consult with vmstat or any other\nstatistics, so it\u0027s advisable to take an immediate action.\n\nThe events are propagated upward until the event is handled, i.e.  the\nevents are not pass-through.  Here is what this means: for example you\nhave three cgroups: A-\u003eB-\u003eC.  Now you set up an event listener on\ncgroups A, B and C, and suppose group C experiences some pressure.  In\nthis situation, only group C will receive the notification, i.e.  groups\nA and B will not receive it.  This is done to avoid excessive\n\"broadcasting\" of messages, which disturbs the system and which is\nespecially bad if we are low on memory or thrashing.  So, organize the\ncgroups wisely, or propagate the events manually (or, ask us to\nimplement the pass-through events, explaining why would you need them.)\n\nPerformance wise, the memory pressure notifications feature itself is\nlightweight and does not require much of bookkeeping, in contrast to the\nrest of memcg features.  Unfortunately, as of current memcg\nimplementation, pages accounting is an inseparable part and cannot be\nturned off.  The good news is that there are some efforts[1] to improve\nthe situation; plus, implementing the same, fully API-compatible[2]\ninterface for CONFIG_CGROUP_MEM_RES_CTLR\u003dn case (e.g.  embedded) is also\na viable option, so it will not require any changes on the userland\nside.\n\n[1] http://permalink.gmane.org/gmane.linux.kernel.cgroups/6291\n[2] http://lkml.org/lkml/2013/2/21/454\n\nChange-Id: Ib7b9f7986008d423b84152e2781d0402a560c95e\n[akpm@linux-foundation.org: coding-style fixes]\n[akpm@linux-foundation.org: fix CONFIG_CGROPUPS\u003dn warnings]\nSigned-off-by: Anton Vorontsov \u003canton.vorontsov@linaro.org\u003e\nAcked-by: Kirill A. Shutemov \u003ckirill@shutemov.name\u003e\nAcked-by: KAMEZAWA Hiroyuki \u003ckamezawa.hiroyu@jp.fujitsu.com\u003e\nCc: Tejun Heo \u003ctj@kernel.org\u003e\nCc: David Rientjes \u003crientjes@google.com\u003e\nCc: Pekka Enberg \u003cpenberg@kernel.org\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Glauber Costa \u003cglommer@parallels.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Luiz Capitulino \u003clcapitulino@redhat.com\u003e\nCc: Greg Thelen \u003cgthelen@google.com\u003e\nCc: Leonid Moiseichuk \u003cleonid.moiseichuk@nokia.com\u003e\nCc: KOSAKI Motohiro \u003ckosaki.motohiro@gmail.com\u003e\nCc: Minchan Kim \u003cminchan@kernel.org\u003e\nCc: Bartlomiej Zolnierkiewicz \u003cb.zolnierkie@samsung.com\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "56fe9b8b54f87ef7280d8cf4602193a8fde61d69",
      "tree": "5b0c0138a5ff1ab5de60fe1bc42f053c1a1c8924",
      "parents": [
        "5eba202ec7efc1c42d534ef8b4042674cefa427a"
      ],
      "author": {
        "name": "Sasha Levitskiy",
        "email": "sanek@google.com",
        "time": "Fri Jun 28 11:06:31 2013 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Nov 21 10:21:59 2015 -0500"
      },
      "message": "Input: Propagate hardware event timestamp to evdev.\n\nConvey hardware timestamp associated with the current event packet.\nThe use of these event codes by hardware drivers is optional.\nUsed to reduce jitter and improve velocity tracking in ABS_MT devices.\n\nChange-Id: I89f3a958944f6a2979964ee372e61bad448061b6\nSigned-off-by: Sasha Levitskiy \u003csanek@google.com\u003e\n"
    },
    {
      "commit": "a22ae16cf505b743cc0839a1d463f3d4457ae0c6",
      "tree": "40a14895f95cbddf29474878073e1432cb13d25a",
      "parents": [
        "39f80930cec83e6420713b7f75b9473f1fd3b168"
      ],
      "author": {
        "name": "Rom Lemarchand",
        "email": "romlem@android.com",
        "time": "Sat Jan 24 15:08:42 2015 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri Nov 20 20:59:19 2015 -0500"
      },
      "message": "staging: android: ashmem: add missing include\n\nInclude \u003clinux/types.h\u003e into ashmem.h to ensure referenced types are defined\n\nSigned-off-by: Rom Lemarchand \u003cromlem@android.com\u003e\nChange-Id: If82d92caa6c148ab2182a681637fc8e17c44346d\n"
    },
    {
      "commit": "4fae7dd0a73fcf96e90c09014794acbef7b6cbbc",
      "tree": "497b33f5016cd88e509aa54c46381ea5edecc4b0",
      "parents": [
        "a65354abd4dadb8a4b891d085c07836ddd2ca826"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Thu Nov 12 10:23:18 2015 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Nov 12 19:44:29 2015 -0500"
      },
      "message": "f2fs: sync to upstream\n\nhttps://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs.git/commit/?h\u003dlinux-3.4\u0026id\u003d994642cfdbc08f1eda7ff48504f779cbcc9e3067\n\nChange-Id: I5beb230d4a5dc3ef3913f5bfc4c28b39bcb755b1\n"
    },
    {
      "commit": "c29e1d62f3c5773565c8319df08527f87ca6d642",
      "tree": "c13c91ed8c369a6fdfa8e16d9a0887598c2cd4e7",
      "parents": [
        "cf4d1979efa4a55bb9870dc0b031989a07ae03e0"
      ],
      "author": {
        "name": "Sabrina Dubroca",
        "email": "sd@queasysnail.net",
        "time": "Thu Oct 15 12:25:00 2015 -0500"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Nov 12 18:37:46 2015 -0500"
      },
      "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": "75d9a22306c18844879cddcbf940e22a03918561",
      "tree": "f1cb1be07f5deee75c1f515b60caac68080b1b68",
      "parents": [
        "ba12817ba1b77ce1d8141b7f0f68419aa1ac42eb"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Jun 15 10:21:48 2011 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Oct 14 06:40:30 2015 -0400"
      },
      "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": "9f7db1b354b86119a76512edd25ad7e4c3e5405f",
      "tree": "47631beef1032041005fb3febcfa77ef61876ffd",
      "parents": [
        "b0d3b92f2b49c9cbb6e44a01ae390f547a0ef4db"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Fri Jun 17 13:33:20 2011 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Oct 14 06:40:27 2015 -0400"
      },
      "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": "b0d3b92f2b49c9cbb6e44a01ae390f547a0ef4db",
      "tree": "feb146890d8de9836e8034a4534201c1be614860",
      "parents": [
        "0128eb975d244344fa618788d71d1ca8013b24eb"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 26 21:42:03 2012 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Oct 14 06:40:26 2015 -0400"
      },
      "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": "df3e15428d98ba3d5dde429e71c499da2c74f089",
      "tree": "8af558189fe5d5c00a99529436b88dfa2f114a6d",
      "parents": [
        "ab012bbe936b097f43af565ab2b5076be7022c83"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Thu Jul 26 21:08:32 2012 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Oct 14 06:40:23 2015 -0400"
      },
      "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": "ab012bbe936b097f43af565ab2b5076be7022c83",
      "tree": "4723a7f085ed211de2352ca05ba97909757299be",
      "parents": [
        "f29c68f94f0cc6b4467386d8a70b5c9e0dba0796"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Sun Mar 07 18:49:36 2010 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Oct 14 06:40:12 2015 -0400"
      },
      "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": "f29c68f94f0cc6b4467386d8a70b5c9e0dba0796",
      "tree": "9c5c73640c5535b9bb59d8418354ea95179140cc",
      "parents": [
        "56f9e25ee138692ab12f60154ad3a96f48848d20"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Thu Oct 11 11:42:01 2012 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Oct 14 06:38:19 2015 -0400"
      },
      "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": "fc300a4fa6109c2262e049f48d8f2dff5c6b7c9e",
      "tree": "1fb57e775612058a160f0c1178e44e4037bc7ca7",
      "parents": [
        "64399b2ef22e48134a9f12896fdf2bc12eeaf939"
      ],
      "author": {
        "name": "Josef Bacik",
        "email": "josef@redhat.com",
        "time": "Mon Mar 26 09:59:21 2012 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Oct 14 06:38:16 2015 -0400"
      },
      "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": "9011bf7ee179e887dbe2ad2c9e81f1f465fe146b",
      "tree": "97d41fecda289d903c7ac4215704144f368396d4",
      "parents": [
        "bbd581b5bcc4f3651f636cf56eac2f419a933583"
      ],
      "author": {
        "name": "Andi Kleen",
        "email": "ak@linux.intel.com",
        "time": "Tue May 08 13:32:24 2012 +0930"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Oct 14 06:37:58 2015 -0400"
      },
      "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"
    },
    {
      "commit": "bbd581b5bcc4f3651f636cf56eac2f419a933583",
      "tree": "8cce5e3c76ccc1a4a9fb7c9dc31794f64f07e9cd",
      "parents": [
        "90b682494380bbb0f7230234699100242247bb24"
      ],
      "author": {
        "name": "Rusty Russell",
        "email": "rusty@rustcorp.com.au",
        "time": "Tue May 08 13:29:45 2012 +0930"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Oct 14 06:36:37 2015 -0400"
      },
      "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": "64cf2e340ea01c8adc981fe0d93981b40797d401",
      "tree": "855c54ababb21676bf1d0f6dc0d1fc5e6269cdf5",
      "parents": [
        "5b9d5cca8a1ac44b5fd2772f1d096b5c33518321"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Tue Oct 30 14:45:57 2012 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Oct 14 06:33:41 2015 -0400"
      },
      "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": "b0fd0221d200dddfdb10befd4881a516f0721ff4",
      "tree": "d6ef261001b6d2500272560431061279999e30f9",
      "parents": [
        "472d3c6c6b4d529792e965015d077cbed5faff7b"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Sat Apr 04 16:15:54 2015 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Oct 12 21:03:31 2015 -0400"
      },
      "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": "9892c405641b5e2be1054f4964dc31a56678a038",
      "tree": "a639fa6939753e6afd04d3b4eb7231efa885245b",
      "parents": [
        "e0c1cadbab0d0dbfcb776453abdbbb9d9c072548"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Sep 23 06:14:10 2015 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri Oct 02 19:50:07 2015 -0400"
      },
      "message": "Bluetooth:   Backport BT manager 1.3\n\nBackported from msm 3.10 kernel\n\nChange-Id: I0c4ba93e9d590388efd562c3dbb3a2d1ac5f3c6a\n"
    },
    {
      "commit": "e0c1cadbab0d0dbfcb776453abdbbb9d9c072548",
      "tree": "7f6f2a4624273ff2e90102491933c84498359b43",
      "parents": [
        "7560d8a71bca30ba729d9d98c684e0c6224fdab7"
      ],
      "author": {
        "name": "Flemmard",
        "email": "flemmard@gmail.com",
        "time": "Thu Jan 02 09:31:10 2014 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Tue Sep 22 00:09:56 2015 -0500"
      },
      "message": "camera: fix build when no camera selected\n\nChange-Id: I07b045bbc70aab34e44cac94f67df154f58e54aa\n"
    },
    {
      "commit": "fe180b7d3ff59506c9ec07d73972af001b9cb297",
      "tree": "80d2c1dad6ac7c5c53ade3dc0b9edaf64288d0f6",
      "parents": [
        "efbfa26cd86a6c305f039510df852e2cb7bb2674"
      ],
      "author": {
        "name": "Arianna Avanzini",
        "email": "avanzini.arianna@gmail.com",
        "time": "Mon Jan 27 23:50:08 2014 +0100"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 17 17:19:43 2015 -0400"
      },
      "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\nSigned-off-by: Paolo Valente \u003cpaolo.valente@unimore.it\u003e\nSigned-off-by: Arianna Avanzini \u003cavanzini.arianna@gmail.com\u003e\n\nChange-Id: I1a25e7d742fbb92a9665795869417cec157481fa\n"
    },
    {
      "commit": "efa514df36110cbe10ae23feeb21fc58d4bd93b2",
      "tree": "d191b1c25d4a874b6e502e1d3ca3806bf5d545b7",
      "parents": [
        "706e60fe3b0a06466fd393a441a15760d5ed9534"
      ],
      "author": {
        "name": "Viresh Kumar",
        "email": "viresh.kumar@linaro.org",
        "time": "Fri May 17 11:26:32 2013 +0000"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Sun Jun 28 19:02:15 2015 -0400"
      },
      "message": "cpufreq: Move get_cpu_idle_time() to cpufreq.c\n\nGovernors other than ondemand and conservative can also use\nget_cpu_idle_time() and they aren\u0027t required to compile\ncpufreq_governor.c. So, move these independent routines to\ncpufreq.c instead.\n\nSigned-off-by: Viresh Kumar \u003cviresh.kumar@linaro.org\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nGit-commit: 72a4ce340a7ebf39e1c6fdc8f5feb4f974d6c635\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\n[junjiew@codeaurora.org: update non-upstream files]\nSigned-off-by: Junjie Wu \u003cjunjiew@codeaurora.org\u003e\n\nChange-Id: I3227454599250011a19a752c962e3cacb1fb0301\n"
    },
    {
      "commit": "6e77969087924d1495fe3bbab8581b8945e26f82",
      "tree": "5a577608adecbba08c4cf3926b7b4d4de4509596",
      "parents": [
        "12b9b0ef2e347a58423ef0f4e24139833677a437"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu May 28 12:30:40 2015 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu May 28 12:30:40 2015 -0400"
      },
      "message": "clocks:  Adj for touchpad\n\nFixes some minor screen glitches\n\nChange-Id: I50ae73dd9081d22556e0215ddee528d7919b30be\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": "1a7d81211dc9e785de913036a1dc5157b330f7bc",
      "tree": "e3f529632d013cb0d820ee46e978a366eb540d0f",
      "parents": [
        "7e56f7d5e001c27ff63505cb558ca1bfc9a4d765"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Apr 15 09:41:28 2015 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:05:08 2015 -0400"
      },
      "message": "tenderloin:  Fixup for newer 3.4 kernel for tenderloin\n\nChange-Id: Ifbbc7d09bdd13ca337825ab3fcff0d5c4f01e3cd\n"
    },
    {
      "commit": "536063f4f0c08fcfd1bb5c709edd3a8d3e5ad784",
      "tree": "5189b1348804f6408386df3dd43a3c1b922e6bd1",
      "parents": [
        "b63fbd0eb32237979544047d8d93a33f04762f9e"
      ],
      "author": {
        "name": "JP Abgrall",
        "email": "jpa@google.com",
        "time": "Thu Aug 07 17:12:43 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:05:06 2015 -0400"
      },
      "message": "ext4: Add support for FIDTRIM, a best-effort ioctl for deep discard trim\n\n* What\nThis provides an interface for issuing an FITRIM which uses the\nsecure discard instead of just a discard.\nOnly the eMMC command is \"secure\", and not how the FS uses it:\ndue to the fact that the FS might reassign a region somewhere else,\nthe original deleted data will not be affected by the \"trim\" which only\nhandles un-used regions.\nSo we\u0027ll just call it \"deep discard\", and note that this is a\n\"best effort\" cleanup.\n\n* Why\nOnce in a while, We want to be able to cleanup most of the unused blocks\nafter erasing a bunch of files.\nWe don\u0027t want to constantly secure-discard via a mount option.\n\nFrom an eMMC spec perspective, it tells the device to really get rid of\nall the data for the specified blocks and not just put them back into the\npool of free ones (unlike the normal TRIM). The eMMC spec says the\nsecure trim handling must make sure the data (and metadata) is not available\nanymore. A simple TRIM doesn\u0027t clear the data, it just puts blocks in the\nfree pool.\nJEDEC Standard No. 84-A441\n  7.6.9 Secure Erase\n  7.6.10 Secure Trim\n\nFrom an FS perspective, it is acceptable to leave some data behind.\n - directory entries related to deleted files\n - databases entries related to deleted files\n - small-file data stored in inode extents\n - blocks held by the FS waiting to be re-used (mitigated by sync).\n - blocks reassigned by the FS prior to FIDTRIM.\n\nChange-Id: I676a1404a80130d93930c84898360f2e6fb2f81e\nSigned-off-by: Geremy Condra \u003cgcondra@google.com\u003e\nSigned-off-by: JP Abgrall \u003cjpa@google.com\u003e\n"
    },
    {
      "commit": "a6af8f91623152e98fcc0cf13ed6143d77ac3a2f",
      "tree": "ac0ea158d243edc9552afcdd61b11688b9a38d9e",
      "parents": [
        "527dae0287ccbdec221779cab163149a858b3d5f"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Fri Mar 09 10:43:50 2012 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:05:03 2015 -0400"
      },
      "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": "d32af365698237c84e6afb44d9e88d3b7bf56913",
      "tree": "b73970cd95a8808a1853232fe18f505e897c79c6",
      "parents": [
        "38daf679216fe5edfc43f975db963be883accae8"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Thu Jun 05 00:23:17 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:59 2015 -0400"
      },
      "message": "seccomp: implement SECCOMP_FILTER_FLAG_TSYNC\n\nApplying restrictive seccomp filter programs to large or diverse\ncodebases often requires handling threads which may be started early in\nthe process lifetime (e.g., by code that is linked in). While it is\npossible to apply permissive programs prior to process start up, it is\ndifficult to further restrict the kernel ABI to those threads after that\npoint.\n\nThis change adds a new seccomp syscall flag to SECCOMP_SET_MODE_FILTER for\nsynchronizing thread group seccomp filters at filter installation time.\n\nWhen calling seccomp(SECCOMP_SET_MODE_FILTER, SECCOMP_FILTER_FLAG_TSYNC,\nfilter) an attempt will be made to synchronize all threads in current\u0027s\nthreadgroup to its new seccomp filter program. This is possible iff all\nthreads are using a filter that is an ancestor to the filter current is\nattempting to synchronize to. NULL filters (where the task is running as\nSECCOMP_MODE_NONE) are also treated as ancestors allowing threads to be\ntransitioned into SECCOMP_MODE_FILTER. If prctrl(PR_SET_NO_NEW_PRIVS,\n...) has been set on the calling thread, no_new_privs will be set for\nall synchronized threads too. On success, 0 is returned. On failure,\nthe pid of one of the failing threads will be returned and no filters\nwill have been applied.\n\nThe race conditions against another thread are:\n- requesting TSYNC (already handled by sighand lock)\n- performing a clone (already handled by sighand lock)\n- changing its filter (already handled by sighand lock)\n- calling exec (handled by cred_guard_mutex)\nThe clone case is assisted by the fact that new threads will have their\nseccomp state duplicated from their parent before appearing on the tasklist.\n\nHolding cred_guard_mutex means that seccomp filters cannot be assigned\nwhile in the middle of another thread\u0027s exec (potentially bypassing\nno_new_privs or similar). The call to de_thread() may kill threads waiting\nfor the mutex.\n\nChanges across threads to the filter pointer includes a barrier.\n\nBased on patches by Will Drewry.\n\nSuggested-by: Julien Tinnes \u003cjln@chromium.org\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\n\nConflicts:\n\tinclude/linux/seccomp.h\n\tinclude/uapi/linux/seccomp.h\n"
    },
    {
      "commit": "880e1ab5d6ef6e806dfa8e9ba08c3ff03488837d",
      "tree": "df8042281f019e5750d08093e13041b7b3337a0e",
      "parents": [
        "42835bc18120d0e5921ff07d2c2d8afd9783161a"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Fri Jun 27 15:18:48 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:57 2015 -0400"
      },
      "message": "seccomp: introduce writer locking\n\nNormally, task_struct.seccomp.filter is only ever read or modified by\nthe task that owns it (current). This property aids in fast access\nduring system call filtering as read access is lockless.\n\nUpdating the pointer from another task, however, opens up race\nconditions. To allow cross-thread filter pointer updates, writes to the\nseccomp fields are now protected by the sighand spinlock (which is shared\nby all threads in the thread group). Read access remains lockless because\npointer updates themselves are atomic.  However, writes (or cloning)\noften entail additional checking (like maximum instruction counts)\nwhich require locking to perform safely.\n\nIn the case of cloning threads, the child is invisible to the system\nuntil it enters the task list. To make sure a child can\u0027t be cloned from\na thread and left in a prior state, seccomp duplication is additionally\nmoved under the sighand lock. Then parent and child are certain have\nthe same seccomp state when they exit the lock.\n\nBased on patches by Will Drewry and David Drysdale.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\n\nConflicts:\n\tkernel/fork.c\n"
    },
    {
      "commit": "aa064093b32bc5a386de8d441dabe262b78506c7",
      "tree": "8ea3df5dc581ff0eda7ab603d776df4dd487edba",
      "parents": [
        "5eab130238adb0adc6100dbba713082c19794dbf"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Wed May 21 15:23:46 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:55 2015 -0400"
      },
      "message": "sched: move no_new_privs into new atomic flags\n\nSince seccomp transitions between threads requires updates to the\nno_new_privs flag to be atomic, the flag must be part of an atomic flag\nset. This moves the nnp flag into a separate task field, and introduces\naccessors.\n\nChange-Id: I479b0a4c5980dd2ad55634d68eec9ffeab8a9271\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\n"
    },
    {
      "commit": "5eab130238adb0adc6100dbba713082c19794dbf",
      "tree": "e4c0af7539ca574904595f40c2344602116b2160",
      "parents": [
        "d7a4f76933fc2be05f2837f46045039c9d187d45"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Wed May 21 15:23:46 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:54 2015 -0400"
      },
      "message": "sched: move no_new_privs into new atomic flags\n\nSince seccomp transitions between threads requires updates to the\nno_new_privs flag to be atomic, the flag must be part of an atomic flag\nset. This moves the nnp flag into a separate task field, and introduces\naccessors.\n\nChange-Id: I4e764b1b1eb5296a3f7e498a89cfdd6624796c87\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\n"
    },
    {
      "commit": "95de3e500c6502922b9e66385f9f0aad23f21128",
      "tree": "dee1daf3c5ecbad2440cd684fcc4292660dbe6c3",
      "parents": [
        "bc4bd0fe1fb5326ed223684cd7da2143238ecdae"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Wed Jun 25 16:08:24 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:52 2015 -0400"
      },
      "message": "seccomp: add \"seccomp\" syscall\n\nThis adds the new \"seccomp\" syscall with both an \"operation\" and \"flags\"\nparameter for future expansion. The third argument is a pointer value,\nused with the SECCOMP_SET_MODE_FILTER operation. Currently, flags must\nbe 0. This is functionally equivalent to prctl(PR_SET_SECCOMP, ...).\n\nIn addition to the TSYNC flag later in this patch series, there is a\nnon-zero chance that this syscall could be used for configuring a fixed\nargument area for seccomp-tracer-aware processes to pass syscall arguments\nin the future. Hence, the use of \"seccomp\" not simply \"seccomp_add_filter\"\nfor this syscall. Additionally, this syscall uses operation, flags,\nand user pointer for arguments because strictly passing arguments via\na user pointer would mean seccomp itself would be unable to trivially\nfilter the seccomp syscall itself.\n\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nReviewed-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Andy Lutomirski \u003cluto@amacapital.net\u003e\n\nConflicts:\n\tarch/x86/syscalls/syscall_32.tbl\n\tarch/x86/syscalls/syscall_64.tbl\n\tinclude/linux/syscalls.h\n\tinclude/uapi/asm-generic/unistd.h\n\tinclude/uapi/linux/seccomp.h\n\tkernel/seccomp.c\n\tkernel/sys_ni.c\n"
    },
    {
      "commit": "4ca6e672b116c412a4a6a39bc9610ffe2e4d0f9b",
      "tree": "a3074771f4abc14aef6baeb2a942615a32cc8773",
      "parents": [
        "695370290bc18dbd678f1c06f372c8351a6333f2"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Thu Feb 09 12:08:39 2012 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:46 2015 -0400"
      },
      "message": "ptrace,seccomp: Add PTRACE_SECCOMP support\n\nThis change adds support for a new ptrace option, PTRACE_O_TRACESECCOMP,\nand a new return value for seccomp BPF programs, SECCOMP_RET_TRACE.\n\nWhen a tracer specifies the PTRACE_O_TRACESECCOMP ptrace option, the\ntracer will be notified, via PTRACE_EVENT_SECCOMP, for any syscall that\nresults in a BPF program returning SECCOMP_RET_TRACE.  The 16-bit\nSECCOMP_RET_DATA mask of the BPF program return value will be passed as\nthe ptrace_message and may be retrieved using PTRACE_GETEVENTMSG.\n\nIf the subordinate process is not using seccomp filter, then no\nsystem call notifications will occur even if the option is specified.\n\nIf there is no tracer with PTRACE_O_TRACESECCOMP when SECCOMP_RET_TRACE\nis returned, the system call will not be executed and an -ENOSYS errno\nwill be returned to userspace.\n\nThis change adds a dependency on the system call slow path.  Any future\nefforts to use the system call fast path for seccomp filter will need to\naddress this restriction.\n\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: - rebase\n     - comment fatal_signal check\n     - acked-by\n     - drop secure_computing_int comment\nv17: - ...\nv16: - update PT_TRACE_MASK to 0xbf4 so that STOP isn\u0027t clear on SETOPTIONS call (indan@nul.nu)\n       [note PT_TRACE_MASK disappears in linux-next]\nv15: - add audit support for non-zero return codes\n     - clean up style (indan@nul.nu)\nv14: - rebase/nochanges\nv13: - rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\n       (Brings back a change to ptrace.c and the masks.)\nv12: - rebase to linux-next\n     - use ptrace_event and update arch/Kconfig to mention slow-path dependency\n     - drop all tracehook changes and inclusion (oleg@redhat.com)\nv11: - invert the logic to just make it a PTRACE_SYSCALL accelerator\n       (indan@nul.nu)\nv10: - moved to PTRACE_O_SECCOMP / PT_TRACE_SECCOMP\nv9:  - n/a\nv8:  - guarded PTRACE_SECCOMP use with an ifdef\nv7:  - introduced\n"
    },
    {
      "commit": "695370290bc18dbd678f1c06f372c8351a6333f2",
      "tree": "97bdeb658f81b1d6562fc9b9347608e5d478e4bb",
      "parents": [
        "15f81b8475370ab2a9642e1980ca0934c32c0e6a"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Thu Feb 09 12:01:37 2012 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:45 2015 -0400"
      },
      "message": "seccomp: Add SECCOMP_RET_TRAP\n\nAdds a new return value to seccomp filters that triggers a SIGSYS to be\ndelivered with the new SYS_SECCOMP si_code.\n\nThis allows in-process system call emulation, including just specifying\nan errno or cleanly dumping core, rather than just dying.\n\nSuggested-by: Markus Gutschke \u003cmarkus@chromium.org\u003e\nSuggested-by: Julien Tinnes \u003cjln@chromium.org\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: - acked-by, rebase\n     - don\u0027t mention secure_computing_int() anymore\nv15: - use audit_seccomp/skip\n     - pad out error spacing; clean up switch (indan@nul.nu)\nv14: - n/a\nv13: - rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\nv12: - rebase on to linux-next\nv11: - clarify the comment (indan@nul.nu)\n     - s/sigtrap/sigsys\nv10: - use SIGSYS, syscall_get_arch, updates arch/Kconfig\n       note suggested-by (though original suggestion had other behaviors)\nv9:  - changes to SIGILL\nv8:  - clean up based on changes to dependent patches\nv7:  - introduction\n"
    },
    {
      "commit": "15f81b8475370ab2a9642e1980ca0934c32c0e6a",
      "tree": "da466cf96a9be687fd64a4166f357a4787feb1fc",
      "parents": [
        "43ec8251ea13acdeffe1fdb6313cf9cde9818d48"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Fri Feb 17 11:50:27 2012 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:45 2015 -0400"
      },
      "message": "signal, x86: add SIGSYS info and make it synchronous.\n\nThis change enables SIGSYS, defines _sigfields._sigsys, and adds\nx86 (compat) arch support.  _sigsys defines fields which allow\na signal handler to receive the triggering system call number,\nthe relevant AUDIT_ARCH_* value for that number, and the address\nof the callsite.\n\nSIGSYS is added to the SYNCHRONOUS_MASK because it is desirable for it\nto have setup_frame() called for it. The goal is to ensure that\nucontext_t reflects the machine state from the time-of-syscall and not\nfrom another signal handler.\n\nThe first consumer of SIGSYS would be seccomp filter.  In particular,\na filter program could specify a new return value, SECCOMP_RET_TRAP,\nwhich would result in the system call being denied and the calling\nthread signaled.  This also means that implementing arch-specific\nsupport can be dependent upon HAVE_ARCH_SECCOMP_FILTER.\n\nSuggested-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nReviewed-by: H. Peter Anvin \u003chpa@zytor.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: - added acked by, rebase\nv17: - rebase and reviewed-by addition\nv14: - rebase/nochanges\nv13: - rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\nv12: - reworded changelog (oleg@redhat.com)\nv11: - fix dropped words in the change description\n     - added fallback copy_siginfo support.\n     - added __ARCH_SIGSYS define to allow stepped arch support.\nv10: - first version based on suggestion\n"
    },
    {
      "commit": "43ec8251ea13acdeffe1fdb6313cf9cde9818d48",
      "tree": "b08cae45ad682048a6b597a68b5b24307be824d7",
      "parents": [
        "88b54e7859e88c3377510daa86a31802cda4f574"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Wed Feb 15 20:45:54 2012 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:44 2015 -0400"
      },
      "message": "seccomp: add SECCOMP_RET_ERRNO\n\nThis change adds the SECCOMP_RET_ERRNO as a valid return value from a\nseccomp filter.  Additionally, it makes the first use of the lower\n16-bits for storing a filter-supplied errno.  16-bits is more than\nenough for the errno-base.h calls.\n\nReturning errors instead of immediately terminating processes that\nviolate seccomp policy allow for broader use of this functionality\nfor kernel attack surface reduction.  For example, a linux container\ncould maintain a whitelist of pre-existing system calls but drop\nall new ones with errnos.  This would keep a logically static attack\nsurface while providing errnos that may allow for graceful failure\nwithout the downside of do_exit() on a bad call.\n\nThis change also changes the signature of __secure_computing.  It\nappears the only direct caller is the arm entry code and it clobbers\nany possible return value (register) immediately.\n\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nReviewed-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: - fix up comments and rebase\n     - fix bad var name which was fixed in later revs\n     - remove _int() and just change the __secure_computing signature\nv16-v17: ...\nv15: - use audit_seccomp and add a skip label. (eparis@redhat.com)\n     - clean up and pad out return codes (indan@nul.nu)\nv14: - no change/rebase\nv13: - rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\nv12: - move to WARN_ON if filter is NULL\n       (oleg@redhat.com, luto@mit.edu, keescook@chromium.org)\n     - return immediately for filter\u003d\u003dNULL (keescook@chromium.org)\n     - change evaluation to only compare the ACTION so that layered\n       errnos don\u0027t result in the lowest one being returned.\n       (keeschook@chromium.org)\nv11: - check for NULL filter (keescook@chromium.org)\nv10: - change loaders to fn\n v9: - n/a\n v8: - update Kconfig to note new need for syscall_set_return_value.\n     - reordered such that TRAP behavior follows on later.\n     - made the for loop a little less indent-y\n v7: - introduced\n"
    },
    {
      "commit": "88b54e7859e88c3377510daa86a31802cda4f574",
      "tree": "b4152eae2d69189c54d5fd9b9db687c4bbbc8933",
      "parents": [
        "980e920cbbb90c83e50f9287bd4dba5bd31f189a"
      ],
      "author": {
        "name": "Kees Cook",
        "email": "keescook@chromium.org",
        "time": "Sun Feb 26 11:56:12 2012 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:43 2015 -0400"
      },
      "message": "seccomp: remove duplicated failure logging\n\nThis consolidates the seccomp filter error logging path and adds more\ndetails to the audit log.\n\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nSigned-off-by: Kees Cook \u003ckeescook@chromium.org\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: make compat\u003d permanent in the record\nv15: added a return code to the audit_seccomp path by wad@chromium.org\n     (suggested by eparis@redhat.com)\nv*: original by keescook@chromium.org\n"
    },
    {
      "commit": "980e920cbbb90c83e50f9287bd4dba5bd31f189a",
      "tree": "fed0f3a9f7c0c6c9ea50823325cdbd51a7ade592",
      "parents": [
        "807936ec50ca1e4daab2daab94db3d5b2e02da9c"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Thu Feb 09 11:50:58 2012 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:42 2015 -0400"
      },
      "message": "seccomp: add system call filtering using BPF\n\n[This patch depends on luto@mit.edu\u0027s no_new_privs patch:\n   https://lkml.org/lkml/2012/1/30/264\n The whole series including Andrew\u0027s patches can be found here:\n   https://github.com/redpig/linux/tree/seccomp\n Complete diff here:\n   https://github.com/redpig/linux/compare/1dc65fed...seccomp\n]\n\nThis patch adds support for seccomp mode 2.  Mode 2 introduces the\nability for unprivileged processes to install system call filtering\npolicy expressed in terms of a Berkeley Packet Filter (BPF) program.\nThis program will be evaluated in the kernel for each system call\nthe task makes and computes a result based on data in the format\nof struct seccomp_data.\n\nA filter program may be installed by calling:\n  struct sock_fprog fprog \u003d { ... };\n  ...\n  prctl(PR_SET_SECCOMP, SECCOMP_MODE_FILTER, \u0026fprog);\n\nThe return value of the filter program determines if the system call is\nallowed to proceed or denied.  If the first filter program installed\nallows prctl(2) calls, then the above call may be made repeatedly\nby a task to further reduce its access to the kernel.  All attached\nprograms must be evaluated before a system call will be allowed to\nproceed.\n\nFilter programs will be inherited across fork/clone and execve.\nHowever, if the task attaching the filter is unprivileged\n(!CAP_SYS_ADMIN) the no_new_privs bit will be set on the task.  This\nensures that unprivileged tasks cannot attach filters that affect\nprivileged tasks (e.g., setuid binary).\n\nThere are a number of benefits to this approach. A few of which are\nas follows:\n- BPF has been exposed to userland for a long time\n- BPF optimization (and JIT\u0027ing) are well understood\n- Userland already knows its ABI: system call numbers and desired\n  arguments\n- No time-of-check-time-of-use vulnerable data accesses are possible.\n- system call arguments are loaded on access only to minimize copying\n  required for system call policy decisions.\n\nMode 2 support is restricted to architectures that enable\nHAVE_ARCH_SECCOMP_FILTER.  In this patch, the primary dependency is on\nsyscall_get_arguments().  The full desired scope of this feature will\nadd a few minor additional requirements expressed later in this series.\nBased on discussion, SECCOMP_RET_ERRNO and SECCOMP_RET_TRACE seem to be\nthe desired additional functionality.\n\nNo architectures are enabled in this patch.\n\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nReviewed-by: Indan Zupancic \u003cindan@nul.nu\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: - rebase to v3.4-rc2\n     - s/chk/check/ (akpm@linux-foundation.org,jmorris@namei.org)\n     - allocate with GFP_KERNEL|__GFP_NOWARN (indan@nul.nu)\n     - add a comment for get_u32 regarding endianness (akpm@)\n     - fix other typos, style mistakes (akpm@)\n     - added acked-by\nv17: - properly guard seccomp filter needed headers (leann@ubuntu.com)\n     - tighten return mask to 0x7fff0000\nv16: - no change\nv15: - add a 4 instr penalty when counting a path to account for seccomp_filter\n       size (indan@nul.nu)\n     - drop the max insns to 256KB (indan@nul.nu)\n     - return ENOMEM if the max insns limit has been hit (indan@nul.nu)\n     - move IP checks after args (indan@nul.nu)\n     - drop !user_filter check (indan@nul.nu)\n     - only allow explicit bpf codes (indan@nul.nu)\n     - exit_code -\u003e exit_sig\nv14: - put/get_seccomp_filter takes struct task_struct\n       (indan@nul.nu,keescook@chromium.org)\n     - adds seccomp_chk_filter and drops general bpf_run/chk_filter user\n     - add seccomp_bpf_load for use by net/core/filter.c\n     - lower max per-process/per-hierarchy: 1MB\n     - moved nnp/capability check prior to allocation\n       (all of the above: indan@nul.nu)\nv13: - rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\nv12: - added a maximum instruction count per path (indan@nul.nu,oleg@redhat.com)\n     - removed copy_seccomp (keescook@chromium.org,indan@nul.nu)\n     - reworded the prctl_set_seccomp comment (indan@nul.nu)\nv11: - reorder struct seccomp_data to allow future args expansion (hpa@zytor.com)\n     - style clean up, @compat dropped, compat_sock_fprog32 (indan@nul.nu)\n     - do_exit(SIGSYS) (keescook@chromium.org, luto@mit.edu)\n     - pare down Kconfig doc reference.\n     - extra comment clean up\nv10: - seccomp_data has changed again to be more aesthetically pleasing\n       (hpa@zytor.com)\n     - calling convention is noted in a new u32 field using syscall_get_arch.\n       This allows for cross-calling convention tasks to use seccomp filters.\n       (hpa@zytor.com)\n     - lots of clean up (thanks, Indan!)\n v9: - n/a\n v8: - use bpf_chk_filter, bpf_run_filter. update load_fns\n     - Lots of fixes courtesy of indan@nul.nu:\n     -- fix up load behavior, compat fixups, and merge alloc code,\n     -- renamed pc and dropped __packed, use bool compat.\n     -- Added a hidden CONFIG_SECCOMP_FILTER to synthesize non-arch\n        dependencies\n v7:  (massive overhaul thanks to Indan, others)\n     - added CONFIG_HAVE_ARCH_SECCOMP_FILTER\n     - merged into seccomp.c\n     - minimal seccomp_filter.h\n     - no config option (part of seccomp)\n     - no new prctl\n     - doesn\u0027t break seccomp on systems without asm/syscall.h\n       (works but arg access always fails)\n     - dropped seccomp_init_task, extra free functions, ...\n     - dropped the no-asm/syscall.h code paths\n     - merges with network sk_run_filter and sk_chk_filter\n v6: - fix memory leak on attach compat check failure\n     - require no_new_privs || CAP_SYS_ADMIN prior to filter\n       installation. (luto@mit.edu)\n     - s/seccomp_struct_/seccomp_/ for macros/functions (amwang@redhat.com)\n     - cleaned up Kconfig (amwang@redhat.com)\n     - on block, note if the call was compat (so the # means something)\n v5: - uses syscall_get_arguments\n       (indan@nul.nu,oleg@redhat.com, mcgrathr@chromium.org)\n      - uses union-based arg storage with hi/lo struct to\n        handle endianness.  Compromises between the two alternate\n        proposals to minimize extra arg shuffling and account for\n        endianness assuming userspace uses offsetof().\n        (mcgrathr@chromium.org, indan@nul.nu)\n      - update Kconfig description\n      - add include/seccomp_filter.h and add its installation\n      - (naive) on-demand syscall argument loading\n      - drop seccomp_t (eparis@redhat.com)\n v4:  - adjusted prctl to make room for PR_[SG]ET_NO_NEW_PRIVS\n      - now uses current-\u003eno_new_privs\n        (luto@mit.edu,torvalds@linux-foundation.com)\n      - assign names to seccomp modes (rdunlap@xenotime.net)\n      - fix style issues (rdunlap@xenotime.net)\n      - reworded Kconfig entry (rdunlap@xenotime.net)\n v3:  - macros to inline (oleg@redhat.com)\n      - init_task behavior fixed (oleg@redhat.com)\n      - drop creator entry and extra NULL check (oleg@redhat.com)\n      - alloc returns -EINVAL on bad sizing (serge.hallyn@canonical.com)\n      - adds tentative use of \"always_unprivileged\" as per\n        torvalds@linux-foundation.org and luto@mit.edu\n v2:  - (patch 2 only)\n"
    },
    {
      "commit": "807936ec50ca1e4daab2daab94db3d5b2e02da9c",
      "tree": "56399c5141d74df9d4313a83c4bd9671e3e73701",
      "parents": [
        "2fb2c1442ff99946dfcd07bc5ce19ffd3cc4582a"
      ],
      "author": {
        "name": "Will Drewry",
        "email": "wad@chromium.org",
        "time": "Fri Jan 13 14:40:01 2012 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:41 2015 -0400"
      },
      "message": "seccomp: kill the seccomp_t typedef\n\nReplaces the seccomp_t typedef with struct seccomp to match modern\nkernel style.\n\nSigned-off-by: Will Drewry \u003cwad@chromium.org\u003e\nReviewed-by: James Morris \u003cjmorris@namei.org\u003e\nAcked-by: Serge Hallyn \u003cserge.hallyn@canonical.com\u003e\nAcked-by: Eric Paris \u003ceparis@redhat.com\u003e\n\nv18: rebase\n...\nv14: rebase/nochanges\nv13: rebase on to 88ebdda6159ffc15699f204c33feb3e431bf9bdc\nv12: rebase on to linux-next\nv8-v11: no changes\nv7: struct seccomp_struct -\u003e struct seccomp\nv6: original inclusion in this series.\n"
    },
    {
      "commit": "3d07cb9ac5453d4ed0685c4b9b6478dcf84444b4",
      "tree": "0305f0b2ebad4ed2238edbb2c3af2e5db42d932f",
      "parents": [
        "c36b867e5b9747a027e3ef633ab2b85f0cda90a2"
      ],
      "author": {
        "name": "Flemmard",
        "email": "flemmard@gmail.com",
        "time": "Wed Oct 23 18:02:07 2013 +0200"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:33 2015 -0400"
      },
      "message": "gpio_event: add driver\n"
    },
    {
      "commit": "c36b867e5b9747a027e3ef633ab2b85f0cda90a2",
      "tree": "542a91891748fd4058fd900592002393f7de7cb7",
      "parents": [
        "1e1978e0f7a002254374e08bf79bb9c1f50ccf3e"
      ],
      "author": {
        "name": "Flemmard",
        "email": "flemmard@gmail.com",
        "time": "Wed Oct 23 17:43:54 2013 +0200"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:32 2015 -0400"
      },
      "message": "crucial_oj: add oj driver and modifications needed in gpio_input/event/matrix\n"
    },
    {
      "commit": "68cb45a6c830d9647faf3d360bc9f855fe2b86e4",
      "tree": "7ec73d78ad459ee3bc324857096c42b8567561e3",
      "parents": [
        "91945fdbfa73c9830e399c61f353aba35a8fcdf6"
      ],
      "author": {
        "name": "Ard Biesheuvel",
        "email": "ard.biesheuvel@linaro.org",
        "time": "Fri Sep 20 09:55:40 2013 +0200"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:25 2015 -0400"
      },
      "message": "crypto: create generic version of ablk_helper\n\nCreate a generic version of ablk_helper so it can be reused\nby other architectures.\n\nAcked-by: Jussi Kivilinna \u003cjussi.kivilinna@iki.fi\u003e\nSigned-off-by: Ard Biesheuvel \u003card.biesheuvel@linaro.org\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n\nConflicts:\n\tcrypto/Kconfig\n\tcrypto/Makefile\n\nChange-Id: I01a0d1192383c9a0287590a2cef1424e4675c531\n"
    },
    {
      "commit": "4d54158222b62260fb6867c1ae5808e6e88c06da",
      "tree": "3862a304c29c6b47e05e2fec8da27ef3fe59dc86",
      "parents": [
        "a14cd335658c2f5b826a65a9b97068b1adcebd03"
      ],
      "author": {
        "name": "Flemmard",
        "email": "flemmard@gmail.com",
        "time": "Fri Dec 20 11:00:09 2013 +0100"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:20 2015 -0400"
      },
      "message": "fs: add FUSE_SD support\n"
    },
    {
      "commit": "19c8b9f6360993efc4d73fa69f50b93b67143410",
      "tree": "1fdc2198b0756c8483917289948d0f4371dd3918",
      "parents": [
        "a2cb4dd52bf9ba0ecf523ddf9142197d5057bc4f"
      ],
      "author": {
        "name": "Dan Pasanen",
        "email": "dan.pasanen@gmail.com",
        "time": "Sat Apr 11 21:02:57 2015 -0500"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:16 2015 -0400"
      },
      "message": "sunrpc: fix warnings when building with gcc 4.9\n\nChange-Id: I18543d821dbd08306656237b9b0a00e84d36b7e7\n"
    },
    {
      "commit": "139bf4fd7a8a8d70450be8058e7c34f6d7a6e77f",
      "tree": "b05326a349ed7e866f84835fe27165873c507425",
      "parents": [
        "e13c80fd04b8d598c9847fb2f0df45f83285b117"
      ],
      "author": {
        "name": "Erik Kline",
        "email": "ek@google.com",
        "time": "Tue Oct 28 18:11:14 2014 +0900"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:12 2015 -0400"
      },
      "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\nChange-Id: I440a9b8c788db6767d191bbebfd2dff481aa9e0d\n"
    },
    {
      "commit": "647baad3f0d3b0748eebd04025e79080a327d6ea",
      "tree": "0180149b12961db253f1a0f5c45ee0a8f70ad386",
      "parents": [
        "b58ed70c3fbcb80600ec28efb4b80870db7294e3"
      ],
      "author": {
        "name": "Kirill A. Shutemov",
        "email": "kirill.shutemov@linux.intel.com",
        "time": "Fri Dec 20 15:10:03 2013 +0200"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:10 2015 -0400"
      },
      "message": "mm: Fix NULL pointer dereference in madvise(MADV_WILLNEED) support\n\nSasha Levin found a NULL pointer dereference that is due to a missing\npage table lock, which in turn is due to the pmd entry in question being\na transparent huge-table entry.\n\nThe code - introduced in commit 1998cc048901 (\"mm: make\nmadvise(MADV_WILLNEED) support swap file prefetch\") - correctly checks\nfor this situation using pmd_none_or_trans_huge_or_clear_bad(), but it\nturns out that that function doesn\u0027t work correctly.\n\npmd_none_or_trans_huge_or_clear_bad() expected that pmd_bad() would\ntrigger if the transparent hugepage bit was set, but it doesn\u0027t do that\nif pmd_numa() is also set. Note that the NUMA bit only gets set on real\nNUMA machines, so people trying to reproduce this on most normal\ndevelopment systems would never actually trigger this.\n\nFix it by removing the very subtle (and subtly incorrect) expectation,\nand instead just checking pmd_trans_huge() explicitly.\n\nReported-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nAcked-by: Andrea Arcangeli \u003caarcange@redhat.com\u003e\n[ Additionally remove the now stale test for pmd_trans_huge() inside the\n  pmd_bad() case - Linus ]\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n\nChange-Id: I3f3763f236ef102de735297cd175cf514d40d28f\n"
    },
    {
      "commit": "91445794132a39c76c5c3fa39470a92613e3d607",
      "tree": "0e3c91c5429c7c39f36a7c00836e41d33201f3aa",
      "parents": [
        "5b4b3bba5a3f81291d51666bd412a471990a1d7a"
      ],
      "author": {
        "name": "Jussi Kivilinna",
        "email": "jussi.kivilinna@mbnet.fi",
        "time": "Wed Jul 11 14:20:20 2012 +0300"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:03 2015 -0400"
      },
      "message": "crypto: add crypto_[un]register_shashes for [un]registering multiple shash entries at once\n\nAdd crypto_[un]register_shashes() to allow simplifying init/exit code of shash\ncrypto modules that register multiple algorithms.\n\nSigned-off-by: Jussi Kivilinna \u003cjussi.kivilinna@mbnet.fi\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "5b4b3bba5a3f81291d51666bd412a471990a1d7a",
      "tree": "7a8f26905c6908978775fbb2b1eceac039f29ba0",
      "parents": [
        "d7e741aec7588f91cc5909d973df4a7d056779a8"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Tue Mar 26 13:59:25 2013 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:02 2015 -0400"
      },
      "message": "crypto: sha512 - Expose generic sha512 routine to be callable from other modules\n\nOther SHA512 routines may need to use the generic routine when\nFPU is not available.\n\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "d7e741aec7588f91cc5909d973df4a7d056779a8",
      "tree": "fb5503284061431686222409cd722da3c3352d3c",
      "parents": [
        "248cb61f34000b5cb4982c9d50bb6f8e759d17ed"
      ],
      "author": {
        "name": "Tim Chen",
        "email": "tim.c.chen@linux.intel.com",
        "time": "Tue Mar 26 13:58:49 2013 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:04:01 2015 -0400"
      },
      "message": "crypto: sha256 - Expose SHA256 generic routine to be callable externally.\n\nOther SHA256 routine may need to use the generic routine when\nFPU is not available.\n\nSigned-off-by: Tim Chen \u003ctim.c.chen@linux.intel.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\n"
    },
    {
      "commit": "cd5ade278d49db238f6fa1eb50a2c68ce7962a05",
      "tree": "f4fa0ad139828c19e81babdbc0baf876502d7ea8",
      "parents": [
        "c54ef265bae7cf5f36a81a324615f9554b8b7b98"
      ],
      "author": {
        "name": "Ben Hutchings",
        "email": "ben@decadent.org.uk",
        "time": "Thu Oct 30 18:27:17 2014 +0000"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:03:27 2015 -0400"
      },
      "message": "drivers/net, ipv6: Select IPv6 fragment idents for virtio UFO packets\n\ncommit 5188cd44c55db3e92cd9e77a40b5baa7ed4340f7 upstream.\n\nUFO is now disabled on all drivers that work with virtio net headers,\nbut userland may try to send UFO/IPv6 packets anyway.  Instead of\nsending with ID\u003d0, we should select identifiers on their behalf (as we\nused to).\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nFixes: 916e4cf46d02 (\"ipv6: reuse ip6_frag_id from ip6_ufo_append_data\")\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n[bwh: For 3.2, net/ipv6/output_core.c is a completely new file]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "6883d3d717620dba23cc040d6c0f902611a3af4c",
      "tree": "0ed5bc0f9b8c35f6c9d1b8308f641e1be94e2c95",
      "parents": [
        "e69d9b86e3b86e73bb819038bf882648bcfc15f2"
      ],
      "author": {
        "name": "Grant Likely",
        "email": "grant.likely@linaro.org",
        "time": "Mon Nov 03 15:15:35 2014 +0000"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:02:35 2015 -0400"
      },
      "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"
    }
  ],
  "next": "cc9fb2536484a4764c5d9c6ab34db9dc0e1444fc"
}
