)]}'
{
  "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "cc9fb2536484a4764c5d9c6ab34db9dc0e1444fc",
      "tree": "f80cecfa8e257a2f767a784c2c13947442ea8926",
      "parents": [
        "0e69c8b6419ee6a23de6c9d40e2782ad24dc4f59"
      ],
      "author": {
        "name": "Johan Hovold",
        "email": "johan@kernel.org",
        "time": "Mon Aug 25 17:51:26 2014 +0200"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:02:30 2015 -0400"
      },
      "message": "USB: core: add device-qualifier quirk\n\ncommit 2a159389bf5d962359349a76827b2f683276a1c7 upstream.\n\nAdd new quirk for devices that cannot handle requests for the\ndevice_qualifier descriptor.\n\nA USB-2.0 compliant device must respond to requests for the\ndevice_qualifier descriptor (even if it\u0027s with a request error), but at\nleast one device is known to misbehave after such a request.\n\nSuggested-by: Bjørn Mork \u003cbjorn@mork.no\u003e\nSigned-off-by: Johan Hovold \u003cjohan@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "2c5138da1f5fa9c3d6760b2d27f9575240f8d2ba",
      "tree": "1e68d9103294f4ff248b90ad9b9e243557af6251",
      "parents": [
        "78c543f81e483de5993d746e8c0f3d35d02e5bbb"
      ],
      "author": {
        "name": "David Rientjes",
        "email": "rientjes@google.com",
        "time": "Wed Oct 29 14:50:31 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:02:15 2015 -0400"
      },
      "message": "mm, thp: fix collapsing of hugepages on madvise\n\ncommit 6d50e60cd2edb5a57154db5a6f64eef5aa59b751 upstream.\n\nIf an anonymous mapping is not allowed to fault thp memory and then\nmadvise(MADV_HUGEPAGE) is used after fault, khugepaged will never\ncollapse this memory into thp memory.\n\nThis occurs because the madvise(2) handler for thp, hugepage_madvise(),\nclears VM_NOHUGEPAGE on the stack and it isn\u0027t stored in vma-\u003evm_flags\nuntil the final action of madvise_behavior().  This causes the\nkhugepaged_enter_vma_merge() to be a no-op in hugepage_madvise() when\nthe vma had previously had VM_NOHUGEPAGE set.\n\nFix this by passing the correct vma flags to the khugepaged mm slot\nhandler.  There\u0027s no chance khugepaged can run on this vma until after\nmadvise_behavior() returns since we hold mm-\u003emmap_sem.\n\nIt would be possible to clear VM_NOHUGEPAGE directly from vma-\u003evm_flags\nin hugepage_advise(), but I didn\u0027t want to introduce special case\nbehavior into madvise_behavior().  I think it\u0027s best to just let it\nalways set vma-\u003evm_flags itself.\n\nSigned-off-by: David Rientjes \u003crientjes@google.com\u003e\nReported-by: Suleiman Souhlal \u003csuleiman@google.com\u003e\nCc: \"Kirill A. Shutemov\" \u003ckirill.shutemov@linux.intel.com\u003e\nCc: Andrea Arcangeli \u003caarcange@redhat.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "ba0a7f5371dcd9dad0fccf31a47bcd0224307581",
      "tree": "447d1a1062ed46ec3be1dfd6cf9b3ab6ccb1dea1",
      "parents": [
        "e6cb10b981a73a5063da9fe85f722c181c4cecaa"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Mon Oct 20 18:12:32 2014 +0200"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:01:36 2015 -0400"
      },
      "message": "OOM, PM: OOM killed task shouldn\u0027t escape PM suspend\n\ncommit 5695be142e203167e3cb515ef86a88424f3524eb upstream.\n\nPM freezer relies on having all tasks frozen by the time devices are\ngetting frozen so that no task will touch them while they are getting\nfrozen. But OOM killer is allowed to kill an already frozen task in\norder to handle OOM situtation. In order to protect from late wake ups\nOOM killer is disabled after all tasks are frozen. This, however, still\nkeeps a window open when a killed task didn\u0027t manage to die by the time\nfreeze_processes finishes.\n\nReduce the race window by checking all tasks after OOM killer has been\ndisabled. This is still not race free completely unfortunately because\noom_killer_disable cannot stop an already ongoing OOM killer so a task\nmight still wake up from the fridge and get killed without\nfreeze_processes noticing. Full synchronization of OOM and freezer is,\nhowever, too heavy weight for this highly unlikely case.\n\nIntroduce and check oom_kills counter which gets incremented early when\nthe allocator enters __alloc_pages_may_oom path and only check all the\ntasks if the counter changes during the freezing attempt. The counter\nis updated so early to reduce the race window since allocator checked\noom_killer_disabled which is set by PM-freezing code. A false positive\nwill push the PM-freezer into a slow path but that is not a big deal.\n\nChanges since v1\n- push the re-check loop out of freeze_processes into\n  check_frozen_processes and invert the condition to make the code more\n  readable as per Rafael\n\nFixes: f660daac474c6f (oom: thaw threads if oom killed thread is frozen before deferring)\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "e6cb10b981a73a5063da9fe85f722c181c4cecaa",
      "tree": "d6098fbf52bb07655e41fc5d824b150b2617f5ce",
      "parents": [
        "119a6fdb9028a373bebde1a069957944fa142535"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Tue Jan 21 15:49:56 2014 -0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:01:35 2015 -0400"
      },
      "message": "introduce for_each_thread() to replace the buggy while_each_thread()\n\ncommit 0c740d0afc3bff0a097ad03a1c8df92757516f5c upstream.\n\nwhile_each_thread() and next_thread() should die, almost every lockless\nusage is wrong.\n\n1. Unless g \u003d\u003d current, the lockless while_each_thread() is not safe.\n\n   while_each_thread(g, t) can loop forever if g exits, next_thread()\n   can\u0027t reach the unhashed thread in this case. Note that this can\n   happen even if g is the group leader, it can exec.\n\n2. Even if while_each_thread() itself was correct, people often use\n   it wrongly.\n\n   It was never safe to just take rcu_read_lock() and loop unless\n   you verify that pid_alive(g) \u003d\u003d T, even the first next_thread()\n   can point to the already freed/reused memory.\n\nThis patch adds signal_struct-\u003ethread_head and task-\u003ethread_node to\ncreate the normal rcu-safe list with the stable head.  The new\nfor_each_thread(g, t) helper is always safe under rcu_read_lock() as\nlong as this task_struct can\u0027t go away.\n\nNote: of course it is ugly to have both task_struct-\u003ethread_node and the\nold task_struct-\u003ethread_group, we will kill it later, after we change\nthe users of while_each_thread() to use for_each_thread().\n\nPerhaps we can kill it even before we convert all users, we can\nreimplement next_thread(t) using the new thread_head/thread_node.  But\nwe can\u0027t do this right now because this will lead to subtle behavioural\nchanges.  For example, do/while_each_thread() always sees at least one\ntask, while for_each_thread() can do nothing if the whole thread group\nhas died.  Or thread_group_empty(), currently its semantics is not clear\nunless thread_group_leader(p) and we need to audit the callers before we\ncan change it.\n\nSo this patch adds the new interface which has to coexist with the old\none for some time, hopefully the next changes will be more or less\nstraightforward and the old one will go away soon.\n\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nReviewed-by: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nTested-by: Sergey Dyasly \u003cdserrg@gmail.com\u003e\nReviewed-by: Sameer Nanda \u003csnanda@chromium.org\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nCc: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mandeep Singh Baines \u003cmsb@chromium.org\u003e\nCc: \"Ma, Xindong\" \u003cxindong.ma@intel.com\u003e\nCc: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: \"Tu, Xiaobing\" \u003cxiaobing.tu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "9eaad7656f8c84ea3f4837686db729d2507bbe39",
      "tree": "dd4b952cbe74f4bbc30610dee824615563c60d73",
      "parents": [
        "7235bdfd72673ad69d3f7f0908c386c3a6d42850"
      ],
      "author": {
        "name": "Daniel Borkmann",
        "email": "dborkman@redhat.com",
        "time": "Tue Aug 26 23:16:35 2014 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:01:31 2015 -0400"
      },
      "message": "random: add and use memzero_explicit() for clearing data\n\ncommit d4c5efdb97773f59a2b711754ca0953f24516739 upstream.\n\nzatimend has reported that in his environment (3.16/gcc4.8.3/corei7)\nmemset() calls which clear out sensitive data in extract_{buf,entropy,\nentropy_user}() in random driver are being optimized away by gcc.\n\nAdd a helper memzero_explicit() (similarly as explicit_bzero() variants)\nthat can be used in such cases where a variable with sensitive data is\nbeing cleared out in the end. Other use cases might also be in crypto\ncode. [ I have put this into lib/string.c though, as it\u0027s always built-in\nand doesn\u0027t need any dependencies then. ]\n\nFixes kernel bugzilla: 82041\n\nReported-by: zatimend@hotmail.co.uk\nSigned-off-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nAcked-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - another memset() in extract_buf() needs to be converted]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "7235bdfd72673ad69d3f7f0908c386c3a6d42850",
      "tree": "51351709d12431f5861f6763547d59187a289429",
      "parents": [
        "de6af1dd7575f8bbabc7b5942724df6fa00600cb"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.eti.br",
        "time": "Mon Nov 25 22:00:41 2013 -0200"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:01:30 2015 -0400"
      },
      "message": "crypto: more robust crypto_memneq\n\ncommit fe8c8a126806fea4465c43d62a1f9d273a572bf5 upstream.\n\n[Only use the compiler.h portion of this patch, to get the\nOPTIMIZER_HIDE_VAR() macro, which we need for other -stable patches\n- gregkh]\n\nDisabling compiler optimizations can be fragile, since a new\noptimization could be added to -O0 or -Os that breaks the assumptions\nthe code is making.\n\nInstead of disabling compiler optimizations, use a dummy inline assembly\n(based on RELOC_HIDE) to block the problematic kinds of optimization,\nwhile still allowing other optimizations to be applied to the code.\n\nThe dummy inline assembly is added after every OR, and has the\naccumulator variable as its input and output. The compiler is forced to\nassume that the dummy inline assembly could both depend on the\naccumulator variable and change the accumulator variable, so it is\nforced to compute the value correctly before the inline assembly, and\ncannot assume anything about its value after the inline assembly.\n\nThis change should be enough to make crypto_memneq work correctly (with\ndata-independent timing) even if it is inlined at its call sites. That\ncan be done later in a followup patch.\n\nCompile-tested on x86_64.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.eti.br\u003e\nAcked-by: Daniel Borkmann \u003cdborkman@redhat.com\u003e\nSigned-off-by: Herbert Xu \u003cherbert@gondor.apana.org.au\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "fa007b4dae28d58cc841a009bec62451efa5d78a",
      "tree": "af904a46cb2ddd9632594134f6e57404e355853c",
      "parents": [
        "59b09f4c9f06cee923f3376f8bfeb1fc67851e71"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Wed Oct 01 21:49:18 2014 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:01:27 2015 -0400"
      },
      "message": "vfs: fix data corruption when blocksize \u003c pagesize for mmaped data\n\ncommit 90a8020278c1598fafd071736a0846b38510309c upstream.\n\n-\u003epage_mkwrite() is used by filesystems to allocate blocks under a page\nwhich is becoming writeably mmapped in some process\u0027 address space. This\nallows a filesystem to return a page fault if there is not enough space\navailable, user exceeds quota or similar problem happens, rather than\nsilently discarding data later when writepage is called.\n\nHowever VFS fails to call -\u003epage_mkwrite() in all the cases where\nfilesystems need it when blocksize \u003c pagesize. For example when\nblocksize \u003d 1024, pagesize \u003d 4096 the following is problematic:\n  ftruncate(fd, 0);\n  pwrite(fd, buf, 1024, 0);\n  map \u003d mmap(NULL, 1024, PROT_WRITE, MAP_SHARED, fd, 0);\n  map[0] \u003d \u0027a\u0027;       ----\u003e page_mkwrite() for index 0 is called\n  ftruncate(fd, 10000); /* or even pwrite(fd, buf, 1, 10000) */\n  mremap(map, 1024, 10000, 0);\n  map[4095] \u003d \u0027a\u0027;    ----\u003e no page_mkwrite() called\n\nAt the moment -\u003epage_mkwrite() is called, filesystem can allocate only\none block for the page because i_size \u003d\u003d 1024. Otherwise it would create\nblocks beyond i_size which is generally undesirable. But later at\n-\u003ewritepage() time, we also need to store data at offset 4095 but we\ndon\u0027t have block allocated for it.\n\nThis patch introduces a helper function filesystems can use to have\n-\u003epage_mkwrite() called at all the necessary moments.\n\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\n[lizf: Backported to 3.4:\n - adjust context\n - truncate_setsize() already has an oldsize variable]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "5a43acad262da0cd51334ef14fed173aad9a0d5c",
      "tree": "2943b8cb166a0d903395ff710c49f74802a95ba4",
      "parents": [
        "acd8ea3686556a7dee809ac96c2cfaf528b74a69"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "sasha.levin@oracle.com",
        "time": "Mon Oct 13 15:51:05 2014 -0700"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:01:18 2015 -0400"
      },
      "message": "kernel: add support for gcc 5\n\ncommit 71458cfc782eafe4b27656e078d379a34e472adf upstream.\n\nWe\u0027re missing include/linux/compiler-gcc5.h which is required now\nbecause gcc branched off to v5 in trunk.\n\nJust copy the relevant bits out of include/linux/compiler-gcc4.h,\nno new code is added as of now.\n\nThis fixes a build error when using gcc 5.\n\nSigned-off-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "3b9d9efb2c7ee90a276781b3472b02cf1b6085af",
      "tree": "6934a2796165c3978854df2249810b89cdd7d2d2",
      "parents": [
        "dfe765cb978501dec22ed3995f6fe9ff3098095f"
      ],
      "author": {
        "name": "Mike Snitzer",
        "email": "snitzer@redhat.com",
        "time": "Wed Oct 08 18:26:13 2014 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:01:14 2015 -0400"
      },
      "message": "block: fix alignment_offset math that assumes io_min is a power-of-2\n\ncommit b8839b8c55f3fdd60dc36abcda7e0266aff7985c upstream.\n\nThe math in both blk_stack_limits() and queue_limit_alignment_offset()\nassume that a block device\u0027s io_min (aka minimum_io_size) is always a\npower-of-2.  Fix the math such that it works for non-power-of-2 io_min.\n\nThis issue (of alignment_offset !\u003d 0) became apparent when testing\ndm-thinp with a thinp blocksize that matches a RAID6 stripesize of\n1280K.  Commit fdfb4c8c1 (\"dm thin: set minimum_io_size to pool\u0027s data\nblock size\") unlocked the potential for alignment_offset !\u003d 0 due to\nthe dm-thin-pool\u0027s io_min possibly being a non-power-of-2.\n\nSigned-off-by: Mike Snitzer \u003csnitzer@redhat.com\u003e\nAcked-by: Martin K. Petersen \u003cmartin.petersen@oracle.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "6ac7b4608c8408c118da59cd7605d5b5f2869deb",
      "tree": "a2d5197ae7b6e3dc92d05d3ac5c5873029723a30",
      "parents": [
        "c3e786d65d1361dbdd10c369efa1118e8953072e"
      ],
      "author": {
        "name": "Lu Baolu",
        "email": "baolu.lu@linux.intel.com",
        "time": "Fri Sep 19 10:13:50 2014 +0800"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Apr 27 08:00:46 2015 -0400"
      },
      "message": "USB: Add device quirk for ASUS T100 Base Station keyboard\n\ncommit ddbe1fca0bcb87ca8c199ea873a456ca8a948567 upstream.\n\nThis full-speed USB device generates spurious remote wakeup event\nas soon as USB_DEVICE_REMOTE_WAKEUP feature is set. As the result,\nLinux can\u0027t enter system suspend and S0ix power saving modes once\nthis keyboard is used.\n\nThis patch tries to introduce USB_QUIRK_IGNORE_REMOTE_WAKEUP quirk.\nWith this quirk set, wakeup capability will be ignored during\ndevice configure.\n\nThis patch could be back-ported to kernels as old as 2.6.39.\n\nChange-Id: Ie0e37e5cb3a5881c44cd5a543d5e90ef6fe747d2\nSigned-off-by: Lu Baolu \u003cbaolu.lu@linux.intel.com\u003e\nAcked-by: Alan Stern \u003cstern@rowland.harvard.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "243729f3e390bffb1aa2df1aaa5bb75f4068b511",
      "tree": "1229e8490b3711ba00836c9771189e2092a192ed",
      "parents": [
        "35fba952d771f175f86411c410d0dd1168d65058",
        "a8fa520aef7044c3366dc8eaa860624a3140a721"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Apr 01 07:02:12 2015 -0400"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Apr 01 07:02:12 2015 -0400"
      },
      "message": "Merge remote-tracking branch \u0027caf/LA.AF.1.1_rb1.16\u0027 into HEAD\n\nChange-Id: Ie75c99c9d2a4b007c4be935baaebb6b94a8a2ad2\n"
    },
    {
      "commit": "ada9848042a6aeed09e5412c0f54738f185e4b0e",
      "tree": "8aff99ca07619e9d80c618fa63e4f00779d8d018",
      "parents": [
        "094a794532daffefb9e0fd787d800357e7cf2cdb"
      ],
      "author": {
        "name": "David Herrmann",
        "email": "dh.herrmann@gmail.com",
        "time": "Sat Jun 15 15:32:44 2013 +0200"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Mar 04 20:30:41 2015 -0500"
      },
      "message": "input: document gamepad API and add extra keycodes\n\nUntil today all gamepad input drivers report their data differently. It is\nnearly impossible to write applications for more than one device in a\ngeneric way. Therefore, this patch introduces a uniform gamepad API which\nwill be used for all new drivers.\n\nInstead of mapping buttons by their labels, we now map them by position.\nThis allows applications to work with any gamepad regardless of the labels\non the buttons. Furthermore, we standardize the ABS_* codes for analog\ntriggers and sticks.\n\nFor D-Pads the long overdue BTN_DPAD_* codes are introduced. They should\nbe fairly obvious how to use. To avoid confusion, the action buttons now\nhave BTN_EAST/SOUTH/WEST/NORTH aliases.\n\nReported-by: Todd Showalter \u003ctodd@electronjump.com\u003e\nAcked-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nSigned-off-by: David Herrmann \u003cdh.herrmann@gmail.com\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "1299461b625e97177d1f43fc536dfb2dfc9050fd",
      "tree": "25e34744ba621ca0ee9429f36a8ed5d4686adcfa",
      "parents": [
        "10d4fe3d5d9c7fb96cef375b29bfd39fb636d624",
        "8f6a9070cd4f5b4b4947cbc4024dbd695394385d"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Mar 04 13:52:59 2015 -0500"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Mar 04 13:52:59 2015 -0500"
      },
      "message": "Merge remote-tracking branch \u0027cm/cm-12.0\u0027 into lollipop\n"
    },
    {
      "commit": "63c86b4162ba703618da91f8bde9811c2a977b75",
      "tree": "c890d2f9d7fbca8b0b51d34844f9481216a56676",
      "parents": [
        "99adaf289ca1a35a4ff0adcc31294af5582cec7e"
      ],
      "author": {
        "name": "Ananda Kishore",
        "email": "kananda@codeaurora.org",
        "time": "Tue Dec 02 11:24:19 2014 +0530"
      },
      "committer": {
        "name": "Gerrit - the friendly Code Review server",
        "email": "code-review@localhost",
        "time": "Wed Mar 04 05:19:36 2015 -0800"
      },
      "message": "sensors: add the sensors class support\n\nAdd a new sensors sysfs class and put all the sensors\ndevice driver information in sensor class folder.\n\nChange-Id: I141e79aee337d8a63998b5b5a4890b6eb6d1c4e4\nSigned-off-by: Ananda Kishore \u003ckananda@codeaurora.org\u003e\n"
    },
    {
      "commit": "b0e1b91999e3c60b1adf93f7e9c34db980b3e812",
      "tree": "c542ec66a91e69da4abb626bff38184322c67727",
      "parents": [
        "1e83f6864febc1027394ed38e7a24af87a912528",
        "b4d27f2f2e68afea0fc828ba42f41b3efa231e42"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Mon Mar 02 21:12:39 2015 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Mon Mar 02 21:13:53 2015 -0600"
      },
      "message": "Merge remote-tracking branch \u0027cm/cm-12.0\u0027 into HEAD\n\nChange-Id: Ibcea3bd8608b82692494e87b5ff256a254807520\n"
    },
    {
      "commit": "ca0555be8382799538e9b0be5fe30b40f748a25a",
      "tree": "6aab3924f42deefd1aaca8c95a47a0aaf1614c40",
      "parents": [
        "4ddfcbdc464045e8cc317b2d2c1db3e396165b3a",
        "43d096c30db415f1b498757d25301d36c095c23f"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sat Feb 28 01:36:14 2015 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sun Mar 01 17:26:09 2015 -0600"
      },
      "message": "Merge remote-tracking branch \u0027caf/LA.AF.1.1_rb1.12\u0027 into HEAD\n\nChange-Id: I49228476e27022fc78d593550f3481c05e18ecca\n"
    },
    {
      "commit": "28e52bcc584079a16adf1bad6447dca4a51526b2",
      "tree": "ac343e3c64d609cf2ebc0507c0cda93f94b32534",
      "parents": [
        "431e3355f15e9108cd05f8365f37cbe024848ff8"
      ],
      "author": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Feb 25 09:54:51 2015 -0500"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Feb 27 22:39:27 2015 -0600"
      },
      "message": "include: add sensor headers\n\nChange-Id: I453cbc8d74c8635a3212f5fd64701d8998090ea4\n"
    },
    {
      "commit": "715d05f7c9a84f89d00835c7b6c393bf32f45f6a",
      "tree": "95b234f490e6cecc7f31435b8f99b7aa2c786e6f",
      "parents": [
        "e0cea84ef8c3cf1d417c952633d6a4a07c798709"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Mon Jan 19 11:06:13 2015 -0600"
      },
      "committer": {
        "name": "flintman",
        "email": "flintman@flintmancomputers.com",
        "time": "Mon Feb 23 10:53:58 2015 -0500"
      },
      "message": "fs: introduce a generic shutdown ioctl\n\nThis patch introduces a generic ioctl for fs shutdown.\n\nChange-Id: I452ee16b0078a2704b8026962e5bd07b67710c06\n"
    }
  ],
  "next": "e0cea84ef8c3cf1d417c952633d6a4a07c798709"
}
