)]}'
{
  "log": [
    {
      "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": "b0cde1e4b20d5be5b79eba284358bdff1283612b",
      "tree": "1f6126a84a86289bcc33905b9ea8574d9559fdbd",
      "parents": [
        "94bdaadcca0aa203549385016b26cb5c6c31fe56"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Thu Feb 26 13:54:17 2015 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:27:16 2016 -0500"
      },
      "message": "selinux: remove unnecessary pointer reassignment\n\n(cherry pick from commit 83d4a806ae46397f606de7376b831524bd3a21e5)\n\nCommit f01e1af445fa (\"selinux: don\u0027t pass in NULL avd to avc_has_perm_noaudit\")\nmade this pointer reassignment unnecessary. Avd should continue to reference\nthe stack-based copy.\n\nSigned-off-by: Jeff Vander Stoep \u003cjeffv@google.com\u003e\nAcked-by: Stephen Smalley \u003csds@tycho.nsa.gov\u003e\n[PM: tweaked subject line]\nSigned-off-by: Paul Moore \u003cpmoore@redhat.com\u003e\nBug: 22846070\nChange-Id: Ie33688d163870705272607309a27fb7c8f870748\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": "8c4c81bd0040ba7054fc6c8b6ff17f4856a28db9",
      "tree": "ee77a4514ab8b305c312f3fb70c910e0e6c41a6f",
      "parents": [
        "f636525feee1d47035b972ad87d397f727b2ed5b"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Jul 29 18:36:41 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:27:02 2016 -0500"
      },
      "message": "Revert \"SELinux: per-command whitelisting of ioctls\"\n\nThis reverts commit bc84b4adb1469e3d05ad76c304a4c545feaf1f88.\n\nBug: 22846070\nChange-Id: Ib4cb130b2225ea2e22556ff852313e0de7dddcab\nSigned-off-by: Jeff Vander Stoep \u003cjeffv@google.com\u003e\n"
    },
    {
      "commit": "f636525feee1d47035b972ad87d397f727b2ed5b",
      "tree": "fab2f0eccd40abd34cfe7fadc7028dac6f399573",
      "parents": [
        "97df93a063d060bcf2c8fa4baaf0094cb8e256a0"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Jul 29 18:35:33 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:26:56 2016 -0500"
      },
      "message": "Revert \"SELinux: use deletion-safe iterator to free list\"\n\nThis reverts commit c9a8571249fa3a55a0490bd571eaf0cea097fab0.\n\nBug: 22846070\nChange-Id: I85e2b6322f98bd584ed523b0bd0291375dbc35dc\nSigned-off-by: Jeff Vander Stoep \u003cjeffv@google.com\u003e\n"
    },
    {
      "commit": "97df93a063d060bcf2c8fa4baaf0094cb8e256a0",
      "tree": "0de22ddb1e60f17afd79ab2b47145fa7b8ff5417",
      "parents": [
        "3c22c9a2b6b280f82fe03aa15113982158238b0a"
      ],
      "author": {
        "name": "Jeff Vander Stoep",
        "email": "jeffv@google.com",
        "time": "Wed Jul 29 18:33:33 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:26:51 2016 -0500"
      },
      "message": "Revert \"SELinux: ss: Fix policy write for ioctl operations\"\n\nThis reverts commit c06168226f5eaaaad93af5b2811f213b01382363.\n\nBug: 22846070\nChange-Id: I665c1f2350e10ce890e7c4be1a06e666929d5d7a\nSigned-off-by: Jeff Vander Stoep \u003cjeffv@google.com\u003e\n"
    },
    {
      "commit": "3c22c9a2b6b280f82fe03aa15113982158238b0a",
      "tree": "8c4fec4bedbb2930452aa36af84283fec1e03b29",
      "parents": [
        "1c2e92bf560db190afbdfddf7a88807e0bc64a22"
      ],
      "author": {
        "name": "Eric Dumazet",
        "email": "edumazet@google.com",
        "time": "Wed Jan 20 16:25:01 2016 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:26:46 2016 -0500"
      },
      "message": "net: diag: support v4mapped sockets in inet_diag_find_one_icsk()\n\nLorenzo reported that we could not properly find v4mapped sockets\nin inet_diag_find_one_icsk(). This patch fixes the issue.\n\n[Backport of net 7c1306723ee916ea9f1fa7d9e4c7a6d029ca7aaf]\n[lorenzo@google.com: changed init_net to net]\n\nChange-Id: I632b21e9e590cd0ebd38a09d8405140dcf942591\nReported-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nSigned-off-by: Eric Dumazet \u003cedumazet@google.com\u003e\nAcked-by: Lorenzo Colitti \u003clorenzo@google.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "1c2e92bf560db190afbdfddf7a88807e0bc64a22",
      "tree": "0dda726afdb6baed43e838b62724f72fcc5265f0",
      "parents": [
        "1f1f52073160a2b1856b3904df80d84dc829ecdf"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Sun Dec 20 02:39:43 2015 +0900"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:26:41 2016 -0500"
      },
      "message": "net: tcp: deal with listen sockets properly in tcp_abort.\n\nWhen closing a listen socket, tcp_abort currently calls\ntcp_done without clearing the request queue. If the socket has a\nchild socket that is established but not yet accepted, the child\nsocket is then left without a parent, causing a leak.\n\nFix this by setting the socket state to TCP_CLOSE and calling\ninet_csk_listen_stop with the socket lock held, like tcp_close\ndoes.\n\nTested using net_test. With this patch, calling SOCK_DESTROY on a\nlisten socket that has an established but not yet accepted child\nsocket results in the parent and the child being closed, such\nthat they no longer appear in sock_diag dumps.\n\n[Backport of net-next 2010b93e9317cc12acd20c4aed385af7f9d1681e]\n\nChange-Id: Iaccc56465f159144566b579dbebbbb6e1e943bc7\nReported-by: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\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": "1f1f52073160a2b1856b3904df80d84dc829ecdf",
      "tree": "f6f78c669b2914d5ee325b72613c17eed16bd166",
      "parents": [
        "5cfac143dbcc96119300c5b1793f41d121eda857"
      ],
      "author": {
        "name": "Lorenzo Colitti",
        "email": "lorenzo@google.com",
        "time": "Wed Dec 16 12:30:05 2015 +0900"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed Aug 10 16:26:33 2016 -0500"
      },
      "message": "net: diag: Support destroying TCP sockets.\n\nThis implements SOCK_DESTROY for TCP sockets. It causes all\nblocking calls on the socket to fail fast with ECONNABORTED and\ncauses a protocol close of the socket. It informs the other end\nof the connection by sending a RST, i.e., initiating a TCP ABORT\nas per RFC 793. ECONNABORTED was chosen for consistency with\nFreeBSD.\n\n[Backport of net-next c1e64e298b8cad309091b95d8436a0255c84f54a]\n\nChange-Id: Ic5410d3a2f39db28a322c30f4b3b2bffd35ec2de\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": "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": "fa615e969a46429e1d6009c6d499e7de9994c6d0",
      "tree": "051eee1b0e8147893c081b8455aa400161e70f87",
      "parents": [
        "956baceefb8ae3bf85bfcee19c59d640106941ff"
      ],
      "author": {
        "name": "Tahsin Erdogan",
        "email": "tahsin@google.com",
        "time": "Tue May 19 13:55:21 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 22:23:57 2016 -0500"
      },
      "message": "block: Make CFQ default to IOPS mode on SSDs\n\nCFQ idling causes reduced IOPS throughput on non-rotational disks.\nSince disk head seeking is not applicable to SSDs, it doesn\u0027t really\nhelp performance by anticipating future near-by IO requests.\n\nBy turning off idling (and switching to IOPS mode), we allow other\nprocesses to dispatch IO requests down to the driver and so increase IO\nthroughput.\n\nFollowing FIO benchmark results were taken on a cloud SSD offering with\nidling on and off:\n\nIdling     iops    avg-lat(ms)    stddev            bw\n------------------------------------------------------\n    On     7054    90.107         38.697     28217KB/s\n   Off    29255    21.836         11.730    117022KB/s\n\nfio --name\u003dtemp --size\u003d100G --time_based --ioengine\u003dlibaio \\\n    --randrepeat\u003d0 --direct\u003d1 --invalidate\u003d1 --verify\u003d0 \\\n    --verify_fatal\u003d0 --rw\u003drandread --blocksize\u003d4k --group_reporting\u003d1 \\\n    --filename\u003d/dev/sdb --runtime\u003d10 --iodepth\u003d64 --numjobs\u003d10\n\nAnd the following is from a local SSD run:\n\nIdling     iops    avg-lat(ms)    stddev            bw\n------------------------------------------------------\n    On    19320    33.043         14.068     77281KB/s\n   Off    21626    29.465         12.662     86507KB/s\n\nfio --name\u003dtemp --size\u003d5G --time_based --ioengine\u003dlibaio \\\n    --randrepeat\u003d0 --direct\u003d1 --invalidate\u003d1 --verify\u003d0 \\\n    --verify_fatal\u003d0 --rw\u003drandread --blocksize\u003d4k --group_reporting\u003d1 \\\n    --filename\u003d/fio_data --runtime\u003d10 --iodepth\u003d64 --numjobs\u003d10\n\nReviewed-by: Nauman Rafique \u003cnauman@google.com\u003e\nSigned-off-by: Tahsin Erdogan \u003ctahsin@google.com\u003e\nSigned-off-by: Jens Axboe \u003caxboe@fb.com\u003e\n"
    },
    {
      "commit": "956baceefb8ae3bf85bfcee19c59d640106941ff",
      "tree": "fc40401ecb5ed3b93be95489d9cb263cef57d950",
      "parents": [
        "721cc5b4a637c20241562487ff49ee308a3948e0"
      ],
      "author": {
        "name": "franciscofranco",
        "email": "franciscofranco.1990@gmail.com",
        "time": "Mon Dec 09 02:35:51 2013 +0000"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 22:23:50 2016 -0500"
      },
      "message": "block: row: add magic values.\n\nChange-Id: Ib6e19fad75b8c35c83a6d75c03f741791b81f267\nSigned-off-by: franciscofranco \u003cfranciscofranco.1990@gmail.com\u003e\nSigned-off-by: engstk \u003ceng.stk@sapo.pt\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": "19d00ddd4343c5d83874f81c61d9af1faae913c5",
      "tree": "aca76bbadbd8dcd1417cf3d5f5ed4436a9347094",
      "parents": [
        "3d6d3ce61d4d7a7ae3d407c41d48e65ca0636094"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Aug 04 05:38:01 2016 -0500"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 12:57:04 2016 -0500"
      },
      "message": "ath6kl: hide unitialized warning\n\nChange-Id: I75a59606702ba26b995c2a976a6ab238c6b0e90c\n"
    },
    {
      "commit": "3d6d3ce61d4d7a7ae3d407c41d48e65ca0636094",
      "tree": "45ee4619614906f7cfec2f9e7d6be63075949dc5",
      "parents": [
        "3c0bf4faa4a7dd69109b1e20eaf746abbc39be20"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 03:05:01 2016 -0500"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 03:05:01 2016 -0500"
      },
      "message": "tenderloin(wifi/4g): enable CPU_INPUT_BOOST\n\nChange-Id: I79ce23bb41228a584a47b06a82ccba3065871bb2\n"
    },
    {
      "commit": "3c0bf4faa4a7dd69109b1e20eaf746abbc39be20",
      "tree": "d8a7421f1a55227ee45f01c6bc683d7c6049ee1c",
      "parents": [
        "cd51ac61016591337ceaad723db2b7053f2ae397"
      ],
      "author": {
        "name": "Scott Bauer",
        "email": "sbauer@plzdonthack.me",
        "time": "Thu Jun 23 08:59:47 2016 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:11:04 2016 -0500"
      },
      "message": "HID: hiddev: validate num_values for HIDIOCGUSAGES, HIDIOCSUSAGES commands\n\nThis patch validates the num_values parameter from userland during the\nHIDIOCGUSAGES and HIDIOCSUSAGES commands. Previously, if the report id was set\nto HID_REPORT_ID_UNKNOWN, we would fail to validate the num_values parameter\nleading to a heap overflow.\n\nChange-Id: I4718de20e7f4d701564446cdfac24837a809e8fc\nCc: stable@vger.kernel.org\nSigned-off-by: Scott Bauer \u003csbauer@plzdonthack.me\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "cd51ac61016591337ceaad723db2b7053f2ae397",
      "tree": "917b39782ff3ac576657c26fb1de50ef7bf6c611",
      "parents": [
        "0895af992ba8c721461ea09d4f7b2694e2efe822"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Thu May 26 06:45:59 2016 -0500"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:10:58 2016 -0500"
      },
      "message": "KEYS: potential uninitialized variable\n\nIf __key_link_begin() failed then \"edit\" would be uninitialized.  I\u0027ve\nadded a check to fix that.\n\nChange-Id: I0e28bdba07f645437db2b08daf67ca27f16c6f5c\nFixes: f70e2e06196a (\u0027KEYS: Do preallocation for __key_link()\u0027)\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\n"
    },
    {
      "commit": "0895af992ba8c721461ea09d4f7b2694e2efe822",
      "tree": "a47d00ec760f4b0511e54996283358de41f4e326",
      "parents": [
        "3f3fc330c4b12193a6f3aa0b70cd140b05d817fa"
      ],
      "author": {
        "name": "Al Viro",
        "email": "viro@ZenIV.linux.org.uk",
        "time": "Fri Mar 20 17:41:43 2015 +0000"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:10:47 2016 -0500"
      },
      "message": "net: validate the range we feed to iov_iter_init() in sys_sendto/sys_recvfrom\n\nChange-Id: Ida19e5102b7faca17c685a261c20fbbf5c9614f9\nCc: stable@vger.kernel.org # v3.19\nSigned-off-by: Al Viro \u003cviro@zeniv.linux.org.uk\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\n"
    },
    {
      "commit": "3f3fc330c4b12193a6f3aa0b70cd140b05d817fa",
      "tree": "625675df5b4f015dbb0d471b2219196f4ad94032",
      "parents": [
        "599eb39431962c221e23b490cf62736a03502644"
      ],
      "author": {
        "name": "Jerry Lee",
        "email": "jerrylee@broadcom.com",
        "time": "Fri Apr 15 12:57:05 2016 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:10:40 2016 -0500"
      },
      "message": "net: wireless: bcmdhd: check privilege on priv cmd\n\n  check net admin capability for ioctl calls\n\nBUG\u003d26425765\n\nChange-Id: Idae75c9fc530add3ead3508d25e994bbfec9a6de\n"
    },
    {
      "commit": "599eb39431962c221e23b490cf62736a03502644",
      "tree": "bfd017ee5dc627ecb4a0e1eb73da05586ad72c9a",
      "parents": [
        "c284e1b0386c412eb96a0ecac95774cde2ccb406"
      ],
      "author": {
        "name": "Rajesh Kemisetti",
        "email": "rajeshk@codeaurora.org",
        "time": "Tue Apr 12 23:17:10 2016 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:10:33 2016 -0500"
      },
      "message": "msm: kgsl: Add missing checks for alloc size and sglen\n\nIn _kgsl_sharedmem_page_alloc():\n\n- Make len of type size_t to be in line with size.\n  - Check for boundary limits of requested alloc size before honoring.\n    - Make sure sglen is greater than zero before marking it as end\n      of sg list.\n\nBUG\u003d27475454\n\nChange-Id: I8e18aad2118f58ce677050ff4c4a4b0823c4b4b3\n"
    },
    {
      "commit": "c284e1b0386c412eb96a0ecac95774cde2ccb406",
      "tree": "50f22e52f1f304418781c13ca0ae67ab6c34f038",
      "parents": [
        "020f7771f850e4458d1edd0bc8b33144e4760bda"
      ],
      "author": {
        "name": "Eric W. Biederman",
        "email": "ebiederm@xmission.com",
        "time": "Wed Jan 07 14:28:26 2015 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:10:24 2016 -0500"
      },
      "message": "mnt: Fail collect_mounts when applied to unmounted mounts\n\nThe only users of collect_mounts are in audit_tree.c\n\nIn audit_trim_trees and audit_add_tree_rule the path passed into\ncollect_mounts is generated from kern_path passed an audit_tree\npathname which is guaranteed to be an absolute path.   In those cases\ncollect_mounts is obviously intended to work on mounted paths and\nif a race results in paths that are unmounted when collect_mounts\nit is reasonable to fail early.\n\nThe paths passed into audit_tag_tree don\u0027t have the absolute path\ncheck.  But are used to play with fsnotify and otherwise interact with\nthe audit_trees, so again operating only on mounted paths appears\nreasonable.\n\nAvoid having to worry about what happens when we try and audit\nunmounted filesystems by restricting collect_mounts to mounts\nthat appear in the mount tree.\n\nChange-Id: I4a41beaaf80165b9bffb12983cb16799247c4d92\nSigned-off-by: \"Eric W. Biederman\" \u003cebiederm@xmission.com\u003e\n"
    },
    {
      "commit": "020f7771f850e4458d1edd0bc8b33144e4760bda",
      "tree": "dcb6317c6ee7a1b82f994c4be3043e8c09d791a3",
      "parents": [
        "b0816ebbc2feffe7c1dda0c4e415150fb588c4f4"
      ],
      "author": {
        "name": "Hong-Mei Li",
        "email": "a21834@motorola.com",
        "time": "Thu Apr 10 19:24:23 2014 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:10:17 2016 -0500"
      },
      "message": "netfilter: qtaguid: Add err handle for tag cmd\n\nIn some condition, xt_qtaguid would goes into re-tagging path\nwith the same sk but different sockfd or socket.\n\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++\nctrl_cmd_tag\n     sockfd_lookup(e.g., sock_fd\u003d1)\n              fget(f1)\n     tag f1\n\n ctrl_cmd_tag\n      sockfd_lookup(e.g., sock_fd\u003d2)\n              fget(f2)\n      retag\n               fput(f1)\n\n ctrl_cmd_tag\n      sockfd_lookup(e.g., sock_fd\u003d3)\n              fget(f3)\n      retag\n               fput(f1)\n\n ctrl_cmd_untagdd\n      sockfd_lookup(e.g., sock_fd\u003dxx)\n              fput(f1)\n              fput(fxx)\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nExplicitly, the first retag would trigger spinlock lockup,\nand the second retag may panic because f1 has been released\nduring the first time re-tagging.\nOr sometimes, tag -\u003e retag -\u003e untag -\u003e panic, the reason is\nthe same.\n\nTo void the issue, we goto err path and put back the socket\nref in this call\u0027s, but not the tagged socket.\n\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++\nctrl_cmd_tag\n     sockfd_lookup(e.g., sock_fd\u003d1)\n              fget(f1)\n     tag f1\n\n ctrl_cmd_tag\n      sockfd_lookup(e.g., sock_fd\u003d2)\n              fget(f2)\n      retag\n\t       if(f2!\u003df1)\n      err:\n               fput(f2)\n\n ctrl_cmd_tag\n      sockfd_lookup(e.g., sock_fd\u003d3)\n              fget(f3)\n      retag\n\t       if(f3!\u003df2)\n      err:\n               fput(f3)\n\n ctrl_cmd_untag\n      sockfd_lookup(e.g., sock_fd\u003dxx)\n              fput(f1)\n              fput(fxx)\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\nChange-Id: I4ad5db2457dc55899ebbbf974dce6dc5f81293af\nSigned-off-by: Hong-Mei Li \u003ca21834@motorola.com\u003e\nReviewed-on: http://gerrit.mot.com/626623\nSLTApproved: Slta Waiver \u003csltawvr@motorola.com\u003e\nTested-by: Jira Key \u003cjirakey@motorola.com\u003e\nReviewed-by: Yi-Wei Zhao \u003cgbjc64@motorola.com\u003e\nSubmit-Approved: Jira Key \u003cjirakey@motorola.com\u003e\nReviewed-by: Christopher Fries \u003cc.fries@motorola.com\u003e\n(cherry picked from commit 82760d15221e19509e85a8c43233c01741df7d4b)\nReviewed-on: http://gerrit.mot.com/629277\nReviewed-by: Upgrade Build \u003cdbbuild@motorola.com\u003e\nSLTApproved: Upgrade Build \u003cdbbuild@motorola.com\u003e\nSubmit-Approved: Upgrade Build \u003cdbbuild@motorola.com\u003e\nTested-by: Upgrade Build \u003cdbbuild@motorola.com\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "b0816ebbc2feffe7c1dda0c4e415150fb588c4f4",
      "tree": "f8b7db80935bbcf325c5b0861f4dffc19a3d84b8",
      "parents": [
        "6b11f1d7b0eb59d24123f61b97659eb84dbe336b"
      ],
      "author": {
        "name": "Kangjie Lu",
        "email": "kangjielu@gmail.com",
        "time": "Tue May 03 16:32:16 2016 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:09:34 2016 -0500"
      },
      "message": "USB: usbfs: fix potential infoleak in devio\n\nThe stack object “ci” has a total size of 8 bytes. Its last 3 bytes\nare padding bytes which are not initialized and leaked to userland\nvia “copy_to_user”.\n\nChange-Id: Icd49231ee1862682739a871ae78a5602ee104731\nSigned-off-by: Kangjie Lu \u003ckjlu@gatech.edu\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "6b11f1d7b0eb59d24123f61b97659eb84dbe336b",
      "tree": "2d35806f59e3cbb3b57725a21acecd8df42bf145",
      "parents": [
        "d7c7ddff7ce78454ae22e955d6308facc43e2088"
      ],
      "author": {
        "name": "Guillaume Nault",
        "email": "g.nault@alphalink.fr",
        "time": "Wed Mar 23 16:38:55 2016 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:09:20 2016 -0500"
      },
      "message": "ppp: take reference on channels netns\n\nLet channels hold a reference on their network namespace.\nSome channel types, like ppp_async and ppp_synctty, can have their\nuserspace controller running in a different namespace. Therefore they\ncan\u0027t rely on them to preclude their netns from being removed from\nunder them.\n\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nBUG: KASAN: use-after-free in ppp_unregister_channel+0x372/0x3a0 at\naddr ffff880064e217e0\nRead of size 8 by task syz-executor/11581\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\nBUG net_namespace (Not tainted): kasan: bad access detected\n-----------------------------------------------------------------------------\n\nDisabling lock debugging due to kernel taint\nINFO: Allocated in copy_net_ns+0x6b/0x1a0 age\u003d92569 cpu\u003d3 pid\u003d6906\n[\u003c      none      \u003e] ___slab_alloc+0x4c7/0x500 kernel/mm/slub.c:2440\n[\u003c      none      \u003e] __slab_alloc+0x4c/0x90 kernel/mm/slub.c:2469\n[\u003c     inline     \u003e] slab_alloc_node kernel/mm/slub.c:2532\n[\u003c     inline     \u003e] slab_alloc kernel/mm/slub.c:2574\n[\u003c      none      \u003e] kmem_cache_alloc+0x23a/0x2b0 kernel/mm/slub.c:2579\n[\u003c     inline     \u003e] kmem_cache_zalloc kernel/include/linux/slab.h:597\n[\u003c     inline     \u003e] net_alloc kernel/net/core/net_namespace.c:325\n[\u003c      none      \u003e] copy_net_ns+0x6b/0x1a0 kernel/net/core/net_namespace.c:360\n[\u003c      none      \u003e] create_new_namespaces+0x2f6/0x610 kernel/kernel/nsproxy.c:95\n[\u003c      none      \u003e] copy_namespaces+0x297/0x320 kernel/kernel/nsproxy.c:150\n[\u003c      none      \u003e] copy_process.part.35+0x1bf4/0x5760 kernel/kernel/fork.c:1451\n[\u003c     inline     \u003e] copy_process kernel/kernel/fork.c:1274\n[\u003c      none      \u003e] _do_fork+0x1bc/0xcb0 kernel/kernel/fork.c:1723\n[\u003c     inline     \u003e] SYSC_clone kernel/kernel/fork.c:1832\n[\u003c      none      \u003e] SyS_clone+0x37/0x50 kernel/kernel/fork.c:1826\n[\u003c      none      \u003e] entry_SYSCALL_64_fastpath+0x16/0x7a kernel/arch/x86/entry/entry_64.S:185\n\nINFO: Freed in net_drop_ns+0x67/0x80 age\u003d575 cpu\u003d2 pid\u003d2631\n[\u003c      none      \u003e] __slab_free+0x1fc/0x320 kernel/mm/slub.c:2650\n[\u003c     inline     \u003e] slab_free kernel/mm/slub.c:2805\n[\u003c      none      \u003e] kmem_cache_free+0x2a0/0x330 kernel/mm/slub.c:2814\n[\u003c     inline     \u003e] net_free kernel/net/core/net_namespace.c:341\n[\u003c      none      \u003e] net_drop_ns+0x67/0x80 kernel/net/core/net_namespace.c:348\n[\u003c      none      \u003e] cleanup_net+0x4e5/0x600 kernel/net/core/net_namespace.c:448\n[\u003c      none      \u003e] process_one_work+0x794/0x1440 kernel/kernel/workqueue.c:2036\n[\u003c      none      \u003e] worker_thread+0xdb/0xfc0 kernel/kernel/workqueue.c:2170\n[\u003c      none      \u003e] kthread+0x23f/0x2d0 kernel/drivers/block/aoe/aoecmd.c:1303\n[\u003c      none      \u003e] ret_from_fork+0x3f/0x70 kernel/arch/x86/entry/entry_64.S:468\nINFO: Slab 0xffffea0001938800 objects\u003d3 used\u003d0 fp\u003d0xffff880064e20000\nflags\u003d0x5fffc0000004080\nINFO: Object 0xffff880064e20000 @offset\u003d0 fp\u003d0xffff880064e24200\n\nCPU: 1 PID: 11581 Comm: syz-executor Tainted: G    B           4.4.0+\nHardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS\nrel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014\n 00000000ffffffff ffff8800662c7790 ffffffff8292049d ffff88003e36a300\n ffff880064e20000 ffff880064e20000 ffff8800662c77c0 ffffffff816f2054\n ffff88003e36a300 ffffea0001938800 ffff880064e20000 0000000000000000\nCall Trace:\n [\u003c     inline     \u003e] __dump_stack kernel/lib/dump_stack.c:15\n [\u003cffffffff8292049d\u003e] dump_stack+0x6f/0xa2 kernel/lib/dump_stack.c:50\n [\u003cffffffff816f2054\u003e] print_trailer+0xf4/0x150 kernel/mm/slub.c:654\n [\u003cffffffff816f875f\u003e] object_err+0x2f/0x40 kernel/mm/slub.c:661\n [\u003c     inline     \u003e] print_address_description kernel/mm/kasan/report.c:138\n [\u003cffffffff816fb0c5\u003e] kasan_report_error+0x215/0x530 kernel/mm/kasan/report.c:236\n [\u003c     inline     \u003e] kasan_report kernel/mm/kasan/report.c:259\n [\u003cffffffff816fb4de\u003e] __asan_report_load8_noabort+0x3e/0x40 kernel/mm/kasan/report.c:280\n [\u003c     inline     \u003e] ? ppp_pernet kernel/include/linux/compiler.h:218\n [\u003cffffffff83ad71b2\u003e] ? ppp_unregister_channel+0x372/0x3a0 kernel/drivers/net/ppp/ppp_generic.c:2392\n [\u003c     inline     \u003e] ppp_pernet kernel/include/linux/compiler.h:218\n [\u003cffffffff83ad71b2\u003e] ppp_unregister_channel+0x372/0x3a0 kernel/drivers/net/ppp/ppp_generic.c:2392\n [\u003c     inline     \u003e] ? ppp_pernet kernel/drivers/net/ppp/ppp_generic.c:293\n [\u003cffffffff83ad6f26\u003e] ? ppp_unregister_channel+0xe6/0x3a0 kernel/drivers/net/ppp/ppp_generic.c:2392\n [\u003cffffffff83ae18f3\u003e] ppp_asynctty_close+0xa3/0x130 kernel/drivers/net/ppp/ppp_async.c:241\n [\u003cffffffff83ae1850\u003e] ? async_lcp_peek+0x5b0/0x5b0 kernel/drivers/net/ppp/ppp_async.c:1000\n [\u003cffffffff82c33239\u003e] tty_ldisc_close.isra.1+0x99/0xe0 kernel/drivers/tty/tty_ldisc.c:478\n [\u003cffffffff82c332c0\u003e] tty_ldisc_kill+0x40/0x170 kernel/drivers/tty/tty_ldisc.c:744\n [\u003cffffffff82c34943\u003e] tty_ldisc_release+0x1b3/0x260 kernel/drivers/tty/tty_ldisc.c:772\n [\u003cffffffff82c1ef21\u003e] tty_release+0xac1/0x13e0 kernel/drivers/tty/tty_io.c:1901\n [\u003cffffffff82c1e460\u003e] ? release_tty+0x320/0x320 kernel/drivers/tty/tty_io.c:1688\n [\u003cffffffff8174de36\u003e] __fput+0x236/0x780 kernel/fs/file_table.c:208\n [\u003cffffffff8174e405\u003e] ____fput+0x15/0x20 kernel/fs/file_table.c:244\n [\u003cffffffff813595ab\u003e] task_work_run+0x16b/0x200 kernel/kernel/task_work.c:115\n [\u003c     inline     \u003e] exit_task_work kernel/include/linux/task_work.h:21\n [\u003cffffffff81307105\u003e] do_exit+0x8b5/0x2c60 kernel/kernel/exit.c:750\n [\u003cffffffff813fdd20\u003e] ? debug_check_no_locks_freed+0x290/0x290 kernel/kernel/locking/lockdep.c:4123\n [\u003cffffffff81306850\u003e] ? mm_update_next_owner+0x6f0/0x6f0 kernel/kernel/exit.c:357\n [\u003cffffffff813215e6\u003e] ? __dequeue_signal+0x136/0x470 kernel/kernel/signal.c:550\n [\u003cffffffff8132067b\u003e] ? recalc_sigpending_tsk+0x13b/0x180 kernel/kernel/signal.c:145\n [\u003cffffffff81309628\u003e] do_group_exit+0x108/0x330 kernel/kernel/exit.c:880\n [\u003cffffffff8132b9d4\u003e] get_signal+0x5e4/0x14f0 kernel/kernel/signal.c:2307\n [\u003c     inline     \u003e] ? kretprobe_table_lock kernel/kernel/kprobes.c:1113\n [\u003cffffffff8151d355\u003e] ? kprobe_flush_task+0xb5/0x450 kernel/kernel/kprobes.c:1158\n [\u003cffffffff8115f7d3\u003e] do_signal+0x83/0x1c90 kernel/arch/x86/kernel/signal.c:712\n [\u003cffffffff8151d2a0\u003e] ? recycle_rp_inst+0x310/0x310 kernel/include/linux/list.h:655\n [\u003cffffffff8115f750\u003e] ? setup_sigcontext+0x780/0x780 kernel/arch/x86/kernel/signal.c:165\n [\u003cffffffff81380864\u003e] ? finish_task_switch+0x424/0x5f0 kernel/kernel/sched/core.c:2692\n [\u003c     inline     \u003e] ? finish_lock_switch kernel/kernel/sched/sched.h:1099\n [\u003cffffffff81380560\u003e] ? finish_task_switch+0x120/0x5f0 kernel/kernel/sched/core.c:2678\n [\u003c     inline     \u003e] ? context_switch kernel/kernel/sched/core.c:2807\n [\u003cffffffff85d794e9\u003e] ? __schedule+0x919/0x1bd0 kernel/kernel/sched/core.c:3283\n [\u003cffffffff81003901\u003e] exit_to_usermode_loop+0xf1/0x1a0 kernel/arch/x86/entry/common.c:247\n [\u003c     inline     \u003e] prepare_exit_to_usermode kernel/arch/x86/entry/common.c:282\n [\u003cffffffff810062ef\u003e] syscall_return_slowpath+0x19f/0x210 kernel/arch/x86/entry/common.c:344\n [\u003cffffffff85d88022\u003e] int_ret_from_sys_call+0x25/0x9f kernel/arch/x86/entry/entry_64.S:281\nMemory state around the buggy address:\n ffff880064e21680: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb\n ffff880064e21700: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb\n\u003effff880064e21780: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb\n                                                       ^\n ffff880064e21800: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb\n ffff880064e21880: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\nChange-Id: I591b30eafa1b57bd2e211e1f33c39128702ff0b0\nFixes: 273ec51dd7ce (\"net: ppp_generic - introduce net-namespace functionality v2\")\nReported-by: Baozeng Ding \u003csploving1@gmail.com\u003e\nSigned-off-by: Guillaume Nault \u003cg.nault@alphalink.fr\u003e\nReviewed-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "d7c7ddff7ce78454ae22e955d6308facc43e2088",
      "tree": "97f60dcf72ca730e06ef8a0ed9253b36a757d5ec",
      "parents": [
        "293c325212f437c2cd754b1d270483b837accbf7"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Thu Mar 10 01:56:23 2016 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:09:14 2016 -0500"
      },
      "message": "netfilter: x_tables: check for size overflow\n\nBen Hawkes says:\n integer overflow in xt_alloc_table_info, which on 32-bit systems can\n lead to small structure allocation and a copy_from_user based heap\n corruption.\n\nChange-Id: I13c554c630651a37e3f6a195e9a5f40cddcb29a1\nReported-by: Ben Hawkes \u003chawkes@google.com\u003e\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "293c325212f437c2cd754b1d270483b837accbf7",
      "tree": "534371f9260e09878628038fc315b48520d1f80e",
      "parents": [
        "1ae412de70a2823031555382c794056cc979348f"
      ],
      "author": {
        "name": "Kangjie Lu",
        "email": "kangjielu@gmail.com",
        "time": "Tue May 03 16:44:32 2016 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:09:07 2016 -0500"
      },
      "message": "ALSA: timer: Fix leak in events via snd_timer_user_tinterrupt\n\nThe stack object “r1” has a total size of 32 bytes. Its field\n“event” and “val” both contain 4 bytes padding. These 8 bytes\npadding bytes are sent to user without being initialized.\n\nChange-Id: Ie3dcdee7da8ad292712814e8402c571a717ab8d1\nSigned-off-by: Kangjie Lu \u003ckjlu@gatech.edu\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "1ae412de70a2823031555382c794056cc979348f",
      "tree": "dc6ad1058cb5b67c2fa44f9c018c9a987ea221d7",
      "parents": [
        "9c0018762efca25ea130b077bf34d590772e3b9c"
      ],
      "author": {
        "name": "Kangjie Lu",
        "email": "kangjielu@gmail.com",
        "time": "Tue May 03 16:44:20 2016 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:09:00 2016 -0500"
      },
      "message": "ALSA: timer: Fix leak in events via snd_timer_user_ccallback\n\nThe stack object “r1” has a total size of 32 bytes. Its field\n“event” and “val” both contain 4 bytes padding. These 8 bytes\npadding bytes are sent to user without being initialized.\n\nChange-Id: I5ece63432f6ca6251fa31c046c211c8c03313a59\nSigned-off-by: Kangjie Lu \u003ckjlu@gatech.edu\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "9c0018762efca25ea130b077bf34d590772e3b9c",
      "tree": "d57da7e060806838f67a64ff50b86be58ce4ed52",
      "parents": [
        "9939b5a28488315eec0b7b4168238597472a35da"
      ],
      "author": {
        "name": "Kangjie Lu",
        "email": "kangjielu@gmail.com",
        "time": "Tue May 03 16:44:07 2016 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:08:55 2016 -0500"
      },
      "message": "ALSA: timer: Fix leak in SNDRV_TIMER_IOCTL_PARAMS\n\nThe stack object “tread” has a total size of 32 bytes. Its field\n“event” and “val” both contain 4 bytes padding. These 8 bytes\npadding bytes are sent to user without being initialized.\n\nChange-Id: Ibf2868136a538eed0f2e75395a5f14a8608dd86d\nSigned-off-by: Kangjie Lu \u003ckjlu@gatech.edu\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "9939b5a28488315eec0b7b4168238597472a35da",
      "tree": "010a423f433fe5119629c71e43373667ad463720",
      "parents": [
        "4fb966bf6c251d4f15f92831b16150b43846db03"
      ],
      "author": {
        "name": "Vladis Dronov",
        "email": "vdronov@redhat.com",
        "time": "Tue Dec 01 13:09:17 2015 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:08:48 2016 -0500"
      },
      "message": "Input: aiptek - fix crash on detecting device without endpoints\n\nThe aiptek driver crashes in aiptek_probe() when a specially crafted USB\ndevice without endpoints is detected. This fix adds a check that the device\nhas proper configuration expected by the driver. Also an error return value\nis changed to more matching one in one of the error paths.\n\nChange-Id: I02fa4ffcbe9a71948947ef5baeb72632688d9d07\nReported-by: Ralf Spenneberg \u003cralf@spenneberg.net\u003e\nSigned-off-by: Vladis Dronov \u003cvdronov@redhat.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdmitry.torokhov@gmail.com\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "4fb966bf6c251d4f15f92831b16150b43846db03",
      "tree": "9df4e5a0cf4682b3e9a0edcaa8072f2291a0bf46",
      "parents": [
        "721750ea7398ce2fb2f4686c65f752fed0fa8ecb"
      ],
      "author": {
        "name": "Julia Lawall",
        "email": "Julia.Lawall@lip6.fr",
        "time": "Mon Apr 23 22:26:58 2012 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:08:41 2016 -0500"
      },
      "message": "Input: aiptek - adjust error-handling code label\n\nAt the point of this error-handling code, aiptek-\u003eurb has been allocated,\nand it does not appear to be less necessary to free it here than in the\nerror-handling code just below.\n\nChange-Id: I1b07d7cd62a3df78759dd5a9a5ad27e58350df01\nSigned-off-by: Julia Lawall \u003cJulia.Lawall@lip6.fr\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "721750ea7398ce2fb2f4686c65f752fed0fa8ecb",
      "tree": "b9503c09010c7bcddd4bc3aa54600b092dbb0c4d",
      "parents": [
        "31467ee249e761873bdde83944e6014316be9a26"
      ],
      "author": {
        "name": "Florian Westphal",
        "email": "fw@strlen.de",
        "time": "Tue Mar 22 18:02:52 2016 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:08:32 2016 -0500"
      },
      "message": "netfilter: x_tables: fix unconditional helper\n\nBen Hawkes says:\n\n In the mark_source_chains function (net/ipv4/netfilter/ip_tables.c) it\n is possible for a user-supplied ipt_entry structure to have a large\n next_offset field. This field is not bounds checked prior to writing a\n counter value at the supplied offset.\n\nProblem is that mark_source_chains should not have been called --\nthe rule doesn\u0027t have a next entry, so its supposed to return\nan absolute verdict of either ACCEPT or DROP.\n\nHowever, the function conditional() doesn\u0027t work as the name implies.\nIt only checks that the rule is using wildcard address matching.\n\nHowever, an unconditional rule must also not be using any matches\n(no -m args).\n\nThe underflow validator only checked the addresses, therefore\npassing the \u0027unconditional absolute verdict\u0027 test, while\nmark_source_chains also tested for presence of matches, and thus\nproceeeded to the next (not-existent) rule.\n\nUnify this so that all the callers have same idea of \u0027unconditional rule\u0027.\n\nChange-Id: Id2b4779f2e41b1a82b1d266bb9e11118c4428afc\nReported-by: Ben Hawkes \u003chawkes@google.com\u003e\nSigned-off-by: Florian Westphal \u003cfw@strlen.de\u003e\nSigned-off-by: Pablo Neira Ayuso \u003cpablo@netfilter.org\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "31467ee249e761873bdde83944e6014316be9a26",
      "tree": "9296cd9618a9b7ff77277998a0976d68cdb03102",
      "parents": [
        "ff40df33acfc59861b1392c221fedd10092ba66a"
      ],
      "author": {
        "name": "David S. Miller",
        "email": "davem@davemloft.net",
        "time": "Sun Mar 13 23:28:00 2016 -0400"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:08:24 2016 -0500"
      },
      "message": "ipv4: Don\u0027t do expensive useless work during inetdev destroy.\n\nWhen an inetdev is destroyed, every address assigned to the interface\nis removed.  And in this scenerio we do two pointless things which can\nbe very expensive if the number of assigned interfaces is large:\n\n1) Address promotion.  We are deleting all addresses, so there is no\n   point in doing this.\n\n2) A full nf conntrack table purge for every address.  We only need to\n   do this once, as is already caught by the existing\n   masq_dev_notifier so masq_inet_event() can skip this.\n\nChange-Id: I4b2a3ed665543728451c21465fb90ec89f739135\nReported-by: Solar Designer \u003csolar@openwall.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nTested-by: Cyrill Gorcunov \u003cgorcunov@openvz.org\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "ff40df33acfc59861b1392c221fedd10092ba66a",
      "tree": "2fcd50b9b8dfb1f1f43de07fe4face206e247d42",
      "parents": [
        "43a98bb921e41680615e05987661fc31fdea2c30"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oneukum@suse.com",
        "time": "Tue Mar 15 10:14:04 2016 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:08:19 2016 -0500"
      },
      "message": "USB: cdc-acm: more sanity checking\n\nAn attack has become available which pretends to be a quirky\ndevice circumventing normal sanity checks and crashes the kernel\nby an insufficient number of interfaces. This patch adds a check\nto the code path for quirky devices.\n\nChange-Id: Ie96a95d833e4ca9c3c3c3557679115ffb7069b5b\nSigned-off-by: Oliver Neukum \u003cONeukum@suse.com\u003e\nCC: stable@vger.kernel.org\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "43a98bb921e41680615e05987661fc31fdea2c30",
      "tree": "0a84cd6079b3ab443b88e957e800d491d07d152b",
      "parents": [
        "547b3998cadf2932920c99b596b00316ecf2391d"
      ],
      "author": {
        "name": "Oliver Neukum",
        "email": "oneukum@suse.com",
        "time": "Mon Mar 07 11:31:10 2016 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:08:12 2016 -0500"
      },
      "message": "usbnet: cleanup after bind() in probe()\n\nIn case bind() works, but a later error forces bailing\nin probe() in error cases work and a timer may be scheduled.\nThey must be killed. This fixes an error case related to\nthe double free reported in\nhttp://www.spinics.net/lists/netdev/msg367669.html\nand needs to go on top of Linus\u0027 fix to cdc-ncm.\n\nChange-Id: I43b1673bc31b3af05789e461b39c55062735cc56\nSigned-off-by: Oliver Neukum \u003cONeukum@suse.com\u003e\nSigned-off-by: David S. Miller \u003cdavem@davemloft.net\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "547b3998cadf2932920c99b596b00316ecf2391d",
      "tree": "e1cc78e7f20101d13e072b6281e65ebff8919cf0",
      "parents": [
        "53b4f1f0348a4e335fe05906c13591c340d81a4e"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Mon Jan 18 13:52:47 2016 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:08:05 2016 -0500"
      },
      "message": "ALSA: hrtimer: Fix stall by hrtimer_cancel()\n\nhrtimer_cancel() waits for the completion from the callback, thus it\nmust not be called inside the callback itself.  This was already a\nproblem in the past with ALSA hrtimer driver, and the early commit\n[fcfdebe70759: ALSA: hrtimer - Fix lock-up] tried to address it.\n\nHowever, the previous fix is still insufficient: it may still cause a\nlockup when the ALSA timer instance reprograms itself in its callback.\nThen it invokes the start function even in snd_timer_interrupt() that\nis called in hrtimer callback itself, results in a CPU stall.  This is\nno hypothetical problem but actually triggered by syzkaller fuzzer.\n\nThis patch tries to fix the issue again.  Now we call\nhrtimer_try_to_cancel() at both start and stop functions so that it\nwon\u0027t fall into a deadlock, yet giving some chance to cancel the queue\nif the functions have been called outside the callback.  The proper\nhrtimer_cancel() is called in anyway at closing, so this should be\nenough.\n\nChange-Id: Id6224b2a3ade0d217e891e6af09744df4d0b2e5c\nReported-and-tested-by: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\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": "12cc41c1fae385eb8ceaff6964a155595c98a815",
      "tree": "d8aee36b34ca48c79b5c199091e6ac475184b29a",
      "parents": [
        "dfc7c8f78401781076380010b1a05f0d6b8c6f8d"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Thu Jan 14 16:30:58 2016 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:07:53 2016 -0500"
      },
      "message": "ALSA: timer: Harden slave timer list handling\n\nA slave timer instance might be still accessible in a racy way while\noperating the master instance as it lacks of locking.  Since the\nmaster operation is mostly protected with timer-\u003elock, we should cope\nwith it while changing the slave instance, too.  Also, some linked\nlists (active_list and ack_list) of slave instances aren\u0027t unlinked\nimmediately at stopping or closing, and this may lead to unexpected\naccesses.\n\nThis patch tries to address these issues.  It adds spin lock of\ntimer-\u003elock (either from master or slave, which is equivalent) in a\nfew places.  For avoiding a deadlock, we ensure that the global\nslave_active_lock is always locked at first before each timer lock.\n\nAlso, ack and active_list of slave instances are properly unlinked at\nsnd_timer_stop() and snd_timer_close().\n\nLast but not least, remove the superfluous call of _snd_timer_stop()\nat removing slave links.  This is a noop, and calling it may confuse\nreaders wrt locking.  Further cleanup will follow in a later patch.\n\nActually we\u0027ve got reports of use-after-free by syzkaller fuzzer, and\nthis hopefully fixes these issues.\n\nChange-Id: I572878b909dda522dbedc84633414185802bc974\nReported-by: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "dfc7c8f78401781076380010b1a05f0d6b8c6f8d",
      "tree": "76de9c6e6469be65ebc80b2646f4a02587b195d8",
      "parents": [
        "eb32238a2cc25dc6a1b98449db6ee9f9832fab06"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Jan 13 17:48:01 2016 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:07:46 2016 -0500"
      },
      "message": "ALSA: timer: Fix race among timer ioctls\n\nALSA timer ioctls have an open race and this may lead to a\nuse-after-free of timer instance object.  A simplistic fix is to make\neach ioctl exclusive.  We have already tread_sem for controlling the\ntread, and extend this as a global mutex to be applied to each ioctl.\n\nThe downside is, of course, the worse concurrency.  But these ioctls\naren\u0027t to be parallel accessible, in anyway, so it should be fine to\nserialize there.\n\nChange-Id: Iaa21b00f62e02cc58e346a29846e0fce6536e860\nReported-by: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nTested-by: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "eb32238a2cc25dc6a1b98449db6ee9f9832fab06",
      "tree": "2bef7db43a75a9f4d043eea6eb0763277c596e66",
      "parents": [
        "cef9ea57788c780edb2c7974663f14ebe9ce1d1b"
      ],
      "author": {
        "name": "Takashi Iwai",
        "email": "tiwai@suse.de",
        "time": "Wed Jan 13 21:35:06 2016 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 02:07:38 2016 -0500"
      },
      "message": "ALSA: timer: Fix double unlink of active_list\n\nALSA timer instance object has a couple of linked lists and they are\nunlinked unconditionally at snd_timer_stop().  Meanwhile\nsnd_timer_interrupt() unlinks it, but it calls list_del() which leaves\nthe element list itself unchanged.  This ends up with unlinking twice,\nand it was caught by syzkaller fuzzer.\n\nThe fix is to use list_del_init() variant properly there, too.\n\nChange-Id: I95e2ab06180dfe43fb6b7c2875a866b53ca245ce\nReported-by: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nTested-by: Dmitry Vyukov \u003cdvyukov@google.com\u003e\nCc: \u003cstable@vger.kernel.org\u003e\nSigned-off-by: Takashi Iwai \u003ctiwai@suse.de\u003e\nSigned-off-by: SteadyQuad \u003cSteadyQuad@gmail.com\u003e\n"
    },
    {
      "commit": "cef9ea57788c780edb2c7974663f14ebe9ce1d1b",
      "tree": "a35f4d0c0f57216ce58a775526f37d4637b508a1",
      "parents": [
        "873b28326437e3fe9432dc2451ffea42aa7e2468"
      ],
      "author": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Thu Aug 04 01:17:25 2016 -0500"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:54:18 2016 -0500"
      },
      "message": "usb: do not default USB_GOBI3K_NET to a module\n\nChange-Id: I61896adf9b6b7d94e57977a72fdf2569aef967ea\n"
    },
    {
      "commit": "873b28326437e3fe9432dc2451ffea42aa7e2468",
      "tree": "0b80199409bbe39552b24ecbf270ffce6c7efb20",
      "parents": [
        "99ace8ecc013be745d7b0185521fe7f4e2f7c9fe"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Thu Jul 14 20:35:10 2016 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:50:26 2016 -0500"
      },
      "message": "cpu_input_boost: Give fb_boost_nb the highest priority\n\nCPU boosts should come before anything else in the framebuffer notifier\nchain in order to speed up system resume.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "99ace8ecc013be745d7b0185521fe7f4e2f7c9fe",
      "tree": "830eb4acc21396321b7842af3e4db9c10d4f3244",
      "parents": [
        "df998e70785e0313df3a3d8085c8c1714536c24f"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Thu Apr 28 19:54:30 2016 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:50:20 2016 -0500"
      },
      "message": "cpu_input_boost: Use fixed-width integer types for local variables\n\nIncreases code clarity and potential portability to other architectures in\nthe future.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "df998e70785e0313df3a3d8085c8c1714536c24f",
      "tree": "9cd3a4599da07240aa4e3ead59a6d05bb9c430d9",
      "parents": [
        "290110ec37be5550524a55b9f5cf54b2e7dd0be0"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sat Apr 23 22:32:40 2016 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:50:12 2016 -0500"
      },
      "message": "cpu_input_boost: Remove unnecessary kzallocs\n\nThere is no reason to manually allocate memory for the ib and fb members\nof boost_policy; we can just allocate them at the same time boost_policy is\nallocated. This reduces code complexity.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "290110ec37be5550524a55b9f5cf54b2e7dd0be0",
      "tree": "25f112d08c1690bf3bf1b10897e43297a43ac6fc",
      "parents": [
        "0a499849750ad3298cf4a266a27872d00ba96933"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Fri Apr 15 12:15:54 2016 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:50:06 2016 -0500"
      },
      "message": "cpu_input_boost: Clean up code style\n\n*Organize input-boost parameters into ib_config struct\n*Organize framebuffer-boost parameters into fb_boost struct\n*Organize all structs and config parameters into boost_policy struct\n*Clean up global variable access\n*Properly address init failures\n\nThis commit does not alter functionality or sysfs input nodes.\n\nTODO: Add better documentation.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "0a499849750ad3298cf4a266a27872d00ba96933",
      "tree": "19a6dc42032f3a07f7b14f7391684d5bd20ac027",
      "parents": [
        "7d03b9c251999c0bb3341a87943920f26f251c4d"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Fri Apr 15 11:38:25 2016 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:49:59 2016 -0500"
      },
      "message": "cpu_input_boost: Increase framebuffer boost duration to 1100 ms\n"
    },
    {
      "commit": "7d03b9c251999c0bb3341a87943920f26f251c4d",
      "tree": "14150458eca0811ee26d127b8c76dddd3ce2f7b0",
      "parents": [
        "1e759e757e8a7d4ded3816e9b30c2e4fda81f1d5"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Thu Apr 14 21:34:34 2016 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:49:52 2016 -0500"
      },
      "message": "cpu_input_boost: Fix synchronization issues\n\nAdd spinlock protection around critical checks and operations.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "1e759e757e8a7d4ded3816e9b30c2e4fda81f1d5",
      "tree": "beefe4eae33f0980ecccdd4a75280e552ac66940",
      "parents": [
        "4588d2eda6c9c220069a4b006d017d3a7a8c1ae2"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sat Jan 23 12:11:12 2016 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:49:44 2016 -0500"
      },
      "message": "cpu_input_boost: Remove module references\n\nThis isn\u0027t a module.\n"
    },
    {
      "commit": "4588d2eda6c9c220069a4b006d017d3a7a8c1ae2",
      "tree": "07a330d3eba5c6686b793b85ab70001165282d04",
      "parents": [
        "274f58ae210ae8d6d9483c8c3eb4c4cea9c521f2"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Mon Dec 14 02:26:29 2015 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:49:37 2016 -0500"
      },
      "message": "cpu_input_boost: Remove thread-migration boosting and clean up\n\nThread migrations occur far too often for boosting on thread-migration to be\nbattery-efficient. Even with load-based syncs implemented, frequent migration\nboosts caused excessive heating and battery drain (especially during streaming\nvideo playback).\n\nRemove thread-migration (as it will never be used) and clean up the code that\nremains. The framebuffer boost/unboost code has been split into their own\nrespective workers, comments have been added, and variables have been renamed\nfor consistency.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "274f58ae210ae8d6d9483c8c3eb4c4cea9c521f2",
      "tree": "4870377c9e955407d322196c8f256a4af4a9fb09",
      "parents": [
        "1fa2871bfb11cfe4210c2ab7b6b0c13dd73fd4f8"
      ],
      "author": {
        "name": "myfluxi",
        "email": "linflux@arcor.de",
        "time": "Wed Nov 11 20:33:49 2015 +0100"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:49:30 2016 -0500"
      },
      "message": "cpu_input_boost: Remove sync_threshold to recover from regression\n\nLoad-based syncs successfully avoid boosting of lightweight threads.\nUnfortunately, CPUs with high frequencies over sync_threshold will\nbe unnaturally throttled which becomes apparent in hackbench with\nits high number of thread migrations. None of the newer targets sets\nsync_threshold, either.\n\nPre patch:\nroot@hammerhead:/ # perf stat --repeat 10 hackbench 10\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.923\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 1.106\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.934\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.917\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.765\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.807\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.930\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.937\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.858\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.808\n\n Performance counter stats for \u0027hackbench 10  \u0027 (10 runs):\n\n   3575.129450 task-clock#3.498 CPUs utilized\n ( +-  3.95% )\n 42637 context-switches  #0.012 M/sec\n ( +- 12.54% )\n  6152 CPU-migrations#0.002 M/sec\n ( +-  9.98% )\n 37874 page-faults   #0.011 M/sec\n ( +-  0.02% )\n6208354174 cycles#1.737 GHz \u003c--- should not happen!\n ( +-  1.78% ) [90.87%]\n 0 stalled-cycles-frontend   #0.00% frontend cycles idle\n ( +-  0.00% ) [88.02%]\n 0 stalled-cycles-backend#0.00% backend  cycles idle\n ( +-  0.00% ) [87.13%]\n1948037598 instructions  #0.31  insns per cycle\n ( +-  1.53% ) [89.32%]\n 203196136 branches  #   56.836 M/sec\n ( +-  1.46% ) [90.70%]\n   5345440 branch-misses #2.63% of all branches\n ( +-  4.62% ) [85.52%]\n\n   1.022038466 seconds time elapsed\n ( +-  4.09% )\n\nPost patch:\nroot@hammerhead:/ # perf stat --repeat 10 hackbench 10\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.735\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.815\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.754\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.721\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.770\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.767\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.762\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.689\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.748\nRunning in process mode with 10 groups using 40 file descriptors each (\u003d\u003d 400 tasks)\nEach sender will pass 100 messages of 100 bytes\nTime: 0.679\n\n Performance counter stats for \u0027hackbench 10  \u0027 (10 runs):\n\n   2838.930889 task-clock#3.343 CPUs utilized\n ( +-  1.81% )\n 22301 context-switches  #0.008 M/sec\n ( +- 11.18% )\n  3641 CPU-migrations#0.001 M/sec\n ( +- 11.13% )\n 37950 page-faults   #0.013 M/sec\n ( +-  0.09% )\n5714558403 cycles#2.013 GHz\n ( +-  1.59% ) [91.42%]\n 0 stalled-cycles-frontend   #0.00% frontend cycles idle\n ( +-  0.00% ) [89.07%]\n 0 stalled-cycles-backend#0.00% backend  cycles idle\n ( +-  0.00% ) [89.74%]\n1868219180 instructions  #0.33  insns per cycle\n ( +-  0.82% ) [90.90%]\n 193711678 branches  #   68.234 M/sec\n ( +-  1.44% ) [91.41%]\n   4927373 branch-misses #2.54% of all branches\n ( +-  3.57% ) [87.20%]\n\n   0.849242812 seconds time elapsed\n ( +-  1.58% )\n\nChange-Id: I8744cc1f96fefa81149ded1c2dc54ff4d3b76665\n"
    },
    {
      "commit": "1fa2871bfb11cfe4210c2ab7b6b0c13dd73fd4f8",
      "tree": "5e1b12fa9f27862023cfe1dc3d00f03949b7f67a",
      "parents": [
        "03fd42e922929f0def1b7c1f86626052882438b4"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Fri Nov 27 10:58:36 2015 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:49:22 2016 -0500"
      },
      "message": "cpu_input_boost: Rewrite to use dual-core boosting and clean up\n\nPreviously, up to 3 CPUs could boosted at any given time; now, only 2 CPUs\ncan be boosted. With the new logic, 2 CPUs are boosted when only 1 is online,\nand 1 CPU is boosted when there is more than 1 CPU online. This new logic\nassumes that when only 1 CPU is online, a 2nd CPU will come online shortly\nafter due to user interaction, and that newly-onlined CPU will be boosted.\nIf a 2nd CPU isn\u0027t enabled within the time frame of the CPU0\u0027s boost, then\nonly CPU0 will have been boosted. If a 2nd CPU does come online within CPU0\u0027s\nboost time frame, then it will be boosted for the remaining time left on\nCPU0\u0027s boost (minus 10ms to eliminate any trivial racing between the\nrestoration workers).\n\nBoost duration now uses a single variable exposed in sysfs. The user-set\nboost duration is reduced by a factor of (1 + num_online_cpus())/(3 + num_online_cpus()).\nIn other words, when there are more CPUs online, the boost duration is\nshorter.\n\nVarious functions and variables have been renamed for clarity, and other\nparts of the code have been cleaned up as well.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "03fd42e922929f0def1b7c1f86626052882438b4",
      "tree": "3acdeb79e7c2393fe18636de2f29660cb09310df",
      "parents": [
        "82c591c09e3b20f5ffee98793b49c84fa1645423"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Thu Oct 22 20:15:04 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:49:08 2016 -0500"
      },
      "message": "cpu_input_boost: Increase unblank-boost duration to 900ms\n"
    },
    {
      "commit": "82c591c09e3b20f5ffee98793b49c84fa1645423",
      "tree": "921098148edc6588864dfb7af4f0ddab3f012e02",
      "parents": [
        "7aeea5bd7391d53e3fee7bc8328f1acd6ba9a61b"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Mon Sep 21 22:01:22 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:48:53 2016 -0500"
      },
      "message": "cpu_input_boost: Reduce input-boost duration\n\nTODO: Make the input-boost duration equation more standard and configurable from sysfs.\n"
    },
    {
      "commit": "7aeea5bd7391d53e3fee7bc8328f1acd6ba9a61b",
      "tree": "aaca19723d7a44041acd8a6e18e8f80b5fb42e6d",
      "parents": [
        "a2c14e434c7454b08d3f2902056e1b8b428f55d9"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Tue Sep 08 22:06:01 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:48:45 2016 -0500"
      },
      "message": "cpu_input_boost: Remove input-boost frequency limitations\n\nAllow any boost frequency for any CPU.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "a2c14e434c7454b08d3f2902056e1b8b428f55d9",
      "tree": "edb6697176fd13cdf1f422295626c1a4f508c97e",
      "parents": [
        "db07956670a6a4de8c6852500abace952b718ba0"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sat Aug 22 12:12:27 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:48:38 2016 -0500"
      },
      "message": "cpu_input_boost: Remove boost on framebuffer blank\n\nThere was a bug that caused the minfreq of the CPU to get stuck at policy-\u003emax while the screen was off and the CPU was awake. The bug is fixed now (see the change to fb_boost_fn()), but boosting on fb blank is too risky and not worth it, so remove it.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "db07956670a6a4de8c6852500abace952b718ba0",
      "tree": "ddb2326bfdd4533c614093ee662adaaf9c97937c",
      "parents": [
        "39db19955b5a527c5142e2fe1acad9c27c2dda15"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sat Aug 08 21:22:27 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:48:29 2016 -0500"
      },
      "message": "cpu_input_boost: Add boosting on thread migration\n\n*Originally from CAF\u0027s cpu-boost driver, adapted to this driver\n*Renamed variables and refactored all of the code to make things less confusing\n*Added sysfs controls for thread-migration boosting\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "39db19955b5a527c5142e2fe1acad9c27c2dda15",
      "tree": "70ee3b1d23ad4d934f2711d63cb5a175ba8cb731",
      "parents": [
        "793cb5884029df1c9266935b3ea74b32ac2e5e19"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sat Aug 08 00:08:25 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:48:13 2016 -0500"
      },
      "message": "cpu_input_boost: Boost on framebuffer blank/unblank\n\n*Boosts all online CPUs to policy-\u003emax for 500ms on framebuffer blank/unblank\n*Takes precedence and overrides regular boosts\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "793cb5884029df1c9266935b3ea74b32ac2e5e19",
      "tree": "46c5c6d57d69b46f5b0b44724ccfeef9c43af8cb",
      "parents": [
        "cb368e6fa656736b295b688fe5b7c82b6d8a2ec4"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Fri Aug 07 23:17:07 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:48:07 2016 -0500"
      },
      "message": "cpu_input_boost: Clean up and fix bugs\n\n*Removed derpy user_minfreq feature\n*Fixed bug where too few CPUs were boosted (fewer than nr_cpus_to_boost were boosted)\n*Fixed boost duration equation (it would calculate a negative boost duration sometimes, but it didn\u0027t cause actual errors because nr_cpus_to_boost is unsigned)\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "cb368e6fa656736b295b688fe5b7c82b6d8a2ec4",
      "tree": "29550d20d451fe00b5de0be6f83c0dc7de75b587",
      "parents": [
        "f0ee14da17e378c9cdcc98410fa925c378d38f73"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Fri Jul 31 22:46:04 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:48:01 2016 -0500"
      },
      "message": "cpu_input_boost: Remove deprecated sprintf usage\n"
    },
    {
      "commit": "f0ee14da17e378c9cdcc98410fa925c378d38f73",
      "tree": "5afa6dd81a79ef4e036c8b9710cbd47573cda394",
      "parents": [
        "b88d1b5cd127e41efa2f1c531ce5124f37977351"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Fri Jul 03 01:24:41 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:47:49 2016 -0500"
      },
      "message": "cpu_input_boost: Minor clean-up in notifier\n"
    },
    {
      "commit": "b88d1b5cd127e41efa2f1c531ce5124f37977351",
      "tree": "41d0d1b7066c289540a6b7ec3fa7862634659a29",
      "parents": [
        "9a6b05080142de7d861c92c67ac14f8c6aa838cb"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Thu Jun 04 17:19:37 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:47:41 2016 -0500"
      },
      "message": "Revert \"cpu_input_boost: Add mutex protection\"\n\nThis reverts commit fddfd8be0aee894823e90fe5787bce9eb7f92c48.\n\nNot necessary, and might have caused a deadlock.\n"
    },
    {
      "commit": "9a6b05080142de7d861c92c67ac14f8c6aa838cb",
      "tree": "ee05d7c9627f772b5761b6b045c37160560cdcda",
      "parents": [
        "8ccc303c0805fda43e261159c62969206f0e6d13"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Mon Jun 01 15:04:30 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:47:33 2016 -0500"
      },
      "message": "cpu_input_boost: Add mutex protection\n\nSystem is ending up in a blocked state sometimes (when RIL comes up), which could be caused by this driver.\n\nAdd mutex protection around crucial areas to be safe.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "8ccc303c0805fda43e261159c62969206f0e6d13",
      "tree": "41d0d1b7066c289540a6b7ec3fa7862634659a29",
      "parents": [
        "00015dc3ddc1208f61ff3444930d82ec1190b226"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Mon Jun 01 14:32:43 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:47:26 2016 -0500"
      },
      "message": "cpu_input_boost: Run all workers on CPU0\n\n*Workers cannot be reentrant on the same CPU\n*Prevents possible synchronization issues\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "00015dc3ddc1208f61ff3444930d82ec1190b226",
      "tree": "07d076f9c9a9bd506039f9560ba8e6d0b22e62a0",
      "parents": [
        "3d52bf26fa3d6dd30146e165d7c3345b611a1f71"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Thu May 28 17:59:20 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:47:18 2016 -0500"
      },
      "message": "cpu_input_boost: Add support for userspace control\n\n*Userspace can override/disable input boosting via the userspace_minfreq sysfs node\n*Userspace can force a certain minfreq to be used\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "3d52bf26fa3d6dd30146e165d7c3345b611a1f71",
      "tree": "41e98ca4e2179a9ab151d08f341a76d050e475c2",
      "parents": [
        "86ef828ca01ed89a92b1e0a4ba0cf578b8e85b47"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sun May 17 15:08:17 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:47:06 2016 -0500"
      },
      "message": "cpu_input_boost: Update boost duration equation\n\n*Scales way better now\n*Saves power (boost durations can\u0027t be absurdly long now)\n"
    },
    {
      "commit": "86ef828ca01ed89a92b1e0a4ba0cf578b8e85b47",
      "tree": "1d763e0fd4a137b358368af2541d85883d87b318",
      "parents": [
        "be4ef513306f840857a5202bbfc1b989191f5423"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sun May 17 13:00:02 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:46:55 2016 -0500"
      },
      "message": "cpu_input_boost: Remove redundant calculations and logic\n\n*This logic was redundant and didn\u0027t fulfill its original purpose\n*The number of CPUs to boost is now the number of CPUs online minus one\n*Removed any semblance of dual-core support (this new logic only works well on quad-core devices)\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "be4ef513306f840857a5202bbfc1b989191f5423",
      "tree": "205ac3ad875463f079f47b2932de66d9df2a74d0",
      "parents": [
        "cc1b739b0e9c738b9d1abfeef3cb12bbcea144ba"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Wed May 13 19:58:40 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:46:49 2016 -0500"
      },
      "message": "cpu_input_boost: Remove cpufreq get/put API usage\n\n*These are internal functions that shouldn\u0027t be used outside of cpufreq\n"
    },
    {
      "commit": "cc1b739b0e9c738b9d1abfeef3cb12bbcea144ba",
      "tree": "505be5686b07d87fa7aa6b4df17c0c51dc047924",
      "parents": [
        "b2d5dbc90338005177a6b6bcb75baa18d8db4dd2"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Wed May 13 19:36:05 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:46:42 2016 -0500"
      },
      "message": "cpu_input_boost: Remove spin locks\n\n*These aren\u0027t necessary\n"
    },
    {
      "commit": "b2d5dbc90338005177a6b6bcb75baa18d8db4dd2",
      "tree": "f9280fe24376e831842d4cd5bc701678df214b23",
      "parents": [
        "7b4457e6d0bf5445663843105c88b0e47344041d"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sun May 10 13:34:26 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:46:34 2016 -0500"
      },
      "message": "cpu_input_boost: Make long function names shorter and more consistent\n\n*This bothered me way more than it should have\n"
    },
    {
      "commit": "7b4457e6d0bf5445663843105c88b0e47344041d",
      "tree": "6fd2b33a3269ca2196cc61c0b1cdac03e8e7d9f5",
      "parents": [
        "fbf44b008c7b8796116c6a7e432757a85aba94a4"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sun May 10 13:27:32 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:46:29 2016 -0500"
      },
      "message": "cpu_input_boost: Use spinlocks instead of mutex locks\n\n*Sleeping in the notifier could cause problems in cpufreq\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "fbf44b008c7b8796116c6a7e432757a85aba94a4",
      "tree": "78e566c029508dd0b83a33c568d095994324a6cb",
      "parents": [
        "e099d2855552ba9f8b2b92be6b79a99199c5c8ab"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Sat May 09 18:36:19 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:46:22 2016 -0500"
      },
      "message": "cpu_input_boost: Specify some variables as read-mostly\n"
    },
    {
      "commit": "e099d2855552ba9f8b2b92be6b79a99199c5c8ab",
      "tree": "3fa24714a2c706450a9fbf1bc7a5f336014ffdff",
      "parents": [
        "39c846d77f612a1db83608fb438657cbfb01493f"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Tue May 05 22:31:22 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:46:14 2016 -0500"
      },
      "message": "cpu_input_boost: Replace auto-freq finder with sysfs interface\n\n*To change boost freqs, write 3 valid, different CPU frequencies to /sys/kernel/cpu_input_boost/boost_freqs. Ex: echo \"1574400 1036800 1190400\" \u003e /sys/kernel/cpu_input_boost/boost_freqs\n*Moved other sysfs-exposed variables (enabled and up_threshold) all to the same directory for the sake of consistency\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "39c846d77f612a1db83608fb438657cbfb01493f",
      "tree": "088a471b462f6e12d9dc76b7540ac3ac27b9f91c",
      "parents": [
        "ab9378f50731e7a54682fcb2c7255386496e26ef"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Tue May 05 17:19:36 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:46:06 2016 -0500"
      },
      "message": "cpu_input_boost: Prioritize primary CPU\n\n*Primary CPU (CPU0) is boosted more than the other CPUs, and it is boosted for longer\n*The boost speed and duration are reduced for the secondary CPU and even more so for the tertiary CPU\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "ab9378f50731e7a54682fcb2c7255386496e26ef",
      "tree": "60559ff30779c897f5f97bda25df9e32ee6c4aa3",
      "parents": [
        "8a3c7167fe6143cd477f939c3fe6b5e2c2ebcafb"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Tue Apr 21 19:32:13 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:45:53 2016 -0500"
      },
      "message": "cpufreq: Disable CAF cpu-boost driver\n\n*Replaced by CPU input boost driver\n\nChange-Id: If995ab86c045a22a16f48d49861945495a633038\n"
    },
    {
      "commit": "8a3c7167fe6143cd477f939c3fe6b5e2c2ebcafb",
      "tree": "f32c73da66b04b77d00cf3bcdafd06c8aa985aec",
      "parents": [
        "67ba3e4f655b8dd02bd229ef9c6a58287928b019"
      ],
      "author": {
        "name": "Sultanxda",
        "email": "sultanxda@gmail.com",
        "time": "Tue Apr 21 19:31:21 2015 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Fri Aug 05 01:44:10 2016 -0500"
      },
      "message": "cpufreq: Introduce CPU input boost driver\n\nThis boosts the CPU on touchscreen and touchpad input. Boost frequencies, durations, and number of CPUs to boost are calculated automatically using fudge factors. The only configuration required for functionality is to enable boosting via the /sys/module/cpu_input_boost/parameters/enabled sysfs node.\n\nSigned-off-by: Sultanxda \u003csultanxda@gmail.com\u003e\n"
    },
    {
      "commit": "67ba3e4f655b8dd02bd229ef9c6a58287928b019",
      "tree": "45a91bcab98622d2fb407c1b83dca3845c733986",
      "parents": [
        "bf4656847057a83141cd464676cdb86bad8e5034"
      ],
      "author": {
        "name": "Namjae Jeon",
        "email": "namjae.jeon@samsung.com",
        "time": "Wed Jan 02 20:00:40 2013 -0600"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Jul 13 07:02:44 2016 -0400"
      },
      "message": "writeback: fix writeback cache thrashing\n\nFrom: Namjae Jeon \u003cnamjae.jeon@samsung.com\u003e\n\nConsider Process A: huge I/O on sda\n        doing heavy write operation - dirty memory becomes more\n        than dirty_background_ratio\n        on HDD - flusher thread flush-8:0\n\nConsider Process B: small I/O on sdb\n        doing while [1]; read 1024K + rewrite 1024K + sleep 2sec\n        on Flash device - flusher thread flush-8:16\n\nAs Process A is a heavy dirtier, dirty memory becomes more\nthan dirty_background_thresh. Due to this, below check becomes\ntrue(checking global_page_state in over_bground_thresh)\nfor all bdi devices(even for very small dirtied bdi - sdb):\n\nIn this case, even small cached data on \u0027sdb\u0027 is forced to flush\nand writeback cache thrashing happens.\n\nWhen we added debug prints inside above \u0027if\u0027 condition and ran\nabove Process A(heavy dirtier on bdi with flush-8:0) and\nProcess B(1024K frequent read/rewrite on bdi with flush-8:16)\nwe got below prints:\n\n[Test setup: ARM dual core CPU, 512 MB RAM]\n\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  56064 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  56704 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d 84720 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d 94720 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   384 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   960 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d    64 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d 92160 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   256 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   768 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d    64 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   256 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   320 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d     0 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d 92032 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d 91968 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   192 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d  1024 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d    64 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   192 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   576 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d     0 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d 84352 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   192 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d   512 KB\n[over_bground_thresh]: wakeup flush-8:16 : BDI_RECLAIMABLE \u003d     0 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d 92608 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d 92544 KB\n\nAs mentioned in above log, when global dirty memory \u003e global background_thresh\nsmall cached data is also forced to flush by flush-8:16.\nIf removing global background_thresh checking code, we can reduce cache\nthrashing of frequently used small data.\nAnd It will be great if we can reserve a portion of writeback cache using\nmin_ratio.\n\nAfter applying patch:\n$ echo 5 \u003e /sys/block/sdb/bdi/min_ratio\n$ cat /sys/block/sdb/bdi/min_ratio\n5\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  56064 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  56704 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  84160 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  96960 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  94080 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  93120 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  93120 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  91520 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  89600 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  93696 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  93696 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  72960 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  90624 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  90624 KB\n[over_bground_thresh]: wakeup flush-8:0 : BDI_RECLAIMABLE \u003d  90688 KB\n\nAs mentioned in the above logs, once cache is reserved for Process B,\nand patch is applied there is less writeback cache thrashing on sdb\nby frequent forced writeback by flush-8:16 in over_bground_thresh.\n\nAfter all, small cached data will be flushed by periodic writeback\nonce every dirty_writeback_interval.\n\nChange-Id: I678b30a5a28ed99bed0e782e38926ba4626b86ee\nSuggested-by: Wanpeng Li \u003cliwanp@linux.vnet.ibm.com\u003e\nSigned-off-by: Namjae Jeon \u003cnamjae.jeon@samsung.com\u003e\nSigned-off-by: Vivek Trivedi \u003ct.vivek@samsung.com\u003e\n"
    },
    {
      "commit": "bf4656847057a83141cd464676cdb86bad8e5034",
      "tree": "9fc81845e8f0970c92033bf727677e414f7ab441",
      "parents": [
        "c731a27c67d5200f71ba78613b2e7ad87284d1e7"
      ],
      "author": {
        "name": "Jan Kara",
        "email": "jack@suse.cz",
        "time": "Fri Jul 12 17:30:07 2013 +0200"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Jul 13 07:02:35 2016 -0400"
      },
      "message": "writeback: Fix occasional slow sync(1)\n\nIn case when system contains no dirty pages, wakeup_flusher_threads()\nwill submit WB_SYNC_NONE writeback for 0 pages so wb_writeback() exits\nimmediately without doing anything. Thus sync(1) will write all the\ndirty inodes from a WB_SYNC_ALL writeback pass which is slow.\n\nFix the problem by using get_nr_dirty_pages() in\nwakeup_flusher_threads() instead of calculating number of dirty pages\nmanually. That function also takes number of dirty inodes into account.\n\nChange-Id: I458027ae08d9a5a93202a7b97ace1f8da7a18a07\nCC: stable@vger.kernel.org\nReported-by: Paul Taysom \u003ctaysom@chromium.org\u003e\nSigned-off-by: Jan Kara \u003cjack@suse.cz\u003e\n"
    },
    {
      "commit": "c731a27c67d5200f71ba78613b2e7ad87284d1e7",
      "tree": "dfd4e5af6eaa62f7878f60fcefa5ec845023694f",
      "parents": [
        "dbc29455e7c6c0cfd8f15d4586ef67acfd3e55ca"
      ],
      "author": {
        "name": "Felix Fietkau",
        "email": "nbd@openwrt.org",
        "time": "Fri May 04 21:08:33 2012 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Jul 13 07:02:28 2016 -0400"
      },
      "message": "timer: optimize apply_slack()\n\n__fls(mask) is equivalent to find_last_bit(\u0026mask, BITS_PER_LONG), but cheaper.\nfind_last_bit was showing up high on the list when I was profiling for stalls\non icache misses on a system with very small cache size (MIPS).\n\nSigned-off-by: Felix Fietkau \u003cnbd@openwrt.org\u003e\nSigned-off-by: edoko \u003cr_data@naver.com\u003e\n\nChange-Id: I8a5021a2fb2936c00ffd456663a76cb1b23e3100\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": "7059dd38b647d08c8086379e02c05dc29aaebef5",
      "tree": "72995e54c1c77989d592b8ad0aa06acd16cb4da1",
      "parents": [
        "54374d0c9e95fd2fe567b6226efb20c6aa500432"
      ],
      "author": {
        "name": "Junxiao Bi",
        "email": "junxiao.bi@oracle.com",
        "time": "Wed Sep 11 14:23:04 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Jul 13 07:02:15 2016 -0400"
      },
      "message": "writeback: fix race that cause writeback hung\n\nThere is a race between mark inode dirty and writeback thread, see the\nfollowing scenario.  In this case, writeback thread will not run though\nthere is dirty_io.\n\n__mark_inode_dirty()                                          bdi_writeback_workfn()\n\t...                                                       \t...\n\tspin_lock(\u0026inode-\u003ei_lock);\n\t...\n\tif (bdi_cap_writeback_dirty(bdi)) {\n\t    \u003c\u003c\u003c assume wb has dirty_io, so wakeup_bdi is false.\n\t    \u003c\u003c\u003c the following inode_dirty also have wakeup_bdi false.\n\t    if (!wb_has_dirty_io(\u0026bdi-\u003ewb))\n\t\t    wakeup_bdi \u003d true;\n\t}\n\tspin_unlock(\u0026inode-\u003ei_lock);\n\t                                                            \u003c\u003c\u003c assume last dirty_io is removed here.\n\t                                                            pages_written \u003d wb_do_writeback(wb);\n\t                                                            ...\n\t                                                            \u003c\u003c\u003c work_list empty and wb has no dirty_io,\n\t                                                            \u003c\u003c\u003c delayed_work will not be queued.\n\t                                                            if (!list_empty(\u0026bdi-\u003ework_list) ||\n\t                                                                (wb_has_dirty_io(wb) \u0026\u0026 dirty_writeback_interval))\n\t                                                                queue_delayed_work(bdi_wq, \u0026wb-\u003edwork,\n\t                                                                    msecs_to_jiffies(dirty_writeback_interval * 10));\n\tspin_lock(\u0026bdi-\u003ewb.list_lock);\n\tinode-\u003edirtied_when \u003d jiffies;\n\t\u003c\u003c\u003c new dirty_io is added.\n\tlist_move(\u0026inode-\u003ei_wb_list, \u0026bdi-\u003ewb.b_dirty);\n\tspin_unlock(\u0026bdi-\u003ewb.list_lock);\n\n\t\u003c\u003c\u003c though there is dirty_io, but wakeup_bdi is false,\n\t\u003c\u003c\u003c so writeback thread will not be waked up and\n\t\u003c\u003c\u003c the new dirty_io will not be flushed.\n\tif (wakeup_bdi)\n\t    bdi_wakeup_thread_delayed(bdi);\n\nWriteback will run until there is a new flush work queued.  This may cause\na lot of dirty pages stay in memory for a long time.\n\nSigned-off-by: Junxiao Bi \u003cjunxiao.bi@oracle.com\u003e\nReviewed-by: Jan Kara \u003cjack@suse.cz\u003e\nCc: Fengguang Wu \u003cfengguang.wu@intel.com\u003e\nSigned-off-by: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: Francisco Franco \u003cfranciscofranco.1990@gmail.com\u003e\n\nChange-Id: I973fcba5381881a003a035ffff48f64348660079\n"
    },
    {
      "commit": "54374d0c9e95fd2fe567b6226efb20c6aa500432",
      "tree": "5d19e30b353fb647c2e70e2f69be9907bae4b6d8",
      "parents": [
        "6559c3d69df7f5670ca25ce97e67dd9e0ff3340c"
      ],
      "author": {
        "name": "Deva Ramasubramanian",
        "email": "dramasub@codeaurora.org",
        "time": "Wed Apr 03 15:36:12 2013 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed Jul 13 07:02:08 2016 -0400"
      },
      "message": "switch: Reset device\u0027s drvdata before destroying it\n\ndev_set_drvdata() sets the device specific driver data at\ndev-\u003ep-\u003edriver_data.  However, dev is destroyed and has it\u0027s\ncontext memory freed in device_destroy().  As a result, calling\ndev_set_drvdata() causes a fault when accessing dev-\u003ep.\n\nChange-Id: Id6cc72e1c635d6c4e69db3404bf57ebbab35d464\nSigned-off-by: Deva Ramasubramanian \u003cdramasub@codeaurora.org\u003e\n"
    },
    {
      "commit": "6559c3d69df7f5670ca25ce97e67dd9e0ff3340c",
      "tree": "6462b0747c15bc9a0138f651c973b1d05a283b80",
      "parents": [
        "37672bd0ee797c574ade6a70051fa0ec8faa17a1"
      ],
      "author": {
        "name": "William Bellevance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Jun 23 19:09:26 2016 -0700"
      },
      "committer": {
        "name": "William Bellevance",
        "email": "flintman@flintmancomputers.com",
        "time": "Thu Jun 23 19:09:26 2016 -0700"
      },
      "message": "Reg defconfig for recovery TP for MMC changes\n\nChange-Id: I28ad0aa09565eb3632b9d92aaca4ed425c4e4942\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": "53da56e352545f33300e84bf519635bdcbba51a6",
      "tree": "f3534df01d9dac84a38785171588be2098388a0a",
      "parents": [
        "0856d5067aa034b02f9862e541407a6c6636bed1"
      ],
      "author": {
        "name": "Julius Werner",
        "email": "jwerner@chromium.org",
        "time": "Tue May 31 12:52:15 2016 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Tue May 31 13:06:40 2016 -0400"
      },
      "message": "tcp: Replace infinite loop on recvmsg bug with proper crash\n\ntcp_recvmsg contains a sanity check that WARNs when there is a gap\nbetween the socket\u0027s copied_seq and the first buffer in the\nsk_receive_queue. In theory, the TCP stack makes sure that This Should\nNever Happen (TM)... however, practice shows that there are still a few\nbug reports from it out there (and one in my inbox).\n\nUnfortunately, when it does happen for whatever reason, the situation\nis not handled very well: the kernel logs a warning and breaks out of\nthe loop that walks the receive queue. It proceeds to find nothing else\nto do on the socket and hits sk_wait_data, which cannot block because\nthe receive queue is not empty. As no data was read, the outer while\nloop repeats (logging the same warning again) ad infinitum until the\nsystem\u0027s syslog exhausts all available hard drive capacity.\n\nThis patch improves that behavior by going straight to a proper kernel\ncrash. The cause of the error can be identified right away and the\nsystem\u0027s hard drive is not unnecessarily strained.\n\nChange-Id: Iabf62924a42597cf977591871fdc624ce7600c6d\n"
    },
    {
      "commit": "0856d5067aa034b02f9862e541407a6c6636bed1",
      "tree": "faebdb3a716bc3145d15e2ee8f855abe83221bc0",
      "parents": [
        "aa14cb7473b203c17b6a15a1f1dbf0b51e251b44"
      ],
      "author": {
        "name": "NewbyJE",
        "email": "NewbyJE@comcast.net",
        "time": "Sat Nov 08 07:22:56 2014 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri May 27 09:58:30 2016 -0400"
      },
      "message": "Sierra: add Gobi 3K usb drivers\n"
    },
    {
      "commit": "aa14cb7473b203c17b6a15a1f1dbf0b51e251b44",
      "tree": "e304a6b68069d5446b53958e50d67848c2648060",
      "parents": [
        "416f4b23d9d303b4f664d31953aec941b368b6df"
      ],
      "author": {
        "name": "NewbyJE",
        "email": "NewbyJE@comcast.net",
        "time": "Sat Nov 08 07:19:24 2014 -0800"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri May 27 09:58:29 2016 -0400"
      },
      "message": "Sierra: update for ARM 4.4 release\n\nChange-Id: Ib1dd03683811aae4d856762e46a520d26fef2cc4\n"
    },
    {
      "commit": "416f4b23d9d303b4f664d31953aec941b368b6df",
      "tree": "6243176e4fb335f68f636976864f94cb8e68c59b",
      "parents": [
        "2ba1c56b8be02a7a269c7aa2c0a9c07392a029f8"
      ],
      "author": {
        "name": "NewbyJE",
        "email": "NewbyJE@comcast.net",
        "time": "Mon Aug 25 19:36:06 2014 -0700"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri May 27 09:58:19 2016 -0400"
      },
      "message": "sierra and mbm driver update\n\nChange-Id: I886d36f284731b3282107807ad538c249c0b2f34\n"
    },
    {
      "commit": "2ba1c56b8be02a7a269c7aa2c0a9c07392a029f8",
      "tree": "ef3bbe8e8c8ce43f97b6b5336a88c6c52e24da67",
      "parents": [
        "4cb0dcdcf19bb2a1928675b042a85cb91cc293b5"
      ],
      "author": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri May 20 13:29:58 2016 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Fri May 20 13:29:58 2016 -0400"
      },
      "message": "Swap around memory pools a bit\n\nChange-Id: Ie0afeb316d51365d5e482915380d9f7e6294fc7b\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": "582bdf5b0c1ab084e9fc3b0ee9a42da92a242039",
      "tree": "6af9861ff06b6738c9d20ff9cb3c11725685c20b",
      "parents": [
        "2d708f5280611f08fa16008f6111a807a2560136"
      ],
      "author": {
        "name": "Ajay Dudani",
        "email": "adudani@codeaurora.org",
        "time": "Sat Oct 12 20:09:43 2013 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed May 18 20:07:17 2016 -0500"
      },
      "message": "msm: msm_bus: Fix the type error causing bandwidth overflow\n\nOn legacy chipsets, long int was being used to store\nreturn value after calculating interleaved bw. However,\nNoCs support 64-bit integers ab/ib values. problme occurs\nif client request for higher bw and if difference of ab\nvalue exceeds the range of 32 bit integer, the Value\noverflows and turns negative, which leads to wrong bw calculation.\n\nThis patch fixes this integer overflow by correcting argument\ntype to store bw.\n\nCRs-Fixed: 537213\nChange-Id: I8c6c79ba245a988c2c54ccaca3f3eaf5cb857ce5\nSigned-off-by: Alok Chauhan \u003calokc@codeaurora.org\u003e\nSigned-off-by: Ajay Dudani \u003cadudani@codeaurora.org\u003e\n"
    },
    {
      "commit": "2d708f5280611f08fa16008f6111a807a2560136",
      "tree": "5310cff69b89ea377ae33d9ce3b8194c657d4f57",
      "parents": [
        "25a8c20db5dad560fb82527a311708d5559d3fe6"
      ],
      "author": {
        "name": "Ajay Dudani",
        "email": "adudani@codeaurora.org",
        "time": "Sat Oct 12 19:48:24 2013 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed May 18 20:07:06 2016 -0500"
      },
      "message": "msm: msm_bus: send correct value to bw division function\n\nWhile calculating bw for existing client request\nsometimes it can go to negative if client unregisters\nor send request with lesser ab/ib values. Bus driver\nwill divide bandwidth if interleaving enabled.\n\nAdded a macro wrapper to handle negative bw values\nsince the division utility function can\u0027t handle\nnegative values\n\nCRs-Fixed: 521940\nChange-Id: Ic3a216b8efb535593fe02ad3228d71808d2e0f98\nSigned-off-by: Alok Chauhan \u003calokc@codeaurora.org\u003e\nSigned-off-by: Ajay Dudani \u003cadudani@codeaurora.org\u003e\n"
    },
    {
      "commit": "25a8c20db5dad560fb82527a311708d5559d3fe6",
      "tree": "c66af8c6fc6181c815b88a9f0220e53af1495683",
      "parents": [
        "38115d61e74ff1fcca11f6d6b7b88bcff27f0173"
      ],
      "author": {
        "name": "Gagan Mac",
        "email": "gmac@codeaurora.org",
        "time": "Wed Jun 05 13:58:11 2013 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed May 18 20:06:56 2016 -0500"
      },
      "message": "msm: msm_bus: Fix division by Zero error in kernel\n\nAvoid the error by checking for zero slave ports before\ndividing bandwidth.\n\nCRs-Fixed: 495496\nChange-Id: I8e9b1e61ba3b47ed270d2f8cf60ed975b5c49889\nSigned-off-by: Gagan Mac \u003cgmac@codeaurora.org\u003e\n\nConflicts:\n\n\tarch/arm/mach-msm/msm_bus/msm_bus_arb.c\n\nSigned-off-by: Ajay Dudani \u003cadudani@codeaurora.org\u003e\n"
    },
    {
      "commit": "38115d61e74ff1fcca11f6d6b7b88bcff27f0173",
      "tree": "2b3ffc349341fd2717fe1736fba2df7135e24df4",
      "parents": [
        "1fe963e5fce0a907a7b6255a892a10cf356ffeae"
      ],
      "author": {
        "name": "Gagan Mac",
        "email": "gmac@codeaurora.org",
        "time": "Wed May 01 12:13:31 2013 -0600"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed May 18 20:06:19 2016 -0500"
      },
      "message": "msm: msm_bus: Add checks to avoid Klocwork errors\n\nThis patch adds Null pointer checks while getting bus devices\nfrom the kernel tree. This is required to avoid Klocwork errors.\n\nChange-Id: I761a9d177871a42aadfaa6f855be7e9c4c781e8b\nSigned-off-by: Gagan Mac \u003cgmac@codeaurora.org\u003e\n"
    },
    {
      "commit": "1fe963e5fce0a907a7b6255a892a10cf356ffeae",
      "tree": "623cc7f8300e89ac63466ce50511af7229067e5e",
      "parents": [
        "fe908194ea587461f4ead0e09c6c13f29e344dab"
      ],
      "author": {
        "name": "Gagan Mac",
        "email": "gmac@codeaurora.org",
        "time": "Tue Mar 05 12:54:59 2013 -0700"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed May 18 20:02:35 2016 -0500"
      },
      "message": "msm: msm_bus: Avoid touching ports owned by RPM\n\nAdd a check during init to not touch ports which are owned by\nRPM. Doing this can cause crashes due to access violation\nif XPU is active.\n\nChange-Id: Ic38280c130f84af3895c4372f1182e4089c043cc\nSigned-off-by: Gagan Mac \u003cgmac@codeaurora.org\u003e\n"
    },
    {
      "commit": "fe908194ea587461f4ead0e09c6c13f29e344dab",
      "tree": "aed47646361450c6cc9dbd685e1aafa0c00d1b5b",
      "parents": [
        "82679122a909bb05c9a399e8e4a399a8d68910da"
      ],
      "author": {
        "name": "Michael Bohan",
        "email": "mbohan@codeaurora.org",
        "time": "Fri Jan 18 16:16:03 2013 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed May 18 20:02:01 2016 -0500"
      },
      "message": "msm: msm_bus: Fix memory leak during RPM transaction\n\nThis is a serious bug that eventually cripples the system due to\nlost memory.\n\nCRs-Fixed: 442381\nChange-Id: If4d33b35475a33b1602a1d923031345b47af963e\nSigned-off-by: Michael Bohan \u003cmbohan@codeaurora.org\u003e\n"
    },
    {
      "commit": "82679122a909bb05c9a399e8e4a399a8d68910da",
      "tree": "4e0c9f66420a93dcb7e01d7a9f57011b0660d78f",
      "parents": [
        "a5e82d0596ab85d10abc40388deba07549b98978"
      ],
      "author": {
        "name": "Stepan Moskovchenko",
        "email": "stepanm@codeaurora.org",
        "time": "Thu Jan 24 16:27:20 2013 -0800"
      },
      "committer": {
        "name": "Nick Reuter",
        "email": "nreuter85@gmail.com",
        "time": "Wed May 18 19:58:43 2016 -0500"
      },
      "message": "msm: bus: Don\u0027t call container_of on a NULL pointer\n\nCalling container_of on a NULL pointer results in a\nnon-NULL value, causing downstream error handling to fail.\n\nChange-Id: Ifa4b4003bb02e9f640f91b5190a8025d7ad2dd1d\nSigned-off-by: Stepan Moskovchenko \u003cstepanm@codeaurora.org\u003e\n"
    },
    {
      "commit": "a5e82d0596ab85d10abc40388deba07549b98978",
      "tree": "caa1e90e90e1779cbc60077b14500472c93eb46a",
      "parents": [
        "fe394ea281d1b1b6a62fedd5f833b5b32c56b3ce"
      ],
      "author": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed May 18 19:11:51 2016 -0400"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed May 18 19:11:51 2016 -0400"
      },
      "message": "Revert \"drivers: staging: Fix Zcache\"\n\nThis reverts commit 36973180eb4b8af982eb4a497b333f1381994b47.\n\nConflicts:\n\n\tarch/arm/configs/tenderloin_android_defconfig\n\nChange-Id: If49f1b1f67b8b1680d4ae3e79714292b8b5cf2a2\n"
    },
    {
      "commit": "fe394ea281d1b1b6a62fedd5f833b5b32c56b3ce",
      "tree": "7bb4f620a27e6f39265c4c9a879d847c0c990c80",
      "parents": [
        "85b562d48439f222816bcf0c3c8a50ab2a383dfc"
      ],
      "author": {
        "name": "srikarri",
        "email": "sridur@codeaurora.org",
        "time": "Mon Dec 30 18:44:28 2013 +0530"
      },
      "committer": {
        "name": "William Bellavance",
        "email": "flintman@flintmancomputers.com",
        "time": "Wed May 18 07:50:16 2016 -0400"
      },
      "message": "msm: rotator: Use MM_HEAP instead of IOMMU HEAP for kk_2.7.2\n\n-IOMMU HEAP is in use for non-secure video plyabck and recording\n-Use MM_HEAP instead of IOMMU HEAP for non-secure video plyabck\nand recording scenarios\n-made changes to enable MM_HEAP for device rotation\n\nChange-Id: Ic67008799874a2fafc469a6045bcd0d3d5e5581b\nSigned-off-by: srikarri \u003csridur@codeaurora.org\u003e\n"
    }
  ],
  "next": "85b562d48439f222816bcf0c3c8a50ab2a383dfc"
}
