)]}'
{
  "log": [
    {
      "commit": "aec2ad6261fe2edc98316869ccb9f1a852feb2f9",
      "tree": "f62b093cf7b1eefb62e7aa6a11a5f9662d1d1e4b",
      "parents": [
        "c2e17c5605b2e0ea9d28feef26e8d141cbce2bd1"
      ],
      "author": {
        "name": "Xiaocheng Li",
        "email": "lix@codeaurora.org",
        "time": "Tue Oct 22 18:25:58 2013 +0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:58:39 2017 -0400"
      },
      "message": "rtc: alarm: update power_on alarm setting logic\n\nThe previous power_on alarm value should be checked to avoid\ncancelling the alarm by mistake.\n\nCRs-fixed: 551966\nChange-Id: I4de12265416fab41a9c591d09961c9fef0d25917\nSigned-off-by: Xiaocheng Li \u003clix@codeaurora.org\u003e\n"
    },
    {
      "commit": "7c39800a0e9351e44f13cf8e66906c519e5e9814",
      "tree": "b843fccd57c1b26be453b8cc943261eff7d4dac1",
      "parents": [
        "cedc25dc23a70f20d99c2e9dc148b090358c58b5"
      ],
      "author": {
        "name": "Figo Wang",
        "email": "figow@codeaurora.org",
        "time": "Thu Sep 12 20:41:27 2013 +0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:58:35 2017 -0400"
      },
      "message": "kernel: alarm: add dedicated alarm type for poweroff alarm\n\nNow we use type of RTC_WAKEUP for the poweroff alarm.\nActually lots of other applications also use this type.\nBut these applications never expect the device will\npower on after it has been shut down. So we need to\nadd dedicated alarm type for the Deskclock or similar\napplications.\n\nCRs-fixed: 529674\nChange-Id: I9b7911906446daa1aeb5835478c9837f8ef797f2\nSigned-off-by: Figo Wang \u003cfigow@codeaurora.org\u003e\n"
    },
    {
      "commit": "cedc25dc23a70f20d99c2e9dc148b090358c58b5",
      "tree": "dbeffe6b9b2cb00e24c83ffaf3d8d7fd6073fbef",
      "parents": [
        "d761b89748cd64f049440c57436d09d4f80d0c73"
      ],
      "author": {
        "name": "Ashay Jaiswal",
        "email": "ashayj@codeaurora.org",
        "time": "Fri May 17 15:15:02 2013 +0530"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:58:35 2017 -0400"
      },
      "message": "rtc: alarm: Add power-on alarm feature\n\nAndroid does not support powering up of phone through alarm.\nAdding shutdown hook in alarm driver which will set alarm while phone\nis going down so as to power-up the phone after alarm expiration.\n\nCRs-Fixed: 432312\nChange-Id: I21786d264b93f7c0c660823a0a1a221c1b4df7b2\nSigned-off-by: Ashay Jaiswal \u003cashayj@codeaurora.org\u003e\n"
    },
    {
      "commit": "673630449d9b330b8d2cddbff2362553ad51a8b5",
      "tree": "e3a8d37cba8a5cd97a5a90a644eedb3b4098e48d",
      "parents": [
        "9c7bc23732bb25ed4c4df5668c51d44116d2fba9"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Apr 24 10:57:16 2012 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:58:32 2017 -0400"
      },
      "message": "alarmtimers: Squash upstream changes\n\nstaging: android-alarm: Switch from wakelocks to wakeup sources\n\nIn their current AOSP tree, the Android in-kernel wakelock\ninfrastructure has been reimplemented in terms of wakeup\nsources:\nhttp://git.linaro.org/gitweb?p\u003dpeople/jstultz/android.git;a\u003dcommitdiff;h\u003de9911f4efdc55af703b8b3bb8c839e6f5dd173bb\n\nThe Android alarm driver currently has stubbed out calls\nto wakelock functionality. So this patch simply converts\nthe stubbed out wakelock calls to wakeup source calls, and\nremoves the empty wakelock macros\n\nGreg, would you mind queuing this in staging-next?\n\nCC: Colin Cross \u003cccross@android.com\u003e\nCC: Arve Hjønnevåg \u003carve@android.com\u003e\nCC: Greg KH \u003cgregkh@linuxfoundation.org\u003e\nCC: Android Kernel Team \u003ckernel-team@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nStaging: android: alarm: Rename pr_alarm to alarm_dbg\n\nRename a macro to make it explicit it\u0027s for debugging.\n\nUse %s: __func__ instead of embedding function names.\nCoalesce formats, align arguments.\n\nSigned-off-by: Joe Perches \u003cjoe@perches.com\u003e\nAcked-by: David Rientjes \u003crientjes@google.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nstaging: Android: Fix NULL pointer related warning in alarm-dev.c file\n\nFixes the following sparse warning:\ndrivers/staging/android/alarm-dev.c:259:35: warning: Using plain integer as NULL pointer\n\nCc: Brian Swetland \u003cswetland@google.com\u003e\nSigned-off-by: Sachin Kamat \u003csachin.kamat@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nstaging: android: alarm: remove unnecessary goto statement\n\nSigned-off-by: Devendra Naga \u003cdevendra.aaru@gmail.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nStaging: android: Alarm driver cleanups\n\nLittle cleanups. Enum value ANDROID_ALARM_TYPE_COUNT was treated as\nan alarm type within a switch statement. That condition was unreachable\nthough.\n\nSigned-off-by: Dae S. Kim \u003cdae@velatum.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nstaging: alarm-dev: Drop pre Android 1.0 _OLD ioctls\n\nPer Colin\u0027s comment:\n\"The \"support old userspace code\" comment for those two ioctls has\nbeen there since pre-Android 1.0.  Those apis are not exposed to\nAndroid apps, I don\u0027t see any problem deleting them.\"\n\nThus this patch removes the ANDROID_ALARM_SET_OLD and\nANDROID_ALARM_SET_AND_WAIT_OLD ioctl compatability\nlogic.\n\nChange-Id: I5138aaa3cdbfb758aaef2cc7591cb5340b3640a0\nCc: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\nCc: Arve Hjønnevåg \u003carve@android.com\u003e\nCc: Colin Cross \u003cccross@google.com\u003e\nCc: Android Kernel Team \u003ckernel-team@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nstaging: alarm-dev: Refactor alarm-dev ioctl code in prep for compat_ioctl\n\nCleanup the Android alarm-dev driver\u0027s ioctl code to refactor it\nin preparation for compat_ioctl support.\n\nCc: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\nCc: Arve Hjønnevåg \u003carve@android.com\u003e\nCc: Colin Cross \u003cccross@google.com\u003e\nCc: Android Kernel Team \u003ckernel-team@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nstaging: alarm-dev: Implement compat_ioctl support\n\nImplement compat_ioctl support for the alarm-dev ioctl.\n\nCc: Serban Constantinescu \u003cserban.constantinescu@arm.com\u003e\nCc: Arve Hjønnevåg \u003carve@android.com\u003e\nCc: Colin Cross \u003cccross@google.com\u003e\nCc: Android Kernel Team \u003ckernel-team@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nstaging: alarm-dev: information leak in alarm_ioctl()\n\nSmatch complains that if we pass an invalid clock type then \"ts\" is\nnever set.  We need to check for errors earlier, otherwise we end up\npassing uninitialized stack data to userspace.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nAcked-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nstaging: alarm-dev: information leak in alarm_compat_ioctl()\n\nIf we pass an invalid clock type then \"ts\" is never set.  We need to\ncheck for errors earlier, otherwise we end up passing uninitialized\nstack data to userspace.\n\nReported-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\nrtc: alarm: Add power-on alarm feature\n\nAndroid does not support powering up of phone through alarm.\nAdding shutdown hook in alarm driver which will set alarm while phone\nis going down so as to power-up the phone after alarm expiration.\n\nChange-Id: Ic2611e33ae9c1f8e83f21efdb93e26ac9f9499de\nSigned-off-by: Matthew Qin \u003cyqin@codeaurora.org\u003e\n\nqpnp-rtc: clear alarm register when rtc irq is disabled\n\nThe rtc alarm register should be cleared when the rtc irq is\ndisabled\n\nChange-Id: I97a8bf989ff610093240a6b308a297702da6cb89\nSigned-off-by: Xiaocheng Li \u003clix@codeaurora.org\u003e\nSigned-off-by: Matthew Qin \u003cyqin@codeaurora.org\u003e\n\nalarm : Fix the race conditions in alarm-dev.c\n\nThere will be race conditions between alarm set and alarm clear if\nset_power_on_alarm is out of the lock.But set_power_on_alarm can\u0027t\nbe put into spin_lock. So add it into mutex_lock.\n\nCRs-Fixed: 639115\nChange-Id: I4226a95e499211c0d50ff7ce269467a57a410dc7\nSigned-off-by: Mao Jinlong \u003cc_jmao@codeaurora.org\u003e\n\nswitch timerfd_[sg]ettime(2) to fget_light()\n\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n\ntime: Enable alarmtimers\n\nChange-Id: I4d1ea553aa707ab0467e00dea86cedc8f6797b78\n"
    },
    {
      "commit": "1d7ee4deeccf3b320471891cc8217dc4be10f1ce",
      "tree": "0ca463d3ea2f13bfbcdeb77b3732da7070f82543",
      "parents": [
        "024d6d11c2732745308cbfcd2c1f688487fcc8dd"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Tue May 07 20:43:29 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:58:31 2017 -0400"
      },
      "message": "alarmtimer: add alarm_expires_remaining\n\nSimilar to hrtimer_expires_remaining, return the amount of time\nremaining until alarm expiry.\n\nChange-Id: I8c57512d619ac66bcdaf2d9ccdf0d7f74af2ff66\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "024d6d11c2732745308cbfcd2c1f688487fcc8dd",
      "tree": "91239141b758fe0775d0659ade1498fa1e95fd63",
      "parents": [
        "4d3290222287d04bdc0381bde0d321c0405fe1d8"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Fri May 10 17:41:06 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:58:31 2017 -0400"
      },
      "message": "alarmtimer: add alarm_start_relative\n\nStart an alarmtimer with an expires time relative to the current time\nof the associated clock.\n\nChange-Id: Ifb5309a15e0d502bb4d0209ca5510a56ee7fa88c\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "4d3290222287d04bdc0381bde0d321c0405fe1d8",
      "tree": "8f9c48fdb98662007580f44eb7657380dee376b7",
      "parents": [
        "9604aa393e1faf08e034d4381893b52a342e4355"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Fri May 10 17:10:42 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:58:30 2017 -0400"
      },
      "message": "alarmtimer: add alarm_forward_now\n\nSimilar to hrtimer_forward_now, move the expires time forward to an\ninterval from the current time of the associated clock.\n\nChange-Id: I73fed223321167507b6eddcb7a57d235ffcfc1be\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "9604aa393e1faf08e034d4381893b52a342e4355",
      "tree": "4d9eb9ce2315901da8d8ea54d425d59797b95de9",
      "parents": [
        "e6a2d71f2fd88aaeadfcc7d5abfeabfdde954479"
      ],
      "author": {
        "name": "Todd Poynor",
        "email": "toddpoynor@google.com",
        "time": "Wed May 08 15:49:18 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:58:30 2017 -0400"
      },
      "message": "alarmtimer: add alarm_restart\n\nAnalogous to hrtimer_restart, restart an alarmtimer after the expires\ntime has already been updated (as with alarm_forward).\n\nChange-Id: Ia2613bbb467404cb2c35c11efa772bc56294963a\nSigned-off-by: Todd Poynor \u003ctoddpoynor@google.com\u003e\n"
    },
    {
      "commit": "e6a2d71f2fd88aaeadfcc7d5abfeabfdde954479",
      "tree": "e855c40bdcd4cb91c052f97ee09b14d592f45a72",
      "parents": [
        "2b4666d0b3725571719245abb3d6de292c814440"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Sep 17 23:12:53 2012 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:58:29 2017 -0400"
      },
      "message": "alarmtimer: Use hrtimer per-alarm instead of per-base\n\nArve Hjønnevåg reported numerous crashes from the\n\"BUG_ON(timer-\u003estate !\u003d HRTIMER_STATE_CALLBACK)\" check\nin __run_hrtimer after it called alarmtimer_fired.\n\nIt ends up the alarmtimer code was not properly handling\npossible failures of hrtimer_try_to_cancel, and because\nthese faulres occur when the underlying base hrtimer is\nbeing run, this limits the ability to properly handle\nmodifications to any alarmtimers on that base.\n\nBecause much of the logic duplicates the hrtimer logic,\nit seems that we might as well have a per-alarmtimer\nhrtimer, and avoid the extra complextity of trying to\nmultiplex many alarmtimers off of one hrtimer.\n\nThus this patch moves the hrtimer to the alarm structure\nand simplifies the management logic.\n\nChange-Id: I54b2d718ed1d39598e321eacf88c3335284d4cea\nCc: Arve Hjønnevåg \u003carve@android.com\u003e\nCc: Colin Cross \u003cccross@google.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Arve Hjønnevåg \u003carve@android.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "2bee42a584c84e1e10c819b0dcecae9bb47bb8ff",
      "tree": "778234dfe2e27f3b12e1955445e738ae5a703e52",
      "parents": [
        "d928192dc4d5e3b001411401097903b2091af43d"
      ],
      "author": {
        "name": "Andy Lutomirski",
        "email": "luto@kernel.org",
        "time": "Fri Sep 04 15:42:45 2015 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:58:27 2017 -0400"
      },
      "message": "UPSTREAM: capabilities: ambient capabilities\n\nCredit where credit is due: this idea comes from Christoph Lameter with\na lot of valuable input from Serge Hallyn.  This patch is heavily based\non Christoph\u0027s patch.\n\n\u003d\u003d\u003d\u003d\u003d The status quo \u003d\u003d\u003d\u003d\u003d\n\nOn Linux, there are a number of capabilities defined by the kernel.  To\nperform various privileged tasks, processes can wield capabilities that\nthey hold.\n\nEach task has four capability masks: effective (pE), permitted (pP),\ninheritable (pI), and a bounding set (X).  When the kernel checks for a\ncapability, it checks pE.  The other capability masks serve to modify\nwhat capabilities can be in pE.\n\nAny task can remove capabilities from pE, pP, or pI at any time.  If a\ntask has a capability in pP, it can add that capability to pE and/or pI.\nIf a task has CAP_SETPCAP, then it can add any capability to pI, and it\ncan remove capabilities from X.\n\nTasks are not the only things that can have capabilities; files can also\nhave capabilities.  A file can have no capabilty information at all [1].\nIf a file has capability information, then it has a permitted mask (fP)\nand an inheritable mask (fI) as well as a single effective bit (fE) [2].\nFile capabilities modify the capabilities of tasks that execve(2) them.\n\nA task that successfully calls execve has its capabilities modified for\nthe file ultimately being excecuted (i.e.  the binary itself if that\nbinary is ELF or for the interpreter if the binary is a script.) [3] In\nthe capability evolution rules, for each mask Z, pZ represents the old\nvalue and pZ\u0027 represents the new value.  The rules are:\n\n  pP\u0027 \u003d (X \u0026 fP) | (pI \u0026 fI)\n  pI\u0027 \u003d pI\n  pE\u0027 \u003d (fE ? pP\u0027 : 0)\n  X is unchanged\n\nFor setuid binaries, fP, fI, and fE are modified by a moderately\ncomplicated set of rules that emulate POSIX behavior.  Similarly, if\neuid \u003d\u003d 0 or ruid \u003d\u003d 0, then fP, fI, and fE are modified differently\n(primary, fP and fI usually end up being the full set).  For nonroot\nusers executing binaries with neither setuid nor file caps, fI and fP\nare empty and fE is false.\n\nAs an extra complication, if you execute a process as nonroot and fE is\nset, then the \"secure exec\" rules are in effect: AT_SECURE gets set,\nLD_PRELOAD doesn\u0027t work, etc.\n\nThis is rather messy.  We\u0027ve learned that making any changes is\ndangerous, though: if a new kernel version allows an unprivileged\nprogram to change its security state in a way that persists cross\nexecution of a setuid program or a program with file caps, this\npersistent state is surprisingly likely to allow setuid or file-capped\nprograms to be exploited for privilege escalation.\n\n\u003d\u003d\u003d\u003d\u003d The problem \u003d\u003d\u003d\u003d\u003d\n\nCapability inheritance is basically useless.\n\nIf you aren\u0027t root and you execute an ordinary binary, fI is zero, so\nyour capabilities have no effect whatsoever on pP\u0027.  This means that you\ncan\u0027t usefully execute a helper process or a shell command with elevated\ncapabilities if you aren\u0027t root.\n\nOn current kernels, you can sort of work around this by setting fI to\nthe full set for most or all non-setuid executable files.  This causes\npP\u0027 \u003d pI for nonroot, and inheritance works.  No one does this because\nit\u0027s a PITA and it isn\u0027t even supported on most filesystems.\n\nIf you try this, you\u0027ll discover that every nonroot program ends up with\nsecure exec rules, breaking many things.\n\nThis is a problem that has bitten many people who have tried to use\ncapabilities for anything useful.\n\n\u003d\u003d\u003d\u003d\u003d The proposed change \u003d\u003d\u003d\u003d\u003d\n\nThis patch adds a fifth capability mask called the ambient mask (pA).\npA does what most people expect pI to do.\n\npA obeys the invariant that no bit can ever be set in pA if it is not\nset in both pP and pI.  Dropping a bit from pP or pI drops that bit from\npA.  This ensures that existing programs that try to drop capabilities\nstill do so, with a complication.  Because capability inheritance is so\nbroken, setting KEEPCAPS, using setresuid to switch to nonroot uids, and\nthen calling execve effectively drops capabilities.  Therefore,\nsetresuid from root to nonroot conditionally clears pA unless\nSECBIT_NO_SETUID_FIXUP is set.  Processes that don\u0027t like this can\nre-add bits to pA afterwards.\n\nThe capability evolution rules are changed:\n\n  pA\u0027 \u003d (file caps or setuid or setgid ? 0 : pA)\n  pP\u0027 \u003d (X \u0026 fP) | (pI \u0026 fI) | pA\u0027\n  pI\u0027 \u003d pI\n  pE\u0027 \u003d (fE ? pP\u0027 : pA\u0027)\n  X is unchanged\n\nIf you are nonroot but you have a capability, you can add it to pA.  If\nyou do so, your children get that capability in pA, pP, and pE.  For\nexample, you can set pA \u003d CAP_NET_BIND_SERVICE, and your children can\nautomatically bind low-numbered ports.  Hallelujah!\n\nUnprivileged users can create user namespaces, map themselves to a\nnonzero uid, and create both privileged (relative to their namespace)\nand unprivileged process trees.  This is currently more or less\nimpossible.  Hallelujah!\n\nYou cannot use pA to try to subvert a setuid, setgid, or file-capped\nprogram: if you execute any such program, pA gets cleared and the\nresulting evolution rules are unchanged by this patch.\n\nUsers with nonzero pA are unlikely to unintentionally leak that\ncapability.  If they run programs that try to drop privileges, dropping\nprivileges will still work.\n\nIt\u0027s worth noting that the degree of paranoia in this patch could\npossibly be reduced without causing serious problems.  Specifically, if\nwe allowed pA to persist across executing non-pA-aware setuid binaries\nand across setresuid, then, naively, the only capabilities that could\nleak as a result would be the capabilities in pA, and any attacker\n*already* has those capabilities.  This would make me nervous, though --\nsetuid binaries that tried to privilege-separate might fail to do so,\nand putting CAP_DAC_READ_SEARCH or CAP_DAC_OVERRIDE into pA could have\nunexpected side effects.  (Whether these unexpected side effects would\nbe exploitable is an open question.) I\u0027ve therefore taken the more\nparanoid route.  We can revisit this later.\n\nAn alternative would be to require PR_SET_NO_NEW_PRIVS before setting\nambient capabilities.  I think that this would be annoying and would\nmake granting otherwise unprivileged users minor ambient capabilities\n(CAP_NET_BIND_SERVICE or CAP_NET_RAW for example) much less useful than\nit is with this patch.\n\n\u003d\u003d\u003d\u003d\u003d Footnotes \u003d\u003d\u003d\u003d\u003d\n\n[1] Files that are missing the \"security.capability\" xattr or that have\nunrecognized values for that xattr end up with has_cap set to false.\nThe code that does that appears to be complicated for no good reason.\n\n[2] The libcap capability mask parsers and formatters are dangerously\nmisleading and the documentation is flat-out wrong.  fE is *not* a mask;\nit\u0027s a single bit.  This has probably confused every single person who\nhas tried to use file capabilities.\n\n[3] Linux very confusingly processes both the script and the interpreter\nif applicable, for reasons that elude me.  The results from thinking\nabout a script\u0027s file capabilities and/or setuid bits are mostly\ndiscarded.\n\nPreliminary userspace code is here, but it needs updating:\nhttps://git.kernel.org/cgit/linux/kernel/git/luto/util-linux-playground.git/commit/?h\u003dcap_ambient\u0026id\u003d7f5afbd175d2\n\nHere is a test program that can be used to verify the functionality\n(from Christoph):\n\n/*\n * Test program for the ambient capabilities. This program spawns a shell\n * that allows running processes with a defined set of capabilities.\n *\n * (C) 2015 Christoph Lameter \u003ccl@linux.com\u003e\n * Released under: GPL v3 or later.\n *\n *\n * Compile using:\n *\n *\tgcc -o ambient_test ambient_test.o -lcap-ng\n *\n * This program must have the following capabilities to run properly:\n * Permissions for CAP_NET_RAW, CAP_NET_ADMIN, CAP_SYS_NICE\n *\n * A command to equip the binary with the right caps is:\n *\n *\tsetcap cap_net_raw,cap_net_admin,cap_sys_nice+p ambient_test\n *\n *\n * To get a shell with additional caps that can be inherited by other processes:\n *\n *\t./ambient_test /bin/bash\n *\n *\n * Verifying that it works:\n *\n * From the bash spawed by ambient_test run\n *\n *\tcat /proc/$$/status\n *\n * and have a look at the capabilities.\n */\n\n/*\n * Definitions from the kernel header files. These are going to be removed\n * when the /usr/include files have these defined.\n */\n\nstatic void set_ambient_cap(int cap)\n{\n\tint rc;\n\n\tcapng_get_caps_process();\n\trc \u003d capng_update(CAPNG_ADD, CAPNG_INHERITABLE, cap);\n\tif (rc) {\n\t\tprintf(\"Cannot add inheritable cap\\n\");\n\t\texit(2);\n\t}\n\tcapng_apply(CAPNG_SELECT_CAPS);\n\n\t/* Note the two 0s at the end. Kernel checks for these */\n\tif (prctl(PR_CAP_AMBIENT, PR_CAP_AMBIENT_RAISE, cap, 0, 0)) {\n\t\tperror(\"Cannot set cap\");\n\t\texit(1);\n\t}\n}\n\nint main(int argc, char **argv)\n{\n\tint rc;\n\n\tset_ambient_cap(CAP_NET_RAW);\n\tset_ambient_cap(CAP_NET_ADMIN);\n\tset_ambient_cap(CAP_SYS_NICE);\n\n\tprintf(\"Ambient_test forking shell\\n\");\n\tif (execv(argv[1], argv + 1))\n\t\tperror(\"Cannot exec\");\n\n\treturn 0;\n}\n\nSigned-off-by: Christoph Lameter \u003ccl@linux.com\u003e # Original author\nSigned-off-by: Andy Lutomirski \u003cluto@kernel.org\u003e\nAcked-by: Serge E. Hallyn \u003cserge.hallyn@ubuntu.com\u003e\nAcked-by: Kees Cook \u003ckeescook@chromium.org\u003e\nCc: Jonathan Corbet \u003ccorbet@lwn.net\u003e\nCc: Aaron Jones \u003caaronmdjones@gmail.com\u003e\nCc: Ted Ts\u0027o \u003ctytso@mit.edu\u003e\nCc: Andrew G. Morgan \u003cmorgan@kernel.org\u003e\nCc: Mimi Zohar \u003czohar@linux.vnet.ibm.com\u003e\nCc: Austin S Hemmelgarn \u003cahferroin7@gmail.com\u003e\nCc: Markku Savela \u003cmsa@moth.iki.fi\u003e\nCc: Jarkko Sakkinen \u003cjarkko.sakkinen@linux.intel.com\u003e\nCc: Michael Kerrisk \u003cmtk.manpages@gmail.com\u003e\nCc: James Morris \u003cjames.l.morris@oracle.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n(cherry picked from commit 58319057b7847667f0c9585b9de0e8932b0fdb08)\n\nBug: 31038224\nChange-Id: I88bc5caa782dc6be23dc7e839ff8e11b9a903f8c\nSigned-off-by: Jorge Lucangeli Obes \u003cjorgelo@google.com\u003e\n"
    },
    {
      "commit": "55fd41d337c1b6475b7616e1012273030479a7d5",
      "tree": "89c199d6ff9d14e43c1bef5dc82bd8e7582729bf",
      "parents": [
        "76fbb1d23a7fd3e95fc248ce79355554e00ad065"
      ],
      "author": {
        "name": "Jann Horn",
        "email": "jann@thejh.net",
        "time": "Fri Sep 18 23:41:23 2015 +0200"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:57:10 2017 -0400"
      },
      "message": "BACKPORT: security: fix typo in security_task_prctl\n\nSigned-off-by: Jann Horn \u003cjann@thejh.net\u003e\nReviewed-by: Andy Lutomirski \u003cluto@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n(cherry picked from commit b7f76ea2ef6739ee484a165ffbac98deb855d3d3)\n\nBug: 33340301\nTest: Builds.\nChange-Id: I61e017a565c7f18d71839be907c35c971ea42167\nSigned-off-by: Jorge Lucangeli Obes \u003cjorgelo@google.com\u003e\n"
    },
    {
      "commit": "76fbb1d23a7fd3e95fc248ce79355554e00ad065",
      "tree": "347853136d3171ea7888f1b21a4de3f0b15e1dfc",
      "parents": [
        "80c46722a4787f0c69f588e7d0d21c9a3d9dfafc"
      ],
      "author": {
        "name": "Jerry Zhang",
        "email": "zhangjerry@google.com",
        "time": "Tue Oct 25 11:19:28 2016 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Sep 07 05:56:57 2017 -0400"
      },
      "message": "BACKPORT: Backport ioctl for getting descriptors.\n\nThis is needed for MTP to know if writes are aligned to packet size.\n\nChange-Id: If504511e649d46eb8d52f1fafeda071dddeec263\nSigned-off-by: Jerry Zhang \u003czhangjerry@google.com\u003e\n"
    },
    {
      "commit": "11d7833f5e7848157beada49c6474d125d927dba",
      "tree": "76ea740e0802a4761835e8ffb2a7f9410f15934f",
      "parents": [
        "6e3c746857d1b6a7319e55f89dad5dd717bc6ade"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Tue Apr 25 14:38:45 2017 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sun Jul 16 00:26:11 2017 -0500"
      },
      "message": "block: Add driver to change the I/O scheduler when the screen turns off\n\nThis driver changes the I/O scheduler for a specified request queue to\nNoop when the screen turns off in order to improve power consumption while\nthe screen is off, as well as reduce resume latency when the screen is\nturned back on. After the screen is turned back on, the driver will change\nthe I/O scheduler back to what it originally was after a 10000ms delay.\n\nChange-Id: I4ad16a9df4e5ea33edb6ce2f1e7648acd0bb8534\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\nSigned-off-by: Pranav Vashi \u003cneobuddy89@gmail.com\u003e\n"
    },
    {
      "commit": "6e3c746857d1b6a7319e55f89dad5dd717bc6ade",
      "tree": "c0be902d63f3b5e9c0f5cef7e6630d23e58e5cd2",
      "parents": [
        "49ee54b8dcf7a94c616c27f90d7f4e21f1d8be83"
      ],
      "author": {
        "name": "Inki Dae",
        "email": "inki.dae@samsung.com",
        "time": "Tue May 29 15:07:12 2012 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sun Jul 16 00:26:02 2017 -0500"
      },
      "message": "fbdev: add events for early fb event support\n\nAdd FB_EARLY_EVENT_BLANK and FB_R_EARLY_EVENT_BLANK event mode supports.\nfirst, fb_notifier_call_chain() is called with FB_EARLY_EVENT_BLANK and\nfb_blank() of specific fb driver is called and then\nfb_notifier_call_chain() is called with FB_EVENT_BLANK again at\nfb_blank().  and if fb_blank() was failed then fb_nitifier_call_chain()\nwould be called with FB_R_EARLY_EVENT_BLANK to revert the previous\neffects.\n\nSigned-off-by: Inki Dae \u003cinki.dae@samsung.com\u003e\nSigned-off-by: Kyungmin Park \u003ckyungmin.park@samsung.com\u003e\nCc: Lars-Peter Clausen \u003clars@metafoo.de\u003e\nAcked-by: Florian Tobias Schandinat \u003cFlorianSchandinat@gmx.de\u003e\nCc: Richard Purdie \u003crpurdie@rpsys.net\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "49ee54b8dcf7a94c616c27f90d7f4e21f1d8be83",
      "tree": "510e865859fd3b3aff054644fa2c91eb8f79467a",
      "parents": [
        "4a68c6192e2334c81d08405b45e16ee010b6fce1"
      ],
      "author": {
        "name": "Pranav Vashi",
        "email": "neobuddy89@gmail.com",
        "time": "Sun Mar 20 12:23:13 2016 +0530"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sun Jul 16 00:20:07 2017 -0500"
      },
      "message": "shamu: Add state notifier driver\n\nChange-Id: If72898db089457de5437fdc5829166adf770f0b5\nSigned-off-by: Pranav Vashi \u003cneobuddy89@gmail.com\u003e\n"
    },
    {
      "commit": "003ac04cebb8f9e9bafc8dd95b9d07ca830b226e",
      "tree": "7df0ccba53acc0b6995ad9e3cb9fe145312d4fe0",
      "parents": [
        "55d434ecd83e101ad3634e468f0d41f2916f50b1"
      ],
      "author": {
        "name": "Klaus Ripke",
        "email": "",
        "time": "Sat Nov 12 15:38:25 2011 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sat Jun 17 21:49:20 2017 -0500"
      },
      "message": "sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire\n\nLOAD_FREQ is (5*HZ+1) to avoid high load average when idle:\nhttp://kerneltrap.org/mailarchive/linux-kernel/2007/10/3/328568\n\nI suggest (4*HZ+61) for a better distribution.\n\nWith some seconds based load (like SSL heartbeats)\nand LOAD_FREQ at (5*HZ+1) I see Moire patterns like inverse sawtooth,\nsince 2 or 3 probes hit the jobs (load increases quickly),\nfollowed by several probes missing it.\n\nA 4.61 sec interval gives optimal distribution over when within a\nsecond a probe is taken, as .61 is close to golden ratio phi 1.618...\n(test in http://ripke.com/goldenratio.c).\n\n12*4.61 \u003d 55.32 secs is still close to a minute,\nand 13*4.61\u003d59.93 is even closer than the current 12*5.01\u003d60.12\n(with exponents EXP_x adjusted to a ratio of 13 instead of 12).\n\nChange-Id: Id37424fa2f1dd2b1a80c094627e89f00a4f1e14a\n"
    },
    {
      "commit": "55d434ecd83e101ad3634e468f0d41f2916f50b1",
      "tree": "136464aa3771e3e23facf594682367b691dea741",
      "parents": [
        "fac08d6bcf2c7d5883233b866f3837a794fb4a23"
      ],
      "author": {
        "name": "franciscofranco",
        "email": "franciscofranco.1990@gmail.com",
        "time": "Sat Jan 09 04:08:11 2016 +0000"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sat Jun 17 21:28:08 2017 -0500"
      },
      "message": "ksm: check and skip page, if it is already scanned\n\nOn system like Android where most of the process are forked\nfrom parent w/o execve, KSM can scan same page multiple times\nin one scan cycle. There is no advantage in scanning same page\nmultiple times for merging. During testing with Android, it was\nobserved around 60% pages are skipped for each scan cycle.\n\nChange-Id: I0cf01802f0b4d61fcab92558beb9e1c660dc9a77\nLink: http://lkml.kernel.org/r/CAMrOTPgBtANS_ryRjan0-dTL97U7eRvtf3dCsss\u003dKn+Uk89fuA@mail.gmail.com\nSigned-off-by: Pradeep Sawlani \u003csawlani@amazon.com\u003e\nSigned-off-by: franciscofranco \u003cfranciscofranco.1990@gmail.com\u003e\n"
    },
    {
      "commit": "f24d464cdd054cb4c704ea2702af108aec6436a0",
      "tree": "35bbb9edbe3a50cc0f8a210de56dd81bcb978552",
      "parents": [
        "1dc9175774e2b45fbccf63221593a8b310fb051b"
      ],
      "author": {
        "name": "Chanho Min",
        "email": "chanho.min@lge.com",
        "time": "Mon Jul 08 16:01:49 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 21 12:16:43 2017 -0500"
      },
      "message": "lib: add lz4 compressor module\n\nThis patchset is for supporting LZ4 compression and the crypto API using\nit.\n\nAs shown below, the size of data is a little bit bigger but compressing\nspeed is faster under the enabled unaligned memory access.  We can use\nlz4 de/compression through crypto API as well.  Also, It will be useful\nfor another potential user of lz4 compression.\n\nlz4 Compression Benchmark:\nCompiler: ARM gcc 4.6.4\nARMv7, 1 GHz based board\n   Kernel: linux 3.4\n   Uncompressed data Size: 101 MB\n         Compressed Size  compression Speed\n   LZO   72.1MB\t\t  32.1MB/s, 33.0MB/s(UA)\n   LZ4   75.1MB\t\t  30.4MB/s, 35.9MB/s(UA)\n   LZ4HC 59.8MB\t\t   2.4MB/s,  2.5MB/s(UA)\n- UA: Unaligned memory Access support\n- Latest patch set for LZO applied\n\nThis patch:\n\nAdd support for LZ4 compression in the Linux Kernel.  LZ4 Compression APIs\nfor kernel are based on LZ4 implementation by Yann Collet and were changed\nfor kernel coding style.\n\nLZ4 homepage : http://fastcompression.blogspot.com/p/lz4.html\nLZ4 source repository : http://code.google.com/p/lz4/\nsvn revision : r90\n\nTwo APIs are added:\n\nlz4_compress() support basic lz4 compression whereas lz4hc_compress()\nsupport high compression or CPU performance get lower but compression\nratio get higher.  Also, we require the pre-allocated working memory with\nthe defined size and destination buffer must be allocated with the size of\nlz4_compressbound.\n\n[akpm@linux-foundation.org: make lz4_compresshcctx() static]\nSigned-off-by: Chanho Min \u003cchanho.min@lge.com\u003e\nCc: \"Darrick J. Wong\" \u003cdjwong@us.ibm.com\u003e\nCc: Bob Pearson \u003crpearson@systemfabricworks.com\u003e\nCc: Richard Weinberger \u003crichard@nod.at\u003e\nCc: Herbert Xu \u003cherbert@gondor.hengli.com.au\u003e\nCc: Yann Collet \u003cyann.collet.73@gmail.com\u003e\nCc: Kyungsik Lee \u003ckyungsik.lee@lge.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "ce435e54ea728b47a65ef1813adbbf05ebcee09f",
      "tree": "51e510e3b7643c0b7eb102b6ff68c1ec03373a10",
      "parents": [
        "b48d2bcc9cc20a8b5b1be0c98a5914231e3965b5"
      ],
      "author": {
        "name": "Kyungsik Lee",
        "email": "kyungsik.lee@lge.com",
        "time": "Mon Jul 08 16:01:46 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 21 12:16:42 2017 -0500"
      },
      "message": "lib: add support for LZ4-compressed kernel\n\nAdd support for extracting LZ4-compressed kernel images, as well as\nLZ4-compressed ramdisk images in the kernel boot process.\n\nSigned-off-by: Kyungsik Lee \u003ckyungsik.lee@lge.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Florian Fainelli \u003cflorian@openwrt.org\u003e\nCc: Yann Collet \u003cyann.collet.73@gmail.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b48d2bcc9cc20a8b5b1be0c98a5914231e3965b5",
      "tree": "cf50a8d6f3cd3842abadce86adc32d2215f5973d",
      "parents": [
        "6fc879fa29f2b190468169dec68f323d0f70fbf3"
      ],
      "author": {
        "name": "Kyungsik Lee",
        "email": "kyungsik.lee@lge.com",
        "time": "Mon Jul 08 16:01:45 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Jan 21 12:16:32 2017 -0500"
      },
      "message": "decompressor: add LZ4 decompressor module\n\nAdd support for LZ4 decompression in the Linux Kernel.  LZ4 Decompression\nAPIs for kernel are based on LZ4 implementation by Yann Collet.\n\nBenchmark Results(PATCH v3)\nCompiler: Linaro ARM gcc 4.6.2\n\n1. ARMv7, 1.5GHz based board\n   Kernel: linux 3.4\n   Uncompressed Kernel Size: 14MB\n        Compressed Size  Decompression Speed\n   LZO  6.7MB            20.1MB/s, 25.2MB/s(UA)\n   LZ4  7.3MB            29.1MB/s, 45.6MB/s(UA)\n\n2. ARMv7, 1.7GHz based board\n   Kernel: linux 3.7\n   Uncompressed Kernel Size: 14MB\n        Compressed Size  Decompression Speed\n   LZO  6.0MB            34.1MB/s, 52.2MB/s(UA)\n   LZ4  6.5MB            86.7MB/s\n- UA: Unaligned memory Access support\n- Latest patch set for LZO applied\n\nThis patch set is for adding support for LZ4-compressed Kernel.  LZ4 is a\nvery fast lossless compression algorithm and it also features an extremely\nfast decoder [1].\n\nBut we have five of decompressors already and one question which does\narise, however, is that of where do we stop adding new ones?  This issue\nhad been discussed and came to the conclusion [2].\n\nRussell King said that we should have:\n\n - one decompressor which is the fastest\n - one decompressor for the highest compression ratio\n - one popular decompressor (eg conventional gzip)\n\nIf we have a replacement one for one of these, then it should do exactly\nthat: replace it.\n\nThe benchmark shows that an 8% increase in image size vs a 66% increase\nin decompression speed compared to LZO(which has been known as the\nfastest decompressor in the Kernel).  Therefore the \"fast but may not be\nsmall\" compression title has clearly been taken by LZ4 [3].\n\n[1] http://code.google.com/p/lz4/\n[2] http://thread.gmane.org/gmane.linux.kbuild.devel/9157\n[3] http://thread.gmane.org/gmane.linux.kbuild.devel/9347\n\nLZ4 homepage: http://fastcompression.blogspot.com/p/lz4.html\nLZ4 source repository: http://code.google.com/p/lz4/\n\nSigned-off-by: Kyungsik Lee \u003ckyungsik.lee@lge.com\u003e\nSigned-off-by: Yann Collet \u003cyann.collet.73@gmail.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@zytor.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Russell King \u003crmk@arm.linux.org.uk\u003e\nCc: Borislav Petkov \u003cbp@alien8.de\u003e\nCc: Florian Fainelli \u003cflorian@openwrt.org\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "b58ec441171e5a6c9537c4e483f17b7d556c0578",
      "tree": "70c712e09c2152331df4fb26c61f079561a746b6",
      "parents": [
        "57d071f9b770595458368ba219ba9aaa055901d0"
      ],
      "author": {
        "name": "Cristoforo Cataldo",
        "email": "cristoforo.cataldo@gmail.com",
        "time": "Sat Mar 16 17:55:37 2013 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Tue Dec 27 23:26:39 2016 -0600"
      },
      "message": "mm: Added filesystem dynamic read-ahead (Credits to Chad Gooldman)\n\nConflicts:\n\n\tblock/blk-core.c\n\tinclude/linux/mm.h\n\nChange-Id: I6b61a4945d86e77852a7812846ba126d35b7f6e1\nSigned-off-by: Paul Keith \u003cjavelinanddart@gmail.com\u003e\n"
    },
    {
      "commit": "57d071f9b770595458368ba219ba9aaa055901d0",
      "tree": "9a4de822a5af75ff7bad5ac5d37a74fed5aa4fb4",
      "parents": [
        "a4aa041bfedd6bbbf1cd1a2160a8465e99c1cb71"
      ],
      "author": {
        "name": "Lee Susman",
        "email": "lsusman@codeaurora.org",
        "time": "Tue Oct 08 09:47:59 2013 +0300"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Tue Dec 27 23:25:51 2016 -0600"
      },
      "message": "mm: change max readahead size to 512KB\n\nChange the VM_MAX_READAHEAD value from the default 128KB\nto 512KB. This will allow the readahead window to grow to a maximum size\nof 512KB, which greatly benefits to sequential read throughput.\n\nChange-Id: Ia0780ea4e2a4ae0b6111485b72fb25376dcb1f96\nSigned-off-by: Lee Susman \u003clsusman@codeaurora.org\u003e\n"
    },
    {
      "commit": "e818ba5bb46162d36e2d890df450f8e95017987b",
      "tree": "efe411f1be9baa61574ff87efc40ec770dc54c0d",
      "parents": [
        "7be1c67c5008758eff81eae27c84da6be101e634",
        "2220ac23c3c583321276c85cbfd7f6378abd8f94"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:51:47 2016 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:51:47 2016 -0600"
      },
      "message": "Merge remote-tracking branch \u0027f2fs/linux-3.4.y\u0027 into HEAD\n"
    },
    {
      "commit": "44f84bed57c7459b27a6a674e697c0269a8714c2",
      "tree": "f1d8991f2ad48ad745190e95dcbb05b76a820e59",
      "parents": [
        "908651f4fbf59e4d7d824a6c06d2b430f658865c"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Tue Jul 21 15:17:26 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:18:49 2016 -0600"
      },
      "message": "Fix incorrect conflict resolution in \"vfs: Add setns support for the mount namespace\"\n\nChange-Id: I66152ecae0a178f22c81b1e4836881efbafb7e64\n"
    },
    {
      "commit": "451cd0857bd2d2a494d4473c67b6e9972ba5a244",
      "tree": "bc58d506fca357adfa0b7781414c974de170981f",
      "parents": [
        "c6e4ed211830a58596e20b8d8bf430f465a94b89"
      ],
      "author": {
        "name": "fluxi",
        "email": "linflux@arcor.de",
        "time": "Fri Oct 21 22:57:35 2016 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:17:31 2016 -0600"
      },
      "message": "sdcardfs: Flag files as non-mappable\n\nImplement Samsung\u0027s FMODE_NONMAPPABLE flag from\nsdcardfs version 2.1.4 as we hit a BUG on ext4:\n\n[   49.655037]@0 Kernel BUG at ffffffc0001deeec [verbose debug info unavailable]\n[   49.655045]@0 Internal error: Oops - BUG: 0 [#1] PREEMPT SMP\n[   49.655052]@0 Modules linked in:\n[   49.655061]@0 CPU: 0 PID: 283 Comm: kworker/u8:7 Tainted: G        W      3.18.20-perf-g3be2054-00086-ga8307fb #1\n[   49.655070]@0 Hardware name: Qualcomm Technologies, Inc. MSM 8996 v3 + PMI8996 MTP (DT)\n[   49.655077]@0 Workqueue: writeback bdi_writeback_workfn (flush-8:0)\n[   49.655096]@0 task: ffffffc174ba8b00 ti: ffffffc174bb4000 task.ti: ffffffc174bb4000\n[   49.655108]@0 PC is at mpage_prepare_extent_to_map+0x198/0x218\n[   49.655116]@0 LR is at mpage_prepare_extent_to_map+0x110/0x218\n[   49.655121]@0 pc : [\u003cffffffc0001deeec\u003e] lr : [\u003cffffffc0001dee64\u003e] pstate: 60000145\n[   49.655126]@0 sp : ffffffc174bb7800\n[   49.655130]@0 x29: ffffffc174bb7800 x28: ffffffc174bb7880\n[   49.655140]@0 x27: 000000000000000d x26: ffffffc1245505e8\n[   49.655149]@0 x25: 0000000000000000 x24: 0000000000003400\n[   49.655160]@0 x23: ffffffffffffffff x22: 0000000000000000\n[   49.655172]@0 x21: ffffffc174bb7888 x20: ffffffc174bb79e0\n[   49.655182]@0 x19: ffffffbdc4ee7b80 x18: 0000007f92872000\n[   49.655191]@0 x17: 0000007f959b6424 x16: ffffffc00016d1ac\n[   49.655201]@0 x15: 0000007f9285d158 x14: ffffffc1734796e8\n[   49.655210]@0 x13: ffffffbdc1ffa4c0 x12: ffffffbdc4ee7b80\n[   49.655220]@0 x11: 0000000000000100 x10: 0000000000000000\n[   49.655229]@0 x9 : 0000000000000000 x8 : ffffffc0b444e210\n[   49.655237]@0 x7 : 0000000000000000 x6 : ffffffc0b444e1e0\n[   49.655246]@0 x5 : 0000000000000000 x4 : 0000000000000001\n[   49.655254]@0 x3 : 0000000000000000 x2 : 400000000002003d\n[   49.655263]@0 x1 : ffffffbdc4ee7b80 x0 : 400000000002003d\n[   49.655271]@0\n[   49.656502]@0 Process kworker/u8:7 (pid: 283, stack limit \u003d 0xffffffc174bb4058)\n[   49.656509]@0 Call trace:\n[   49.656514]@0 [\u003cffffffc0001deeec\u003e] mpage_prepare_extent_to_map+0x198/0x218\n[   49.656526]@0 [\u003cffffffc0001e28d0\u003e] ext4_writepages+0x270/0xa58\n[   49.656533]@0 [\u003cffffffc00012982c\u003e] do_writepages+0x24/0x40\n[   49.656541]@0 [\u003cffffffc000180160\u003e] __writeback_single_inode+0x40/0x114\n[   49.656549]@0 [\u003cffffffc000180e50\u003e] writeback_sb_inodes+0x1dc/0x34c\n[   49.656555]@0 [\u003cffffffc00018103c\u003e] __writeback_inodes_wb+0x7c/0xc4\n[   49.656560]@0 [\u003cffffffc000181224\u003e] wb_writeback+0x110/0x1a8\n[   49.656565]@0 [\u003cffffffc000181344\u003e] wb_check_old_data_flush+0x88/0x98\n[   49.656571]@0 [\u003cffffffc00018156c\u003e] bdi_writeback_workfn+0xf4/0x1fc\n[   49.656576]@0 [\u003cffffffc0000b14f8\u003e] process_one_work+0x1e0/0x300\n[   49.656585]@0 [\u003cffffffc0000b1e14\u003e] worker_thread+0x318/0x438\n[   49.656590]@0 [\u003cffffffc0000b5da0\u003e] kthread+0xe0/0xec\n[   49.656598]@0 Code: f9400260 f9400a63 1ad92063 37580040 (e7f001f2)\n[   49.656604]@0 ---[ end trace cbed09f772fd630d ]---\n\nChange-Id: I931da7cb3841db1f130dba298a7d256b6f02d1bc\n"
    },
    {
      "commit": "89648c1dbec95e2049a186237da7d7314885d864",
      "tree": "42961db1f5c1c9a4d3d84814c36cd742b9aa5944",
      "parents": [
        "58aa30ec9adea4760497ac0e4b245e8b40667752"
      ],
      "author": {
        "name": "Oleg Nesterov",
        "email": "oleg@redhat.com",
        "time": "Mon Aug 12 18:14:00 2013 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:12:34 2016 -0600"
      },
      "message": "sched: fix the theoretical signal_wake_up() vs schedule() race\n\ncommit e0acd0a68ec7dbf6b7a81a87a867ebd7ac9b76c4 upstream.\n\nThis is only theoretical, but after try_to_wake_up(p) was changed\nto check p-\u003estate under p-\u003epi_lock the code like\n\n\t__set_current_state(TASK_INTERRUPTIBLE);\n\tschedule();\n\ncan miss a signal. This is the special case of wait-for-condition,\nit relies on try_to_wake_up/schedule interaction and thus it does\nnot need mb() between __set_current_state() and if(signal_pending).\n\nHowever, this __set_current_state() can move into the critical\nsection protected by rq-\u003elock, now that try_to_wake_up() takes\nanother lock we need to ensure that it can\u0027t be reordered with\n\"if (signal_pending(current))\" check inside that section.\n\nThe patch is actually one-liner, it simply adds smp_wmb() before\nspin_lock_irq(rq-\u003elock). This is what try_to_wake_up() already\ndoes by the same reason.\n\nWe turn this wmb() into the new helper, smp_mb__before_spinlock(),\nfor better documentation and to allow the architectures to change\nthe default implementation.\n\nWhile at it, kill smp_mb__after_lock(), it has no callers.\n\nPerhaps we can also add smp_mb__before/after_spinunlock() for\nprepare_to_wait().\n\nChange-Id: Id679afb25581b6c9f30a6957b1f033fbf5b7a49c\nSigned-off-by: Oleg Nesterov \u003coleg@redhat.com\u003e\nAcked-by: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "58aa30ec9adea4760497ac0e4b245e8b40667752",
      "tree": "6d555078962e43d95552528f552ea55d2fd1da91",
      "parents": [
        "74febf0626b3eb03497aa05adab82043445ac79b"
      ],
      "author": {
        "name": "Johannes Weiner",
        "email": "hannes@cmpxchg.org",
        "time": "Wed Jan 29 14:05:41 2014 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:10:04 2016 -0600"
      },
      "message": "mm/page-writeback.c: do not count anon pages as dirtyable memory\n\ncommit a1c3bfb2f67ef766de03f1f56bdfff9c8595ab14 upstream.\n\nThe VM is currently heavily tuned to avoid swapping.  Whether that is\ngood or bad is a separate discussion, but as long as the VM won\u0027t swap\nto make room for dirty cache, we can not consider anonymous pages when\ncalculating the amount of dirtyable memory, the baseline to which\ndirty_background_ratio and dirty_ratio are applied.\n\nA simple workload that occupies a significant size (40+%, depending on\nmemory layout, storage speeds etc.) of memory with anon/tmpfs pages and\nuses the remainder for a streaming writer demonstrates this problem.  In\nthat case, the actual cache pages are a small fraction of what is\nconsidered dirtyable overall, which results in an relatively large\nportion of the cache pages to be dirtied.  As kswapd starts rotating\nthese, random tasks enter direct reclaim and stall on IO.\n\nOnly consider free pages and file pages dirtyable.\n\nChange-Id: I9ed48b6cb341dbf6157d127db164d451b3901b6d\nSigned-off-by: Johannes Weiner \u003channes@cmpxchg.org\u003e\nReported-by: Tejun Heo \u003ctj@kernel.org\u003e\nTested-by: Tejun Heo \u003ctj@kernel.org\u003e\nReviewed-by: Rik van Riel \u003criel@redhat.com\u003e\nCc: Mel Gorman \u003cmgorman@suse.de\u003e\nCc: Wu Fengguang \u003cfengguang.wu@intel.com\u003e\nReviewed-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "a2333f57bd0d268a81a51a28eca3e535070f8cdb",
      "tree": "94ef3208322f5694ed86f583c08e91e6d28c4658",
      "parents": [
        "184d099950767dd590799e77aca19eff5fa54bf9"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Sun May 29 14:22:32 2016 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Dec 08 21:05:22 2016 -0600"
      },
      "message": "FROMLIST: security,perf: Allow further restriction of perf_event_open\n\nWhen kernel.perf_event_open is set to 3 (or greater), disallow all\naccess to performance events by users without CAP_SYS_ADMIN.\nAdd a Kconfig symbol CONFIG_SECURITY_PERF_EVENTS_RESTRICT that\nmakes this value the default.\n\nThis is based on a similar feature in grsecurity\n(CONFIG_GRKERNSEC_PERF_HARDEN).  This version doesn\u0027t include making\nthe variable read-only.  It also allows enabling further restriction\nat run-time regardless of whether the default is changed.\n\nhttps://lkml.org/lkml/2016/1/11/587\n\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\n\nBug: 29054680\nChange-Id: Iff5bff4fc1042e85866df9faa01bce8d04335ab8\n"
    },
    {
      "commit": "8a85267608ae2a5b2d32bd9fef5c2ed487698b0e",
      "tree": "b5cd82b9f8dd9dea65a89e3707105851569797d8",
      "parents": [
        "51c631c1b1a81f91c6fa375f273b3ed25714400d"
      ],
      "author": {
        "name": "Daeho Jeong",
        "email": "daeho.jeong@samsung.com",
        "time": "Sun Oct 18 17:02:56 2015 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 03 11:04:49 2016 -0500"
      },
      "message": "ext4, jbd2: ensure entering into panic after recording an error in superblock\n\ncommit 4327ba52afd03fc4b5afa0ee1d774c9c5b0e85c5 upstream.\n\nIf a EXT4 filesystem utilizes JBD2 journaling and an error occurs, the\njournaling will be aborted first and the error number will be recorded\ninto JBD2 superblock and, finally, the system will enter into the\npanic state in \"errors\u003dpanic\" option.  But, in the rare case, this\nsequence is little twisted like the below figure and it will happen\nthat the system enters into panic state, which means the system reset\nin mobile environment, before completion of recording an error in the\njournal superblock. In this case, e2fsck cannot recognize that the\nfilesystem failure occurred in the previous run and the corruption\nwouldn\u0027t be fixed.\n\nTask A                        Task B\next4_handle_error()\n-\u003e jbd2_journal_abort()\n  -\u003e __journal_abort_soft()\n    -\u003e __jbd2_journal_abort_hard()\n    | -\u003e journal-\u003ej_flags |\u003d JBD2_ABORT;\n    |\n    |                         __ext4_abort()\n    |                         -\u003e jbd2_journal_abort()\n    |                         | -\u003e __journal_abort_soft()\n    |                         |   -\u003e if (journal-\u003ej_flags \u0026 JBD2_ABORT)\n    |                         |           return;\n    |                         -\u003e panic()\n    |\n    -\u003e jbd2_journal_update_sb_errno()\n\nTested-by: Hobin Woo \u003chobin.woo@samsung.com\u003e\nSigned-off-by: Daeho Jeong \u003cdaeho.jeong@samsung.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "7c6b7bdf50758edff9ea919ebf56c2f9b19c38f6",
      "tree": "0b47ff9a66318ccac82951ff07498c29e36fb0e6",
      "parents": [
        "4ef878ba2f500ac3342b2c6dc501b30694c4cf66"
      ],
      "author": {
        "name": "Chen Yu",
        "email": "yu.c.chen@intel.com",
        "time": "Sun Oct 25 01:02:19 2015 +0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 03 10:58:58 2016 -0500"
      },
      "message": "ACPI: Use correct IRQ when uninstalling ACPI interrupt handler\n\ncommit 49e4b84333f338d4f183f28f1f3c1131b9fb2b5a upstream.\n\nCurrently when the system is trying to uninstall the ACPI interrupt\nhandler, it uses acpi_gbl_FADT.sci_interrupt as the IRQ number.\nHowever, the IRQ number that the ACPI interrupt handled is installed\nfor comes from acpi_gsi_to_irq() and that is the number that should\nbe used for the handler removal.\n\nFix this problem by using the mapped IRQ returned from acpi_gsi_to_irq()\nas appropriate.\n\nAcked-by: Lv Zheng \u003clv.zheng@intel.com\u003e\nSigned-off-by: Chen Yu \u003cyu.c.chen@intel.com\u003e\nSigned-off-by: Rafael J. Wysocki \u003crafael.j.wysocki@intel.com\u003e\n[lizf: Backported to 3.4: adjust context]\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "210a361262969849f71a12236b72055f5f458e8b",
      "tree": "0468b66c9eba22dbba8262264aefa763c27423e9",
      "parents": [
        "1fa32af3f0ce66a379f167a48d079db8598845f3"
      ],
      "author": {
        "name": "James Bottomley",
        "email": "James.Bottomley@HansenPartnership.com",
        "time": "Fri Dec 11 09:16:38 2015 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 03 10:42:38 2016 -0500"
      },
      "message": "ses: fix additional element traversal bug\n\ncommit 5e1033561da1152c57b97ee84371dba2b3d64c25 upstream.\n\nKASAN found that our additional element processing scripts drop off\nthe end of the VPD page into unallocated space.  The reason is that\nnot every element has additional information but our traversal\nroutines think they do, leading to them expecting far more additional\ninformation than is present.  Fix this by adding a gate to the\ntraversal routine so that it only processes elements that are expected\nto have additional information (list is in SES-2 section 6.1.13.1:\nAdditional Element Status diagnostic page overview)\n\nReported-by: Pavel Tikhomirov \u003cptikhomirov@virtuozzo.com\u003e\nTested-by: Pavel Tikhomirov \u003cptikhomirov@virtuozzo.com\u003e\nSigned-off-by: James Bottomley \u003cJames.Bottomley@HansenPartnership.com\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "637aaa723a76aa69c4c1d8aa3e14b64e28dc6320",
      "tree": "4567fb1c2b27879a3ad2056fff10353fb6d27d32",
      "parents": [
        "593099d87a6108f456b3f40bc9e69f2165ec0f87"
      ],
      "author": {
        "name": "Zefan Li",
        "email": "lizefan@huawei.com",
        "time": "Sun Oct 09 19:20:47 2016 +0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 03 10:23:46 2016 -0500"
      },
      "message": "Revert \"USB: Add device quirk for ASUS T100 Base Station keyboard\"\n\nThis reverts commit eea5a87d270e8d6925063019c3b0f3ff61fcb49a.\n\nConflicts:\n\tdrivers/usb/core/quirks.c\n\tinclude/linux/usb/quirks.h\n\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "5cd0bcc6976262e321695c6d76d8ebb28495112f",
      "tree": "aae9d8b83911c22da7766b1fe8847d66edb85536",
      "parents": [
        "edc4c5d90e413411c26748cc6d56dff9f6647a7f"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.com",
        "time": "Sun Oct 16 11:55:00 2016 +0200"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Sat Dec 03 10:01:27 2016 -0500"
      },
      "message": "mm, gup: close FOLL MAP_PRIVATE race\n\ncommit 19be0eaffa3ac7d8eb6784ad9bdbc7d67ed8e619 upstream.\n\nfaultin_page drops FOLL_WRITE after the page fault handler did the CoW\nand then we retry follow_page_mask to get our CoWed page. This is racy,\nhowever because the page might have been unmapped by that time and so\nwe would have to do a page fault again, this time without CoW. This\nwould cause the page cache corruption for FOLL_FORCE on MAP_PRIVATE\nread only mappings with obvious consequences.\n\nThis is an ancient bug that was actually already fixed once by Linus\neleven years ago in commit 4ceb5db9757a (\"Fix get_user_pages() race\nfor write access\") but that was then undone due to problems on s390\nby commit f33ea7f404e5 (\"fix get_user_pages bug\") because s390 didn\u0027t\nhave proper dirty pte tracking until abf09bed3cce (\"s390/mm: implement\nsoftware dirty bits\"). This wasn\u0027t a problem at the time as pointed out\nby Hugh Dickins because madvise relied on mmap_sem for write up until\n0a27a14a6292 (\"mm: madvise avoid exclusive mmap_sem\") but since then we\ncan race with madvise which can unmap the fresh COWed page or with KSM\nand corrupt the content of the shared page.\n\nThis patch is based on the Linus\u0027 approach to not clear FOLL_WRITE after\nthe CoW page fault (aka VM_FAULT_WRITE) but instead introduces FOLL_COW\nto note this fact. The flag is then rechecked during follow_pfn_pte to\nenforce the page fault again if we do not see the CoWed page. Linus was\nsuggesting to check pte_dirty again as s390 is OK now. But that would\nmake backporting to some old kernels harder. So instead let\u0027s just make\nsure that vm_normal_page sees a pure anonymous page.\n\nThis would guarantee we are seeing a real CoW page. Introduce\ncan_follow_write_pte which checks both pte_write and falls back to\nPageAnon on forced write faults which passed CoW already. Thanks to Hugh\nto point out that a special care has to be taken for KSM pages because\nour COWed page might have been merged with a KSM one and keep its\nPageAnon flag.\n\nFixes: 0a27a14a6292 (\"mm: madvise avoid exclusive mmap_sem\")\nReported-by: Phil \"not Paul\" Oester \u003ckernel@linuxace.com\u003e\nDisclosed-by: Andy Lutomirski \u003cluto@kernel.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Michal Hocko \u003cmhocko@suse.com\u003e\n[bwh: Backported to 3.2:\n - Adjust filename, context, indentation\n - The \u0027no_page\u0027 exit path in follow_page() is different, so open-code the\n   cleanup\n - Delete a now-unused label]\nSigned-off-by: Ben Hutchings \u003cben@decadent.org.uk\u003e\nSigned-off-by: Zefan Li \u003clizefan@huawei.com\u003e\n"
    },
    {
      "commit": "09f18e1301e145364f500099f43816b38079c25d",
      "tree": "244d46e609c20f6353a9a6b06c146e8d1e24bd77",
      "parents": [
        "357c0a6d7a36d9fb3b8e6e0d808588e428d1d09d"
      ],
      "author": {
        "name": "Rudolf Tammekivi",
        "email": "rtammekivi@gmail.com",
        "time": "Sat Aug 02 14:56:03 2014 +0300"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Mon Oct 10 21:59:36 2016 -0500"
      },
      "message": "misc: pmem: Add support for PMEM-\u003eION wrapper.\n\nPMEM to ION wrapper replaces standard PMEM driver with its own. It\u0027s sole\npurpose is to redirect all PMEM allocations to ION.\n\nIf enabled, board driver must ensure pmem pdata provides .ion_heap_id with the\nname of the ION heap ID (such as camera, mm, sf, etc).\n\nSince some kernel drivers are PMEM based, all drivers that request PMEM memory\nwill be getting ION memory (get_pmem_file/put_pmem_file). On a corner case,\nsuch as userspace allocating memory directly with /dev/ion, PMEM wrapper driver\nwill automatically import the fd (from PMEM id 0 ION client) and return the\nmemory from ION.\n\nNot a complete solution. Unfinished features have been marked with TODO.\n\nCurrently unsupported commands:\nflush_pmem_fd\nflush_pmem_file\n\nCurrently unsupported ioctl commands:\nPMEM_MAP\nPMEM_UNMAP\nPMEM_CONNECT\nPMEM_GET_TOTAL_SIZE\nPMEM_GET_FREE_SPACE\n\nChange-Id: I507ce0850d6fdbac4a72c83105140e9f3992a678\nSigned-off-by: Rudolf Tammekivi \u003crtammekivi@gmail.com\u003e\nSigned-off-by: Michael Bestas \u003cmikeioannina@gmail.com\u003e\n\nmisc: pmem_wrapper: Check for errors properly.\n\nBoth ion client \u0026 ion handle may be pointer errors. Comparing to 0 always\nreturns false, leading to invalid memory access.\n\nAlso add error checks when importing ion buffers from ION driver.\n\nChange-Id: I1949e926a3f44c67b46b458c48680ca3614d51f2\n\nmisc: pmem_wrapper: Add support for flush_pmem_file/fd.\n\nChange-Id: Ic6dda226e7e2f876ad000f30a9449208f2286a38\n"
    },
    {
      "commit": "ba5d3edb3a7d4408fac68850951beab627939c40",
      "tree": "7b5d38247e16d57564003cdf7d6f33f068a5729f",
      "parents": [
        "05100f7133eef5e13b42a8bc8ef5327abc29751e"
      ],
      "author": {
        "name": "Ruchi Kandoi",
        "email": "kandoiruchi@google.com",
        "time": "Fri Apr 17 16:33:29 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sat Sep 24 23:43:05 2016 -0500"
      },
      "message": "sched: cpufreq: Adds a field cpu_power in the task_struct\n\ncpu_power has been added to keep track of amount of power each task is\nconsuming. cpu_power is updated whenever stime and utime are updated for\na task. power is computed by taking into account the frequency at which\nthe current core was running and the current for cpu actively\nrunning at hat frequency.\n\nBug: 21498425\nChange-Id: Ic535941e7b339aab5cae9081a34049daeb44b248\nSigned-off-by: Ruchi Kandoi \u003ckandoiruchi@google.com\u003e\n"
    },
    {
      "commit": "e0a853ed05b4713e91ba654872178c90f0fc9d59",
      "tree": "6e7615bcdc91cecf1eeaee7cbdebb012d9b905ba",
      "parents": [
        "7578f4ecf5ba2f91c46e1324e796d61b0ab4a856"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sat Sep 24 22:50:59 2016 -0500"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Sat Sep 24 22:51:21 2016 -0500"
      },
      "message": "cpu: fix build if SMP is not enabled\n\nChange-Id: I9918d74ed5b13a4030fb21f97c2c6eaf62ce199a\n"
    },
    {
      "commit": "a98b5e19dadd70f69163b2c6402e155ab7e11686",
      "tree": "9acebc21c3b023055ddb559be96eea5e61cdabfd",
      "parents": [
        "64080272bb3ab7246525118fbafc86df25c04989"
      ],
      "author": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Wed Feb 24 13:27:06 2016 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Aug 25 05:18:36 2016 -0400"
      },
      "message": "FROMLIST: drivers: char: random: add get_random_long()\n\n(cherry picked from commit https://lkml.org/lkml/2016/2/4/831)\n\nd07e22597d1d355 (\"mm: mmap: add new /proc tunable for mmap_base ASLR\")\nadded the ability to choose from a range of values to use for entropy\ncount in generating the random offset to the mmap_base address.  The\nmaximum value on this range was set to 32 bits for 64-bit x86 systems, but\nthis value could be increased further, requiring more than the 32 bits of\nrandomness provided by get_random_int(), as is already possible for arm64.\nAdd a new function: get_random_long() which more naturally fits with the\nmmap usage of get_random_int() but operates exactly the same as\nget_random_int().\n\nAlso, fix the shifting constant in mmap_rnd() to be an unsigned long so\nthat values greater than 31 bits generate an appropriate mask without\noverflow.  This is especially important on x86, as its shift instruction\nuses a 5-bit mask for the shift operand, which meant that any value for\nmmap_rnd_bits over 31 acts as a no-op and effectively disables mmap_base\nrandomization.\n\nFinally, replace calls to get_random_int() with get_random_long() where\nappropriate.\n\nBug: 26963541\nSigned-off-by: Daniel Cashman \u003cdcashman@android.com\u003e\nSigned-off-by: Daniel Cashman \u003cdcashman@google.com\u003e\nChange-Id: Ie7552631b5db86f3482cf15e7dc916d89c1c502b\n"
    },
    {
      "commit": "1cdee3bec50b5c75967939f58c19d9b7ff7b885a",
      "tree": "9854446e09cd94aaaa39b9e74c754f9b9a53ee7b",
      "parents": [
        "fa631f627b7cefe713e9b1e387e875eae3d5b625"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Fri Apr 22 00:00:48 2016 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Aug 25 05:07:00 2016 -0400"
      },
      "message": "fuse: Add support for d_canonical_path\n\nAllows FUSE to report to inotify that it is acting\nas a layered filesystem. The userspace component\nreturns a string representing the location of the\nunderlying file. If the string cannot be resolved\ninto a path, the top level path is returned instead.\n\nbug: 23904372\nChange-Id: Iabdca0bbedfbff59e9c820c58636a68ef9683d9f\nSigned-off-by: Daniel Rosenberg \u003cdrosen@google.com\u003e\n"
    },
    {
      "commit": "fa631f627b7cefe713e9b1e387e875eae3d5b625",
      "tree": "b9eb3c7e38cb35cecb00fdedf07977f1004d967f",
      "parents": [
        "83790c5d7e113ca0782571ef9be2ddaf6a1d7187"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Fri Apr 22 00:00:14 2016 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Aug 25 05:06:08 2016 -0400"
      },
      "message": "vfs: change d_canonical_path to take two paths\n\nbug: 23904372\nChange-Id: I4a686d64b6de37decf60019be1718e1d820193e6\nSigned-off-by: Daniel Rosenberg \u003cdrosen@google.com\u003e\n"
    },
    {
      "commit": "7ab4f46b279133879a66aa773985ce119ba66e56",
      "tree": "527b76d3b3709c23a6f1a4bb03be4d076cb248ab",
      "parents": [
        "a4221f532b6f3836576cc9c22cf27d7026842c18"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Thu Feb 11 16:53:36 2016 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Aug 24 21:05:33 2016 -0400"
      },
      "message": "sdcardfs: Add support for d_canonicalize\n\nChange-Id: I5d6f0e71b8ca99aec4b0894412f1dfd1cfe12add\nSigned-off-by: Daniel Rosenberg \u003cdrosen@google.com\u003e\n"
    },
    {
      "commit": "a4221f532b6f3836576cc9c22cf27d7026842c18",
      "tree": "1c1d5f7f567b3568829a98c0cac2660a7598c637",
      "parents": [
        "2c5fa150a40f327108dba048092da7a9ea942ed1"
      ],
      "author": {
        "name": "Daniel Rosenberg",
        "email": "drosen@google.com",
        "time": "Thu Feb 11 16:44:15 2016 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Aug 24 21:04:37 2016 -0400"
      },
      "message": "vfs: add d_canonical_path for stacked filesystem support\n\nInotify does not currently know when a filesystem\nis acting as a wrapper around another fs. This means\nthat inotify watchers will miss any modifications to\nthe base file, as well as any made in a separate\nstacked fs that points to the same file.\nd_canonical_path solves this problem by allowing the fs\nto map a dentry to a path in the lower fs. Inotify\ncan use it to find the appropriate place to watch to\nbe informed of all changes to a file.\n\nChange-Id: I09563baffad1711a045e45c1bd0bd8713c2cc0b6\nSigned-off-by: Daniel Rosenberg \u003cdrosen@google.com\u003e\n"
    },
    {
      "commit": "9a95f91084ab59ac9e69bef69efe802611e3c6e7",
      "tree": "c347fb922ca155625a98fb902cebc6fb4ecfe618",
      "parents": [
        "729f4061b7d042bdf1632815238bf441937192c9"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@zeniv.linux.org.uk",
        "time": "Fri Jun 15 03:01:42 2012 +0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Aug 24 21:00:53 2016 -0400"
      },
      "message": "get rid of kern_path_parent()\n\nall callers want the same thing, actually - a kinda-sorta analog of\nkern_path_create().  I.e. they want parent vfsmount/dentry (with\n-\u003ei_mutex held, to make sure the child dentry is still their child)\n+ the child dentry.\n\nSigned-off-by Al Viro \u003cviro@zeniv.linux.org.uk\u003e\n\nChange-Id: I58cc7b0a087646516db9af69962447d27fb3ee8b\n"
    },
    {
      "commit": "729f4061b7d042bdf1632815238bf441937192c9",
      "tree": "3380b569fd82c8d711f521587a98c1014651a99d",
      "parents": [
        "e71989336988f8b87b0fb5cc5965f52ff8c8a012"
      ],
      "author": {
        "name": "Daniel Campello",
        "email": "campello@google.com",
        "time": "Mon Jul 20 16:23:50 2015 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Aug 24 20:59:45 2016 -0400"
      },
      "message": "Included sdcardfs source code for kernel 3.0\n\nOnly included the source code as is for kernel 3.0. Following patches\ntake care of porting this file system to version 3.10.\n\nChange-Id: I09e76db77cd98a059053ba5b6fd88572a4b75b5b\nSigned-off-by: Daniel Campello \u003ccampello@google.com\u003e\n"
    },
    {
      "commit": "bd188f9dddeb5cc026de8cbe93b02e31f96d6537",
      "tree": "013f601e46cf60f57dcf92ce1cb02ec654e808ce",
      "parents": [
        "1eca7dab267caf5443c574d2d0f2f2975de414a0"
      ],
      "author": {
        "name": "dcashman",
        "email": "dcashman@google.com",
        "time": "Tue Dec 29 14:24:39 2015 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Aug 24 12:39:35 2016 -0400"
      },
      "message": "FROMLIST: mm: mmap: Add new /proc tunable for mmap_base ASLR.\n\n(cherry picked from commit https://lkml.org/lkml/2015/12/21/337)\n\nASLR  only uses as few as 8 bits to generate the random offset for the\nmmap base address on 32 bit architectures. This value was chosen to\nprevent a poorly chosen value from dividing the address space in such\na way as to prevent large allocations. This may not be an issue on all\nplatforms. Allow the specification of a minimum number of bits so that\nplatforms desiring greater ASLR protection may determine where to place\nthe trade-off.\n\nBug: 24047224\nSigned-off-by: Daniel Cashman \u003cdcashman@android.com\u003e\nSigned-off-by: Daniel Cashman \u003cdcashman@google.com\u003e\nChange-Id: Ic74424e07710cd9ccb4a02871a829d14ef0cc4bc\n"
    },
    {
      "commit": "1a39587b3535798200dcc09fd3750133f59d2b30",
      "tree": "d431e769cfa80e87d099cdf360d02224c9583cb0",
      "parents": [
        "ddeb06e48d6fcd9917b4db5a81f5181f727dc3cb"
      ],
      "author": {
        "name": "Stephen Boyd",
        "email": "sboyd@codeaurora.org",
        "time": "Mon Dec 08 18:21:24 2014 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:35:05 2016 -0500"
      },
      "message": "soc: qcom: rq_stats: Always show idle time left\n\nThe def_timer_ms file indicates how much time has passed since we\nwrote to the file to start the timer, but the time is only\nupdated when the work runs, instead of on demand when the file is\nread. If we\u0027re poll(3)ing this file and another file and the\nother file wakes our process up from sleep we won\u0027t know without\nmeasuring time ourselves. Make this easier on userspace by always\nshowing the amount of time since we wrote the file so that we can\nfigure out how long we were asleep for.\n\nChange-Id: I06135a94a41a5cd13454a92f2de7e63683ede4a5\nSigned-off-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\n"
    },
    {
      "commit": "aa14be3e4510db2968e37fceeca1893bcec0913c",
      "tree": "5f9b795a1ca55d451782165b0eb54dc6c64cd0e4",
      "parents": [
        "5c50bf7a3e2af43b128ec018d9250e0c3002295b"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Sat Mar 29 16:56:45 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:33:16 2016 -0500"
      },
      "message": "sched: Introduce CONFIG_SCHED_FREQ_INPUT\n\nIntroduce a compile time flag to enable scheduler guidance of\nfrequency selection. This flag is also used to turn on or off\nwindow-based load stats feature.\n\nHaving a compile time flag will let some platforms avoid any\noverhead that may be present with this scheduler feature.\n\nChange-Id: Id8dec9839f90dcac82f58ef7e2bd0ccd0b6bd16c\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "f906ba019ce0abdf3bfde99109c3d3b0ec1dcbcf",
      "tree": "b65bd6bb83ef6f2d44cb0597c71f7852671a3dd4",
      "parents": [
        "7054d49bbcde1124c494b9618bab0f202bcbcc5e"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Sat Mar 29 11:40:16 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:59 2016 -0500"
      },
      "message": "sched: window-based load stats improvements\n\nFollowing cleanups and improvements are made to window-based load\nstats feature:\n\n* Add sysctl to pick max, avg or most recent samples as task\u0027s\n  demand.\n\n* Fix overflow possibility in calculation of sum for average policy.\n\n* Use unscaled statistics when a task is running on a CPU which is\nthermally throttled.\n\nChange-Id: I8293565ca0c2a785dadf8adb6c67f579a445ed29\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "50c7d47074b390ca2f2cbab2f2b1d6bff122b481",
      "tree": "3d2a8e29a4707398a3f116b4a31491dadc600cf3",
      "parents": [
        "fddadfa9239b2c1648cd91918991190d0f5f7348"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Sat Mar 29 11:40:16 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:17 2016 -0500"
      },
      "message": "sched: Window-based load stat improvements\n\nSome tasks can have a sporadic load pattern such that they can suddenly\nstart running for longer intervals of time after running for shorter\ndurations. To recognize such sharp increase in tasks\u0027 demands, max\nbetween the average of 5 window load samples and the most recent sample\nis chosen as the task demand.\n\nMake the window size (sched_ravg_window) configurable at boot up\ntime. To prevent users from setting inappropriate values for window\nsize, min and max limits are defined. As \u0027ravg\u0027 struct tracks load for\nboth real-time and non real-time tasks it is moved out of sched_entity\nstruct.\n\nIn order to prevent changing function signatures for move_tasks() and\nmove_one_task() per-cpu variables are defined to track the total load\nmoved. In case multiple tasks are selected to migrate in one load\nbalance operation, loads \u003e 100 could be sent through migration notifiers.\nPrevent this scenario by setting mnd.load to 100 in such cases.\n\nDefine wrapper functions to compute cpu demands for tasks and to change\nrq-\u003ecumulative_runnable_avg.\n\nChange-Id: I9abfbf3b5fe23ae615a6acd3db9580cfdeb515b4\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\nSigned-off-by: Rohit Gupta \u003crohgup@codeaurora.org\u003e\n"
    },
    {
      "commit": "1bd9e1f6d3cf6e9e74199045c5801e93796c8996",
      "tree": "db9ccade7521bdfc32303f3f55828fb21af43fed",
      "parents": [
        "5ec9df8aed606e02404fe434d0f1b751e9d7158a"
      ],
      "author": {
        "name": "Rohit Gupta",
        "email": "rohgup@codeaurora.org",
        "time": "Thu Mar 13 20:54:47 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:32:04 2016 -0500"
      },
      "message": "sched: Call the notify_on_migrate notifier chain for wakeups as well\n\nAdd a change to send notify_on_migrate hints on wakeups of\nforeground tasks from scheduler if their load is above\nwakeup_load_thresholds (default value is 60).\nThese hints can be used to choose an appropriate CPU frequency\ncorresponding to the load of the task being woken up.\n\nChange-Id: Ieca413c1a8bd2b14a15a7591e8e15d22925c42ca\nSigned-off-by: Rohit Gupta \u003crohgup@codeaurora.org\u003e\n"
    },
    {
      "commit": "5ec9df8aed606e02404fe434d0f1b751e9d7158a",
      "tree": "8e1a7b0bbe294175fb5d0ad1ec3930757ff41c97",
      "parents": [
        "7b7fb127f290c789c87b3f1fa2ebaafcc0423211"
      ],
      "author": {
        "name": "Rohit Gupta",
        "email": "rohgup@codeaurora.org",
        "time": "Fri Mar 14 18:56:14 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:31:57 2016 -0500"
      },
      "message": "cpufreq: cpu-boost: Introduce scheduler assisted load based syncs\n\nPreviously, on getting a migration notification cpu-boost changed\nthe scaling min of the destination frequency to match that of the\nsource frequency or sync_threshold whichever was minimum.\n\nIf the scheduler migration notification is extended with task load\n(cpu demand) information, the cpu boost driver can use this load to\ncompute a suitable frequency for the migrating task. The required\nfrequency for the task is calculated by taking the load percentage\nof the max frequency and no sync is performed if the load is less\nthan a particular value (migration_load_threshold).This change is\nbeneficial for both perf and power as demand of a task is taken into\nconsideration while making cpufreq decisions and unnecessary syncs\nfor lightweight tasks are avoided.\n\nThe task load information provided by scheduler comes from a\nwindow-based load collection mechanism which also normalizes the\nload collected by the scheduler to the max possible frequency\nacross all CPUs.\n\nChange-Id: Id2ba91cc4139c90602557f9b3801fb06b3c38992\nSigned-off-by: Rohit Gupta \u003crohgup@codeaurora.org\u003e\n"
    },
    {
      "commit": "889de8f2515046d8b897c5663e320e088a7ac1fc",
      "tree": "dd7660cd292f88e67ed1cc2d9adb6dfe99d41498",
      "parents": [
        "76173dbc06dd1a20b7b6b2c3afbf29ae935b95bd"
      ],
      "author": {
        "name": "Srivatsa Vaddagiri",
        "email": "vatsa@codeaurora.org",
        "time": "Mon Jan 06 16:24:48 2014 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:31:03 2016 -0500"
      },
      "message": "sched: window-based load stats for tasks\n\nProvide a metric per task that specifies how cpu bound a task is. Task\nexecution is monitored over several time windows and the fraction of\nthe window for which task was found to be executing or wanting to run\nis recorded as task\u0027s demand. Windows over which task was sleeping are\nignored. We track last 5 recent windows for every task and the maximum\ndemand seen in any of the previous 5 windows (where task had some\nactivity) drives freq demand for every task.\n\nA per-cpu metric (rq-\u003ecumulative_runnable_avg) is also provided which\nis an aggregation of cpu demand of all tasks currently enqueued on it.\nrq-\u003ecumulative_runnable_avg will be useful to know if cpu frequency\nwill need to be changed to match task demand.\n\nChange-Id: Ib83207b9ba8683cd3304ee8a2290695c34f08fe2\nSigned-off-by: Srivatsa Vaddagiri \u003cvatsa@codeaurora.org\u003e\n"
    },
    {
      "commit": "5f81291fa85a9386c4135bc254513bf7ea1fd94a",
      "tree": "bf4ca1b369b10df81c6350e84e80725ed41ae0e3",
      "parents": [
        "6927616e84bbc0f249ff1c0a49c11baee2199aa8"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:32 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:30:52 2016 -0500"
      },
      "message": "sched: Introduce temporary FAIR_GROUP_SCHED dependency for load-tracking\n\nWhile per-entity load-tracking is generally useful, beyond computing shares\ndistribution, e.g. runnable based load-balance (in progress), governors,\npower-management, etc.\n\nThese facilities are not yet consumers of this data.  This may be trivially\nreverted when the information is required; but avoid paying the overhead for\ncalculations we will not use until then.\n\nChange-Id: I459d52082af636d1181edb7acb3af973e95714f9\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141507.422162369@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "635704dd72526deba57c08b2745edfc34ca251d9",
      "tree": "ed9c3a6bb452424071e2ca83cad66165192d76e0",
      "parents": [
        "5f7c4c5219e97f83a952f1748c065df78fce45c6"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:29:46 2016 -0500"
      },
      "message": "sched: Add an rq migration call-back to sched_class\n\nSince we are now doing bottom up load accumulation we need explicit\nnotification when a task has been re-parented so that the old hierarchy can be\nupdated.\n\nAdds: migrate_task_rq(struct task_struct *p, int next_cpu)\n\n(The alternative is to do this out of __set_task_cpu, but it was suggested that\nthis would be a cleaner encapsulation.)\n\nChange-Id: Icc4111cd4159f804186dd7c05f0c36f4e368288e\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.660023400@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "5f7c4c5219e97f83a952f1748c065df78fce45c6",
      "tree": "4022e076f170b88667c57015bfddfcb648804a79",
      "parents": [
        "1c5465d1d1d5aea96eb71318c361d434e0a7cce7"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:29:40 2016 -0500"
      },
      "message": "sched: Maintain the load contribution of blocked entities\n\nWe are currently maintaining:\n\n  runnable_load(cfs_rq) \u003d \\Sum task_load(t)\n\nFor all running children t of cfs_rq.  While this can be naturally updated for\ntasks in a runnable state (as they are scheduled); this does not account for\nthe load contributed by blocked task entities.\n\nThis can be solved by introducing a separate accounting for blocked load:\n\n  blocked_load(cfs_rq) \u003d \\Sum runnable(b) * weight(b)\n\nObviously we do not want to iterate over all blocked entities to account for\ntheir decay, we instead observe that:\n\n  runnable_load(t) \u003d \\Sum p_i*y^i\n\nand that to account for an additional idle period we only need to compute:\n\n  y*runnable_load(t).\n\nThis means that we can compute all blocked entities at once by evaluating:\n\n  blocked_load(cfs_rq)` \u003d y * blocked_load(cfs_rq)\n\nFinally we maintain a decay counter so that when a sleeping entity re-awakens\nwe can determine how much of its load should be removed from the blocked sum.\n\nChange-Id: Ib0b29b3d1ca872a13d7236ed142156ef0a35dc9a\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.585389902@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "1c5465d1d1d5aea96eb71318c361d434e0a7cce7",
      "tree": "060d3fff882c4888cba9fb2fdd3c7c06afc9e53e",
      "parents": [
        "b9283adf8c4c2dcbe1fd5a6171c658bc7924bc65"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:30 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:29:34 2016 -0500"
      },
      "message": "sched: Aggregate load contributed by task entities on parenting cfs_rq\n\nFor a given task t, we can compute its contribution to load as:\n\n  task_load(t) \u003d runnable_avg(t) * weight(t)\n\nOn a parenting cfs_rq we can then aggregate:\n\n  runnable_load(cfs_rq) \u003d \\Sum task_load(t), for all runnable children t\n\nMaintain this bottom up, with task entities adding their contributed load to\nthe parenting cfs_rq sum.  When a task entity\u0027s load changes we add the same\ndelta to the maintained sum.\n\nChange-Id: If3b74d345354a340836bbc356002982e25ab3244\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.514678907@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "e4079d2be87ac03bacdf2ad4076366b9099f1043",
      "tree": "7666d57c41be488b79b7de50fe65cc11d7acca2e",
      "parents": [
        "2f9d485e1a6c66b5a27495ca1e86b1df1dda2213"
      ],
      "author": {
        "name": "Paul Turner",
        "email": "pjt@google.com",
        "time": "Thu Oct 04 13:18:29 2012 +0200"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:29:24 2016 -0500"
      },
      "message": "sched: Track the runnable average on a per-task entity basis\n\nInstead of tracking averaging the load parented by a cfs_rq, we can track\nentity load directly. With the load for a given cfs_rq then being the sum\nof its children.\n\nTo do this we represent the historical contribution to runnable average\nwithin each trailing 1024us of execution as the coefficients of a\ngeometric series.\n\nWe can express this for a given task t as:\n\n  runnable_sum(t) \u003d \\Sum u_i * y^i, runnable_avg_period(t) \u003d \\Sum 1024 * y^i\n  load(t) \u003d weight_t * runnable_sum(t) / runnable_avg_period(t)\n\nWhere: u_i is the usage in the last i`th 1024us period (approximately 1ms)\n~ms and y is chosen such that y^k \u003d 1/2.  We currently choose k to be 32 which\nroughly translates to about a sched period.\n\nChange-Id: Iafc090fe18ed1835cc501949e8ba1e4ed78c5de1\nSigned-off-by: Paul Turner \u003cpjt@google.com\u003e\nReviewed-by: Ben Segall \u003cbsegall@google.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/20120823141506.372695337@google.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\n"
    },
    {
      "commit": "f21320b9195694f87dfb530eec511a2d4436d71a",
      "tree": "d17b9d73d0ae425f917cee536d74672c11c5cb97",
      "parents": [
        "e0cdcf8dc3c926e44406624aaf70924b58d90f3c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Apr 12 08:06:55 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:28:42 2016 -0500"
      },
      "message": "cpu: Defer smpboot kthread unparking until CPU known to scheduler\n\nCurrently, smpboot_unpark_threads() is invoked before the incoming CPU\nhas been added to the scheduler\u0027s runqueue structures.  This might\npotentially cause the unparked kthread to run on the wrong CPU, since the\ncorrect CPU isn\u0027t fully set up yet.\n\nThat causes a sporadic, hard to debug boot crash triggering on some\nsystems, reported by Borislav Petkov, and bisected down to:\n\n  2a442c9c6453 (\"x86: Use common outgoing-CPU-notification code\")\n\nThis patch places smpboot_unpark_threads() in a CPU hotplug\nnotifier with priority set so that these kthreads are unparked just after\nthe CPU has been added to the runqueues.\n\nChange-Id: I8921987de9c2a2f475cc63dc82662d6ebf6e8725\nReported-and-tested-by: Borislav Petkov \u003cbp@suse.de\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: linux-kernel@vger.kernel.org\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nGit-commit: 00df35f991914db6b8bde8cf09808e19a9cffc3d\nGit-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git\nSigned-off-by: Matt Wagantall \u003cmattw@codeaurora.org\u003e\n"
    },
    {
      "commit": "18e9860b522d2b45c3ff98887d99f30e70a715e6",
      "tree": "97eee1c8183d26fc02debec483119bd008e3a74a",
      "parents": [
        "963cd9ae820d4b66e2f2cd5867b933315ccb2d19"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Sun Nov 29 19:37:57 2015 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:28:31 2016 -0500"
      },
      "message": "UPSTREAM: ipv6: add complete rcu protection around np-\u003eopt\n\n[ Upstream commit 45f6fad84cc305103b28d73482b344d7f5b76f39 ]\n\nThis patch addresses multiple problems :\n\nUDP/RAW sendmsg() need to get a stable struct ipv6_txoptions\nwhile socket is not locked : Other threads can change np-\u003eopt\nconcurrently. Dmitry posted a syzkaller\n(http://github.com/google/syzkaller) program desmonstrating\nuse-after-free.\n\nStarting with TCP/DCCP lockless listeners, tcp_v6_syn_recv_sock()\nand dccp_v6_request_recv_sock() also need to use RCU protection\nto dereference np-\u003eopt once (before calling ipv6_dup_options())\n\nThis patch adds full RCU protection to np-\u003eopt\n\nReported-by: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Hannes Frederic Sowa \u003channes@stressinduktion.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: Jiri Slaby \u003cjslaby@suse.cz\u003e\nChange-Id: I81775b2269a8263c4e4760b94b9fdd0d5916b31e\nBug: 28746669\n"
    },
    {
      "commit": "29ea3244f7ee375a4af4d776caf721663dd4293d",
      "tree": "73bcd568996ad1950f1870c508ac35beef242f3f",
      "parents": [
        "b0cde1e4b20d5be5b79eba284358bdff1283612b"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Fri Jul 10 17:19:55 2015 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:27:22 2016 -0500"
      },
      "message": "security: add ioctl specific auditing to lsm_audit\n\n(cherry pick from commit 671a2781ff01abf4fdc8904881fc3abd3a8279af)\n\nAdd information about ioctl calls to the LSM audit data. Log the\nfile path and command number.\n\nSigned-off-by: Jeff Vander Stoep \u003cjeffv@google.com\u003e\nAcked-by: Nick Kralevich \u003cnnk@google.com\u003e\n[PM: subject line tweak]\nSigned-off-by: Paul Moore \u003cpmoore@redhat.com\u003e\nBug: 22846070\nChange-Id: I4a7678294e0a3075f57bd77c76fd17e6f0d33e75\n"
    },
    {
      "commit": "94bdaadcca0aa203549385016b26cb5c6c31fe56",
      "tree": "8f3ecd3bed66653cec28ea4070da85e46affbe54",
      "parents": [
        "8c4c81bd0040ba7054fc6c8b6ff17f4856a28db9"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Jul 29 18:37:24 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:27:07 2016 -0500"
      },
      "message": "Revert \"security: lsm_audit: add ioctl specific auditing\"\n\nThis reverts commit 643ce43c226cdfa73bcac2fa91f1f8a3dfd171a2.\n\nBug: 22846070\nChange-Id: I5dde1878e5baac43b4968141c0dc60b70e042183\nSigned-off-by: Jeff Vander Stoep \u003cjeffv@google.com\u003e\n"
    },
    {
      "commit": "5cfac143dbcc96119300c5b1793f41d121eda857",
      "tree": "c0e573f13f41eb2cfa98e6fddc77fcf5a4022556",
      "parents": [
        "33a38ccbbdf78696bdcd5be644fddf0fdd5bd81d"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Dec 16 12:30:04 2015 +0900"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:26:27 2016 -0500"
      },
      "message": "net: diag: Support SOCK_DESTROY for inet sockets.\n\nThis passes the SOCK_DESTROY operation to the underlying protocol\ndiag handler, or returns -EOPNOTSUPP if that handler does not\ndefine a destroy operation.\n\nMost of this patch is just renaming functions. This is not\nstrictly necessary, but it would be fairly counterintuitive to\nhave the code to destroy inet sockets be in a function whose name\nstarts with inet_diag_get.\n\n[Backport of net-next 6eb5d2e08f071c05ecbe135369c9ad418826cab2]\n\nChange-Id: I70a700ec66e0ea8526a17137ba6cb5a3f2dce45f\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "33a38ccbbdf78696bdcd5be644fddf0fdd5bd81d",
      "tree": "0fe522ed6c7a7776bfa69113f3d3fe28aafd4f4b",
      "parents": [
        "707ab355d2e29f90e2b2f5ec1f593127291dbee7"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Dec 16 12:30:03 2015 +0900"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:26:21 2016 -0500"
      },
      "message": "net: diag: Add the ability to destroy a socket.\n\nThis patch adds a SOCK_DESTROY operation, a destroy function\npointer to sock_diag_handler, and a diag_destroy function\npointer.  It does not include any implementation code.\n\n[Backport of net-next 64be0aed59ad519d6f2160868734f7e278290ac1]\n\nChange-Id: I1d998e1c5f836b2f5638c0f79244c372c8d2d9d9\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "707ab355d2e29f90e2b2f5ec1f593127291dbee7",
      "tree": "6166e95dd2e507bc3b0128c6d19354a2b56a642a",
      "parents": [
        "bebcb1a93337ff2eebc6501af0ebc866bd938bbf"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Dec 16 12:30:02 2015 +0900"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:26:15 2016 -0500"
      },
      "message": "net: diag: split inet_diag_dump_one_icsk into two\n\nCurrently, inet_diag_dump_one_icsk finds a socket and then dumps\nits information to userspace. Split it into a part that finds the\nsocket and a part that dumps the information.\n\n[Backport of net-next b613f56ec9baf30edf5d9d607b822532a273dad7]\n\nChange-Id: I6b570c35a4928ea072de3e31f9f3ca89668a5244\nSigned-off-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nAcked-by: Eric Dumazet \u003cedumazet@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "bebcb1a93337ff2eebc6501af0ebc866bd938bbf",
      "tree": "6ede9bc501ffb369966b81c70ebf82ddae525e10",
      "parents": [
        "fa615e969a46429e1d6009c6d499e7de9994c6d0"
      ],
      "author": {
        "name": "Jens Axboe",
        "email": "axboe@fb.com",
        "time": "Wed Jun 10 08:01:20 2015 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 22:24:03 2016 -0500"
      },
      "message": "cfq-iosched: fix the setting of IOPS mode on SSDs\n\nA previous commit wanted to make CFQ default to IOPS mode on\nnon-rotational storage, however it did so when the queue was\ninitialized and the non-rotational flag is only set later on\nin the probe.\n\nAdd an elevator hook that gets called off the add_disk() path,\nat that point we know that feature probing has finished, and\nwe can reliably check for the various flags that drivers can\nset.\n\nFixes: 41c0126b (\"block: Make CFQ default to IOPS mode on SSDs\")\nTested-by: Romain Francoise \u003cromain@orebokech.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "721cc5b4a637c20241562487ff49ee308a3948e0",
      "tree": "2f65b8c85830d778468818bf69dfc37b5d8adf72",
      "parents": [
        "19d00ddd4343c5d83874f81c61d9af1faae913c5"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Thu Jul 28 15:38:41 2016 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 22:23:45 2016 -0500"
      },
      "message": "f2fs: sync with upstream\n\n https://kernel.googlesource.com/pub/scm/linux/kernel/git/jaegeuk/f2fs-stable/+/linux-3.4.y\n\n last commit: fscrypto: no support for v3.4\n\nChange-Id: Id300fb1564cc2d91a9a7982b823b42cbe431055e\n"
    },
    {
      "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": "2220ac23c3c583321276c85cbfd7f6378abd8f94",
      "tree": "4a8b16ea7b28fba521d57534b87f1ce9d7fd6786",
      "parents": [
        "a723346e9097d59568508a6c73828e9b38c238de"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Thu Jul 28 15:38:41 2016 -0700"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Thu Jul 28 16:11:09 2016 -0700"
      },
      "message": "fscrypto: no support for v3.4\n\nEncryption is now disabled.\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\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": "b190e49e94ffe4d4b9660fd4166ca431cc551d58",
      "tree": "d38c88d2cb43165ca773c176caedc38ce15fe55a",
      "parents": [
        "b321bee05b6f83d69dedbf784dde2e28614d85d3"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Wed May 04 22:05:01 2016 -0700"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Thu Jun 02 17:24:26 2016 -0700"
      },
      "message": "fscrypto/f2fs: allow fs-specific key prefix for fs encryption\n\nThis patch allows fscrypto to handle a second key prefix given by filesystem.\nThe main reason is to provide backward compatibility, since previously f2fs\nused \"f2fs:\" as a crypto prefix instead of \"fscrypt:\".\nLater, ext4 should also provide key_prefix() to give \"ext4:\".\n\nOne concern decribed by Ted would be kinda double check overhead of prefixes.\nIn x86, for example, validate_user_key consumes 8 ms after boot-up, which turns\nout derive_key_aes() consumed most of the time to load specific crypto module.\nAfter such the cold miss, it shows almost zero latencies, which treats as a\nnegligible overhead.\nNote that request_key() detects wrong prefix in prior to derive_key_aes() even.\n\nCc: Ted Tso \u003ctytso@mit.edu\u003e\nCc: stable@vger.kernel.org # v4.6\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n\n Conflicts:\n\tfs/crypto/keyinfo.c\n"
    },
    {
      "commit": "513e6c24a30dd209bbb04741ff5472226b037640",
      "tree": "5fde1dad332e73c1309a8d3ec9a73acc5ef2e6bb",
      "parents": [
        "4264a1c92c94a47b9f711021aa75807fe7c25e1f"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Mon Feb 22 18:29:18 2016 +0800"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Thu Jun 02 17:18:49 2016 -0700"
      },
      "message": "f2fs: fix to convert inline directory correctly\n\nWith below serials, we will lose parts of dirents:\n\n1) mount f2fs with inline_dentry option\n2) echo 1 \u003e /sys/fs/f2fs/sdX/dir_level\n3) mkdir dir\n4) touch 180 files named [1-180] in dir\n5) touch 181 in dir\n6) echo 3 \u003e /proc/sys/vm/drop_caches\n7) ll dir\n\nls: cannot access 2: No such file or directory\nls: cannot access 4: No such file or directory\nls: cannot access 5: No such file or directory\nls: cannot access 6: No such file or directory\nls: cannot access 8: No such file or directory\nls: cannot access 9: No such file or directory\n...\ntotal 360\ndrwxr-xr-x 2 root root 4096 Feb 19 15:12 ./\ndrwxr-xr-x 3 root root 4096 Feb 19 15:11 ../\n-rw-r--r-- 1 root root    0 Feb 19 15:12 1\n-rw-r--r-- 1 root root    0 Feb 19 15:12 10\n-rw-r--r-- 1 root root    0 Feb 19 15:12 100\n-????????? ? ?    ?       ?            ? 101\n-????????? ? ?    ?       ?            ? 102\n-????????? ? ?    ?       ?            ? 103\n...\n\nThe reason is: when doing the inline dir conversion, we didn\u0027t consider\nthat directory has hierarchical hash structure which can be configured\nthrough sysfs interface \u0027dir_level\u0027.\n\nBy default, dir_level of directory inode is 0, it means we have one bucket\nin hash table located in first level, all dirents will be hashed in this\nbucket, so it has no problem for us to do the duplication simply between\ninline dentry page and converted normal dentry page.\n\nHowever, if we configured dir_level with the value N (greater than 0), it\nwill expand the bucket number of first level hash table by 2^N - 1, it\nhashs dirents into different buckets according their hash value, if we\nstill move all dirents to first bucket, it makes incorrent locating for\ninline dirents, the result is, although we can iterate all dirents through\n-\u003ereaddir, we can\u0027t stat some of them in -\u003elookup which based on hash\ntable searching.\n\nThis patch fixes this issue by rehashing dirents into correct position\nwhen converting inline directory.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n\n Conflicts:\n\tfs/f2fs/dir.c\n\tfs/f2fs/f2fs.h\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": "b09a1fb09e8a3bb26ac667d41c4df1613b8f1e45",
      "tree": "39845a3532e3c77390546b90aa8010f32a328e1c",
      "parents": [
        "4c0dbaff2149d618b5685a3ffe732521fb551d68"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Mon Apr 11 15:51:57 2016 -0700"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Tue Apr 26 16:39:06 2016 -0700"
      },
      "message": "fscrypto: don\u0027t let data integrity writebacks fail with ENOMEM\n\nThis patch fixes the issue introduced by the ext4 crypto fix in a same manner.\nFor F2FS, however, we flush the pending IOs and wait for a while to acquire free\nmemory.\n\nFixes: c9af28fdd4492 (\"ext4 crypto: don\u0027t let data integrity writebacks fail with ENOMEM\")\nCc: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n\n Conflicts:\n\tfs/crypto/crypto.c\n"
    },
    {
      "commit": "592a838577f8f14c3ff25596edeae229c8d06e76",
      "tree": "96f19d8d143e21f573420e49b8be7c3f1a0f1c52",
      "parents": [
        "8c42f8f745b483ec5564f18219357a6e2f440a7f"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Fri May 15 16:26:10 2015 -0700"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Tue Apr 26 16:37:33 2016 -0700"
      },
      "message": "fs crypto: move per-file encryption from f2fs tree to fs/crypto\n\nThis patch adds the renamed functions moved from the f2fs crypto files.\n\n[Backporting to 3.10]\n - Removed d_is_negative() in fscrypt_d_revalidate().\n\n1. definitions for per-file encryption used by ext4 and f2fs.\n\n2. crypto.c for encrypt/decrypt functions\n a. IO preparation:\n  - fscrypt_get_ctx / fscrypt_release_ctx\n b. before IOs:\n  - fscrypt_encrypt_page\n  - fscrypt_decrypt_page\n  - fscrypt_zeroout_range\n c. after IOs:\n  - fscrypt_decrypt_bio_pages\n  - fscrypt_pullback_bio_page\n  - fscrypt_restore_control_page\n\n3. policy.c supporting context management.\n a. For ioctls:\n  - fscrypt_process_policy\n  - fscrypt_get_policy\n b. For context permission\n  - fscrypt_has_permitted_context\n  - fscrypt_inherit_context\n\n4. keyinfo.c to handle permissions\n  - fscrypt_get_encryption_info\n  - fscrypt_free_encryption_info\n\n5. fname.c to support filename encryption\n a. general wrapper functions\n  - fscrypt_fname_disk_to_usr\n  - fscrypt_fname_usr_to_disk\n  - fscrypt_setup_filename\n  - fscrypt_free_filename\n\n b. specific filename handling functions\n  - fscrypt_fname_alloc_buffer\n  - fscrypt_fname_free_buffer\n\n6. Makefile and Kconfig\n\nCc: Al Viro \u003cviro@ftp.linux.org.uk\u003e\nSigned-off-by: Michael Halcrow \u003cmhalcrow@google.com\u003e\nSigned-off-by: Ildar Muslukhov \u003cildarm@google.com\u003e\nSigned-off-by: Uday Savagaonkar \u003csavagaon@google.com\u003e\nSigned-off-by: Theodore Ts\u0027o \u003ctytso@mit.edu\u003e\nSigned-off-by: Arnd Bergmann \u003carnd@arndb.de\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n\n Conflicts:\n\tfs/f2fs/f2fs.h\n\tfs/f2fs/inode.c\n\tfs/f2fs/super.c\n\tinclude/linux/fs.h\n"
    },
    {
      "commit": "95f392ce70178ed3705031f3e8c8287846f5f208",
      "tree": "60494203709c2a345cc610ca51819fd9010fad10",
      "parents": [
        "6e5b5321ab396225c706c271aa38610ea0db4049"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Sun Feb 14 18:50:40 2016 +0800"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Mon Mar 07 15:22:15 2016 -0800"
      },
      "message": "f2fs: introduce f2fs_journal struct to wrap journal info\n\nIntroduce a new structure f2fs_journal to wrap journal info in struct\nf2fs_summary_block for readability.\n\nstruct f2fs_journal {\n\tunion {\n\t\t__le16 n_nats;\n\t\t__le16 n_sits;\n\t};\n\tunion {\n\t\tstruct nat_journal nat_j;\n\t\tstruct sit_journal sit_j;\n\t\tstruct f2fs_extra_info info;\n\t};\n} __packed;\n\nstruct f2fs_summary_block {\n\tstruct f2fs_summary entries[ENTRIES_IN_SUM];\n\tstruct f2fs_journal journal;\n\tstruct summary_footer footer;\n} __packed;\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "2a50f5c32188190ff2307c2c1653e6f54f9e0588",
      "tree": "738523c27556793b972b8fc086cb9a7c9d0c9bdc",
      "parents": [
        "99a4bdd64c70414d49c1db663f9f5e4d58e1f663"
      ],
      "author": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Wed Feb 03 13:49:44 2016 -0800"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Mon Mar 07 15:22:07 2016 -0800"
      },
      "message": "f2fs: preallocate blocks for buffered aio writes\n\nThis patch preallocates data blocks for buffered aio writes.\nWith this patch, we can avoid redundant locking and unlocking of node pages\ngiven consecutive aio request.\n\n[For 3.10]\n - Add preallocationg for generic_splice_write(sendfile) for xfstests/249, 285\n\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n\n Conflicts:\n\tfs/f2fs/data.c\n"
    },
    {
      "commit": "f862b0e07f2d4549b6de8be4f0ad3e14242f4c85",
      "tree": "776e732df64e32521c74c2500652c00e6d966041",
      "parents": [
        "79487dd5784f17c05acaf7e84064bd7af9b041bf"
      ],
      "author": {
        "name": "Sheng Yong",
        "email": "shengyong1@huawei.com",
        "time": "Thu Jan 28 11:40:26 2016 +0000"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Mon Mar 07 15:22:03 2016 -0800"
      },
      "message": "f2fs: fix endianness of on-disk summary_footer\n\nSigned-off-by: Sheng Yong \u003cshengyong1@huawei.com\u003e\nReviewed-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "1c6e799af05cd8fdfd4f5fa497dd0cd6280f9589",
      "tree": "eb9ed4139bd80ace3500fe5a1ccf57bd22d0de7d",
      "parents": [
        "a95a2febe35bf0d5b1f1d0831925995e108fe985"
      ],
      "author": {
        "name": "Chao Yu",
        "email": "chao2.yu@samsung.com",
        "time": "Tue Jan 26 15:39:35 2016 +0800"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Mon Mar 07 15:22:01 2016 -0800"
      },
      "message": "f2fs: remove unneeded pointer conversion\n\nThere are redundant pointer conversion in following call stack:\n - at position a, inode was been converted to f2fs_file_info.\n - at position b, f2fs_file_info was been converted to inode again.\n\n - truncate_blocks(inode,..)\n  - fi \u003d F2FS_I(inode)\t\t---a\n  - ADDRS_PER_PAGE(node_page, fi)\n   - addrs_per_inode(fi)\n    - inode \u003d \u0026fi-\u003evfs_inode\t---b\n    - f2fs_has_inline_xattr(inode)\n     - fi \u003d F2FS_I(inode)\n     - is_inode_flag_set(fi,..)\n\nIn order to avoid unneeded conversion, alter ADDRS_PER_PAGE and\naddrs_per_inode to acept parameter with type of inode pointer.\n\nSigned-off-by: Chao Yu \u003cchao2.yu@samsung.com\u003e\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.org\u003e\n"
    },
    {
      "commit": "0e3f9dbd8500c1f64074b4585f3484055eba93cc",
      "tree": "cf67a072496c1c70b0caf069ffe42ce394672f4e",
      "parents": [
        "f947a43e6284dfe4bac2f03da221a3a48862cb65"
      ],
      "author": {
        "name": "Shuoran Liu",
        "email": "liushuoran@huawei.com",
        "time": "Wed Jan 27 09:57:30 2016 +0800"
      },
      "committer": {
        "name": "Jaegeuk Kim",
        "email": "jaegeuk@kernel.org",
        "time": "Mon Mar 07 15:21:59 2016 -0800"
      },
      "message": "f2fs: introduce lifetime write IO statistics\n\nThis patch introduces lifetime IO write statistics exposed to the sysfs interface.\nThe write IO amount is obtained from block layer, accumulated in the file system and\nstored in the hot node summary of checkpoint.\n\nSigned-off-by: Shuoran Liu \u003cliushuoran@huawei.com\u003e\nSigned-off-by: Pengyang Hou \u003choupengyang@huawei.com\u003e\n[Jaegeuk Kim: add sysfs documentation]\nSigned-off-by: Jaegeuk Kim \u003cjaegeuk@kernel.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"
    }
  ],
  "next": "b487362d57da9517175e207e9576b3288becdc99"
}
