)]}'
{
  "log": [
    {
      "commit": "c03abbbf89dcb413f570d83740664061dc8c0ef1",
      "tree": "333c3962216d8ddf73fed49f166cf1c9b0506c44",
      "parents": [
        "c0db06c6c8be34bf2a15d6f52b15ffa3df4c8f96"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Dec 28 21:58:28 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Dec 28 21:59:23 2016 -0500"
      },
      "message": "00-readme.txt: add lkml/rt-list post text\n"
    },
    {
      "commit": "c0db06c6c8be34bf2a15d6f52b15ffa3df4c8f96",
      "tree": "3b506109fa6caabf8ef61ea371cf758f04ad69b6",
      "parents": [
        "74cd00a5a3fb1a8cd1d0d50d78d29846b3bff5c4"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Dec 28 13:51:20 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Wed Dec 28 16:14:39 2016 -0500"
      },
      "message": "4.9-rt: add script to auto create bisect branches\n\nSample usage:\n\n\tmkdir rt-test\n\tcd rt-test\n\t# clone mainline or clone from a local copy with \u003e\u003d4.9 tags in it.\n\tgit clone /path/to/my/existing/mainline/linux linux-rt-bisect\n\tgit clone git://git.kernel.org/pub/scm/linux/kernel/git/paulg/4.9-rt-patches.git\n\tcd linux-rt-bisect\n\t../4.9-rt-patches.git/scripts/create-branches.sh\n"
    },
    {
      "commit": "74cd00a5a3fb1a8cd1d0d50d78d29846b3bff5c4",
      "tree": "9f64cac8d5450c8073b23bdbc775419d728850e8",
      "parents": [
        "5bb18cc2394d134e27bd8f0c6768a2fdf0ed2066"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 14:39:46 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 14:47:20 2016 -0500"
      },
      "message": "no-op: cosmetic line number sync with upstream v4.9-rt1 patches\n\nExecutive summary: nothing to see here.\n\nA re-export of all the patches by upstream means they have a refresh\nof the line numbers that we won\u0027t have here.\n\nThe source tree generated before and after the line number refresh\nof the patches is the same -- as \"git am\" doesn\u0027t care at all about\nlinear offsets by default.\n\nBut a sync means we don\u0027t have to see all the line number delta\nchatter in a \"git diff\" of the patch repository vs. upstream.\n"
    },
    {
      "commit": "5bb18cc2394d134e27bd8f0c6768a2fdf0ed2066",
      "tree": "0f5af653f1fcad74d97625d50fc5249bdf5842ef",
      "parents": [
        "5765246abe7e6dddceaaabadbd2b7d30cb57d79e"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 14:03:40 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 14:03:40 2016 -0500"
      },
      "message": "localversion: now src equiv. so rt0 --\u003e rt1\n"
    },
    {
      "commit": "5765246abe7e6dddceaaabadbd2b7d30cb57d79e",
      "tree": "921e151e4a3a2a9135440b5dd376d74599031160",
      "parents": [
        "b52d07c64afc7d7a1919cbd8c64be59f60a39a73"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 13:46:06 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 13:46:06 2016 -0500"
      },
      "message": "Revert \"rtmutex: unrefresh for 4.8.15 --\u003e 4.8.0\"\n\nThis reverts commit bf7ea5b9a8b167ef3f3fc8359333e6c7b117dd18.\n"
    },
    {
      "commit": "b52d07c64afc7d7a1919cbd8c64be59f60a39a73",
      "tree": "8beeb836b3c624e46afd587bc2600a8dced8a0c5",
      "parents": [
        "5441de10b10d1b9c270970f7c279ca1857de5063"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 13:38:27 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 13:38:27 2016 -0500"
      },
      "message": "mm: replace interim workingset with import for ctxt refresh\n"
    },
    {
      "commit": "5441de10b10d1b9c270970f7c279ca1857de5063",
      "tree": "33f8b43275c8868f4e740e9c43d43665b87fd48c",
      "parents": [
        "7e2081928f9cbc99a1d71dd9e3398cb0e2a8fe11"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 12:45:53 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 12:45:53 2016 -0500"
      },
      "message": "Revert \"softirq-split: temporary \"un-refresh\" ; trivial ctxt change\"\n\nThis reverts commit 7edf5bac7d57a8440e7df5510b2ae4f827bf5b87.\n"
    },
    {
      "commit": "7e2081928f9cbc99a1d71dd9e3398cb0e2a8fe11",
      "tree": "9e965160a69df7112172588a2eaa9895dec4a521",
      "parents": [
        "2723fee9a7c5d2976717f6862d11c045dad090cc"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 12:36:18 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 12:39:50 2016 -0500"
      },
      "message": "hotplug: import refresh with lockdep update (x2)\n"
    },
    {
      "commit": "2723fee9a7c5d2976717f6862d11c045dad090cc",
      "tree": "9f7756bd1d941c3320bfe864707d504902bf772c",
      "parents": [
        "fabb76afd0b303b6b57a5d49af979134f6d222bd"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 11:57:31 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 11:57:31 2016 -0500"
      },
      "message": "rwsem: import new patch for rc2+\n"
    },
    {
      "commit": "fabb76afd0b303b6b57a5d49af979134f6d222bd",
      "tree": "3f9910bafa304b592ebcf31fbd138290eb731c78",
      "parents": [
        "69022ed7dd23b951e3e4ddb1ac670e7a1ab2322e"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 11:55:36 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 11:55:36 2016 -0500"
      },
      "message": "Revert \"x86: temp backport; make thread_info arch specific again\"\n\nThis reverts commit 89970dc5aed91bca6c41e9aa43cad7645cf37ddc.\n\nAs of -rc2 the commit is present in mainline so the backport is\nno longer needed for x86-rt.\n"
    },
    {
      "commit": "69022ed7dd23b951e3e4ddb1ac670e7a1ab2322e",
      "tree": "5c69c2ae99eaed56fcba3002ef1b4e47c3c947b6",
      "parents": [
        "5aa00714c982ea6e4c68fef0ec858a764981f392"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 11:21:17 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 11:38:08 2016 -0500"
      },
      "message": "rt: import patches new for v4.9-rt\n"
    },
    {
      "commit": "5aa00714c982ea6e4c68fef0ec858a764981f392",
      "tree": "a971b894cd1a1d30413fd504a071076fd6a1bb06",
      "parents": [
        "c73ce5ccac1f56db82961194c3570d11d44db4e7"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 10:52:24 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 10:52:24 2016 -0500"
      },
      "message": "hwlat: drop related patches\n"
    },
    {
      "commit": "c73ce5ccac1f56db82961194c3570d11d44db4e7",
      "tree": "7c4765589f9ec18f8d2e15b7fcc7bb23a716881a",
      "parents": [
        "05ecd91f9d066018984ba91b5fde52d74ffef0ac"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 03:55:48 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 03:55:48 2016 -0500"
      },
      "message": "mm: drop pgalloc local lock patch now upstream\n"
    },
    {
      "commit": "05ecd91f9d066018984ba91b5fde52d74ffef0ac",
      "tree": "ccf39a8aa331a0ade6819ccb892efba5c4adf8e6",
      "parents": [
        "adf1795caca2dab919e4a80062825433f2874ae5"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 03:52:45 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 03:52:45 2016 -0500"
      },
      "message": "rcu: import refresh for __latent_entropy annotations\n"
    },
    {
      "commit": "adf1795caca2dab919e4a80062825433f2874ae5",
      "tree": "5061679bd9125c31238de4bc86b303e21ed6b4a8",
      "parents": [
        "3deb98d8343c7b9274226d3d9c863858161abe4a"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 03:47:14 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 03:47:14 2016 -0500"
      },
      "message": "random: import refresh for __latent_entropy annotations\n"
    },
    {
      "commit": "3deb98d8343c7b9274226d3d9c863858161abe4a",
      "tree": "7325cba0e8bc2ab7e6c46a2d6796000ca5b18c1d",
      "parents": [
        "95e891e8bea5a5cfac379288c14ff72e881bdbc5"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 03:45:53 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 03:45:53 2016 -0500"
      },
      "message": "tasklet: import refresh for __latent_entropy annotations\n"
    },
    {
      "commit": "95e891e8bea5a5cfac379288c14ff72e881bdbc5",
      "tree": "03b5d8430391289d7e3b0f82379a979cf0b5f608",
      "parents": [
        "9fae54aeaa73fb92f947c167c3b108d3677cab7b"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 02:52:46 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 02:52:46 2016 -0500"
      },
      "message": "i915: import refreshed local_unlock for header ctxt changes\n"
    },
    {
      "commit": "9fae54aeaa73fb92f947c167c3b108d3677cab7b",
      "tree": "3973f32936fd97a599de1f74e78501c9c3df02cf",
      "parents": [
        "5eaffc3471d9da6c5c5b28c28027ef0ed4b2fa4b"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 02:40:19 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 02:40:19 2016 -0500"
      },
      "message": "dm: import refresh with fcn rename in ctxt\n"
    },
    {
      "commit": "5eaffc3471d9da6c5c5b28c28027ef0ed4b2fa4b",
      "tree": "6970efa55ba48010933b0ad67a5f183b75d43be3",
      "parents": [
        "373c8df86c0010c66db3e12704aa8218f5cff6b7"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 02:35:49 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 02:35:49 2016 -0500"
      },
      "message": "relay: drop timer madness fix\n"
    },
    {
      "commit": "373c8df86c0010c66db3e12704aa8218f5cff6b7",
      "tree": "f8841e11553905fa0d073d754ce1c149a4bf22b8",
      "parents": [
        "8130b7406143ac4c99dd649b7e581f43843b28f4"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 02:28:56 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 02:28:56 2016 -0500"
      },
      "message": "ipc: drop lockless pipelined wakeups patch\n"
    },
    {
      "commit": "8130b7406143ac4c99dd649b7e581f43843b28f4",
      "tree": "92fdd5ae2ac120d0caf907151ccb4dd1adbb14a7",
      "parents": [
        "c62cff60f257991e3b3c1d34ebcb2524e6658d73"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 01:52:14 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 01:52:14 2016 -0500"
      },
      "message": "blk-mq: drop revert-raw-locks patch\n"
    },
    {
      "commit": "c62cff60f257991e3b3c1d34ebcb2524e6658d73",
      "tree": "66e34901dcd685b625fb40ae30f02f26567e5d3d",
      "parents": [
        "3257c61bfe2b8e9337a030f09d3e6e7c5b95ddd6"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 01:45:35 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 01:45:35 2016 -0500"
      },
      "message": "blk-mq: overwrite intermediary with refresh import (ctxt/whitespace)\n"
    },
    {
      "commit": "3257c61bfe2b8e9337a030f09d3e6e7c5b95ddd6",
      "tree": "32f13b7c2565cdbebb26c2889e5e83399425039e",
      "parents": [
        "ecbb1b433b774cffdb20f1caabcfac32d3b6915f"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 01:34:03 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 01:34:03 2016 -0500"
      },
      "message": "sched-mmdrop-delayed: import refresh for ctxt changes\n"
    },
    {
      "commit": "ecbb1b433b774cffdb20f1caabcfac32d3b6915f",
      "tree": "9dc70288599c5684875056ca9d6229f91abf8533",
      "parents": [
        "8d1b675aaae467861775fe21c2367c207029c05c"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 00:53:42 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 00:55:28 2016 -0500"
      },
      "message": "workqueue: import refresh with rcu_read_lock conversion squished\n"
    },
    {
      "commit": "8d1b675aaae467861775fe21c2367c207029c05c",
      "tree": "53a8401d68fbb1bb0946f38eff6519a2d710648b",
      "parents": [
        "2d4586ae8aa29e222b12b98beeaa219d521dc813"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 00:48:30 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 00:48:30 2016 -0500"
      },
      "message": "blk-mq.h: intermediary refresh for ctxt and whitespace\n"
    },
    {
      "commit": "2d4586ae8aa29e222b12b98beeaa219d521dc813",
      "tree": "58bd62678adf8258402505a792df761145642119",
      "parents": [
        "48789f5f7d059bdd7de6440894e1333e144ae83a"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 00:40:25 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 00:40:25 2016 -0500"
      },
      "message": "block: mq import updated preempt-disable patch\n"
    },
    {
      "commit": "48789f5f7d059bdd7de6440894e1333e144ae83a",
      "tree": "e1bc8f7f6c188a718dce69dcbb733cf04767b97c",
      "parents": [
        "c9f1d22386359c70c13365fcd9e4b16ab4d0ad81"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 00:01:42 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Dec 26 00:01:42 2016 -0500"
      },
      "message": "latency-hist: import trivial Kconfig ctxt refresh\n"
    },
    {
      "commit": "c9f1d22386359c70c13365fcd9e4b16ab4d0ad81",
      "tree": "1c28d70b484677d331c2efa1723c3f338b3af06a",
      "parents": [
        "fe735d8d01f9f632e8ff624cf8fd4c01472893bd"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 23:39:35 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 23:39:35 2016 -0500"
      },
      "message": "lockdep: drop quiet gcc builtin_return patch\n"
    },
    {
      "commit": "fe735d8d01f9f632e8ff624cf8fd4c01472893bd",
      "tree": "e864a24b91bca761d2a4d98a24e7da5a11698342",
      "parents": [
        "a2e793b718cfdfd061235c5f8633674b37d0287c"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 23:10:31 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 23:10:31 2016 -0500"
      },
      "message": "net: import trivial header ctxt refresh\n"
    },
    {
      "commit": "a2e793b718cfdfd061235c5f8633674b37d0287c",
      "tree": "237b356ec2849bada17d4f8c9f9f8d2bffbcdaac",
      "parents": [
        "85ed4003a1456624fb61c6eb6c934aead9900e5a"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 22:37:16 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 22:37:16 2016 -0500"
      },
      "message": "qdisc: seqcount: refresh for struct qdisc_skb_head\n"
    },
    {
      "commit": "85ed4003a1456624fb61c6eb6c934aead9900e5a",
      "tree": "2ab1a636b4eb2dc85f88ce3f92b101ca78cd6b55",
      "parents": [
        "6d940a35f86edb0a9fe25cf60a2b5a7958b00af0"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 22:34:11 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 22:34:41 2016 -0500"
      },
      "message": "skbufhead: import rawlock 2 --\u003e 1 patch merge and updates\n"
    },
    {
      "commit": "6d940a35f86edb0a9fe25cf60a2b5a7958b00af0",
      "tree": "8085fef560b7e74b2d4a4a0bb5ac0b0ec66aa6da",
      "parents": [
        "e9bb7fa24407c8b983510dfc8a1dfc9dcd37c814"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 22:08:54 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 22:08:54 2016 -0500"
      },
      "message": "mm: workingset trivial ctxt refresh for interim patch\n"
    },
    {
      "commit": "e9bb7fa24407c8b983510dfc8a1dfc9dcd37c814",
      "tree": "ddb40db92c472607b5a8dfb9f100b552766781db",
      "parents": [
        "7edf5bac7d57a8440e7df5510b2ae4f827bf5b87"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:38:11 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:38:53 2016 -0500"
      },
      "message": "raid5: import refreshed patch with cpu_hp awareness\n"
    },
    {
      "commit": "7edf5bac7d57a8440e7df5510b2ae4f827bf5b87",
      "tree": "20e8e1c7994a187a020715343bd63da577288173",
      "parents": [
        "cb9291bbd7bf8b1a3b3b2168928a0eff9f7bd1aa"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:35:00 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:35:00 2016 -0500"
      },
      "message": "softirq-split: temporary \"un-refresh\" ; trivial ctxt change\n"
    },
    {
      "commit": "cb9291bbd7bf8b1a3b3b2168928a0eff9f7bd1aa",
      "tree": "e7a3b355f51b04ff798b4c1acedab2bc97787220",
      "parents": [
        "8056b1d7487237e575f4395d9878b17cbc30a537"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:33:16 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:33:16 2016 -0500"
      },
      "message": "softirq-split: import updated patch w/ cpu_hp aware changes\n"
    },
    {
      "commit": "8056b1d7487237e575f4395d9878b17cbc30a537",
      "tree": "c0a418cef3caa5f0e0f7e61f59284626d6958cb2",
      "parents": [
        "aacba1a6616698935e146a368fa5510c3a03fa31"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:25:54 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:26:35 2016 -0500"
      },
      "message": "softirq-preempt: import refresh for whitespace indent change\n"
    },
    {
      "commit": "aacba1a6616698935e146a368fa5510c3a03fa31",
      "tree": "a01968e3afd3c73613d7f6e7767dc181f3b3adb4",
      "parents": [
        "db1b0d34612ecbf8ec8e5ec56375e47f0f40c26e"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:17:25 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:17:33 2016 -0500"
      },
      "message": "softirq: import split-lock to avoid flags decl. warning\n"
    },
    {
      "commit": "db1b0d34612ecbf8ec8e5ec56375e47f0f40c26e",
      "tree": "ee5c9707a4fbc0351a6bad17223bcc0960d9e799",
      "parents": [
        "6ffa7dcb21f347ea5f11adb9e1249058d06c2708"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:04:03 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:04:03 2016 -0500"
      },
      "message": "signal-rt-fix: trivial context refresh\n"
    },
    {
      "commit": "6ffa7dcb21f347ea5f11adb9e1249058d06c2708",
      "tree": "c3a47d1e948a527c2487778cf1f077c0407026d1",
      "parents": [
        "f0d87c3482a8d22f443655d421c70851db49a18d"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:00:02 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 13:00:02 2016 -0500"
      },
      "message": "UV: import trivial refresh for whitespace shuffle\n"
    },
    {
      "commit": "f0d87c3482a8d22f443655d421c70851db49a18d",
      "tree": "2543a929730783d577726bf9075c110911ef4282",
      "parents": [
        "89970dc5aed91bca6c41e9aa43cad7645cf37ddc"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 12:51:12 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 12:51:12 2016 -0500"
      },
      "message": "x86: import updated preempt lazy support patch\n"
    },
    {
      "commit": "89970dc5aed91bca6c41e9aa43cad7645cf37ddc",
      "tree": "33a1c0633cc3759ffaf944c26566e8eecf1b0d3a",
      "parents": [
        "af0b01563495be2071e245f0cf7eeb9cbbf824b1"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 12:30:13 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 12:37:55 2016 -0500"
      },
      "message": "x86: temp backport; make thread_info arch specific again\n\nWith the advantage of hindsight, we know this upstream pseudo\nrevert commit is pending, and can just add it in early and save\nmucking about with the x86 preempt lazy patches.\n"
    },
    {
      "commit": "af0b01563495be2071e245f0cf7eeb9cbbf824b1",
      "tree": "dddefd0b8380f028ef411d48fc0661d657dfb9f8",
      "parents": [
        "4c6bfa1f9d2a42b5921c54d3376def98a4933c4d"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 11:09:19 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 11:09:19 2016 -0500"
      },
      "message": "x86: drop dumpstack ; removed in mainline c8fe4609827aedc9\n"
    },
    {
      "commit": "4c6bfa1f9d2a42b5921c54d3376def98a4933c4d",
      "tree": "aff97c9c3ea57e72adf61770849c0a36f4275aa0",
      "parents": [
        "7d2f649241f7a4af86299ebe710539b085b398e3"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 11:04:43 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 11:04:43 2016 -0500"
      },
      "message": "sched: mutex wakeup - import trivial whitespace refresh\n"
    },
    {
      "commit": "7d2f649241f7a4af86299ebe710539b085b398e3",
      "tree": "51a87fbe9fde03a7052c18d36d8e07504e897feb",
      "parents": [
        "e9429124b4bfa3dc2e35aed53fa666bb3168cea0"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 11:03:40 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 11:03:40 2016 -0500"
      },
      "message": "migrate_disable: import refresh over interim update\n"
    },
    {
      "commit": "e9429124b4bfa3dc2e35aed53fa666bb3168cea0",
      "tree": "f17f2b692b738271935890b47ca788d29e2acbb7",
      "parents": [
        "34b54eb536dde6970e8b447806904d322fe5e74f"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:49:29 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:49:29 2016 -0500"
      },
      "message": "cpu: interim refresh for cpu_hotplug.wq init change upstream\n"
    },
    {
      "commit": "34b54eb536dde6970e8b447806904d322fe5e74f",
      "tree": "6086b2d7b7b87499af3427b20bd77fe009a43eae",
      "parents": [
        "0f74d56e484d148288ce3b51456caafe9a890208"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:42:18 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:42:25 2016 -0500"
      },
      "message": "sched: import refresh worker acct patch for schedstat upstream\n"
    },
    {
      "commit": "0f74d56e484d148288ce3b51456caafe9a890208",
      "tree": "1cd8a252e3ffaa991b85d51f5ebd471fb2fab3f9",
      "parents": [
        "c66d6d1bd028812df0110a38b98f0de9ba4bcb1d"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:38:00 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:38:00 2016 -0500"
      },
      "message": "migrate_disable: interim refresh for PN_SCHEDSTAT\n"
    },
    {
      "commit": "c66d6d1bd028812df0110a38b98f0de9ba4bcb1d",
      "tree": "06f443491ae70c5cbd7514d7b281614f379cbe9b",
      "parents": [
        "130b61424cf4cc1773896be98704682dbeb1ddd7"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:25:23 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:25:23 2016 -0500"
      },
      "message": "mce: hrtimer: import trivial header refresh (x2)\n"
    },
    {
      "commit": "130b61424cf4cc1773896be98704682dbeb1ddd7",
      "tree": "bda40c96c4ad9d9110a4cff7c8f21457c444d630",
      "parents": [
        "851c61bd076075bc185998116db10947a32443a8"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:09:54 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:09:54 2016 -0500"
      },
      "message": "lglocks: drop patches ; core support gone upstream\n"
    },
    {
      "commit": "851c61bd076075bc185998116db10947a32443a8",
      "tree": "91384ec6325a6c37dbb3ed93fbf4a5f27f760f15",
      "parents": [
        "caf831fdc67bd128858650c19eb1354672507677"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:04:23 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 10:04:23 2016 -0500"
      },
      "message": "stop-machine: import refresh w/ lglock chunk gone; needs revisit\n"
    },
    {
      "commit": "caf831fdc67bd128858650c19eb1354672507677",
      "tree": "16a403ed7f0d5cbd8642e880e41e4a27b58effcf",
      "parents": [
        "420f69c356506a3d8b531443e66685b3a3791706"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 09:50:07 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 09:50:07 2016 -0500"
      },
      "message": "rcu: import basic refresh (x2)\n"
    },
    {
      "commit": "420f69c356506a3d8b531443e66685b3a3791706",
      "tree": "05b7ad683fd6f203fc392a0b7e1037349fe95780",
      "parents": [
        "993e1de8e7655dd0ea5afb5abc7817c803d73561"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 09:39:46 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 09:39:46 2016 -0500"
      },
      "message": "arm64: import refreshed preempt lazy patch\n"
    },
    {
      "commit": "993e1de8e7655dd0ea5afb5abc7817c803d73561",
      "tree": "96aef7c0d804e75e3faa8d4819c8c9cd029c1eec",
      "parents": [
        "bf7ea5b9a8b167ef3f3fc8359333e6c7b117dd18"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 09:24:31 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 09:24:31 2016 -0500"
      },
      "message": "localversion: reset counter to zero\n"
    },
    {
      "commit": "bf7ea5b9a8b167ef3f3fc8359333e6c7b117dd18",
      "tree": "3628258d8257ed48a82e7ded4efac72827603e27",
      "parents": [
        "1f3f584fe003da9b6d7004717ae8ac5a2b426773"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 09:04:27 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 09:04:27 2016 -0500"
      },
      "message": "rtmutex: unrefresh for 4.8.15 --\u003e 4.8.0\n"
    },
    {
      "commit": "1f3f584fe003da9b6d7004717ae8ac5a2b426773",
      "tree": "d94dc81c170ebbc6bf35c96fb4b7f694d24b441a",
      "parents": [
        "e498b1662ce9fc156cd2391b06bda9356d5977a3"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 08:56:53 2016 -0500"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Sun Dec 25 09:02:47 2016 -0500"
      },
      "message": "mm: unrefresh for 4.8.15 --\u003e 4.8.0\n"
    },
    {
      "commit": "e498b1662ce9fc156cd2391b06bda9356d5977a3",
      "tree": "4f42e74aeed48a03052fef4d08316ab9015b6eef",
      "parents": [
        "af8baa079eec1bda7e7d9df85acc65a7bcec28c6"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Dec 23 16:21:17 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Dec 23 16:21:17 2016 +0100"
      },
      "message": "[ANNOUNCE] v4.8.15-rt10\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.8.15-rt10 patch set.\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.8.15-rt10\n\nThe RT patch against v4.8.15 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/patch-4.8.15-rt10.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/patches-4.8.15-rt10.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "af8baa079eec1bda7e7d9df85acc65a7bcec28c6",
      "tree": "9945f2918abc8d59e65b6babaf750182c7c26bfb",
      "parents": [
        "c297bb37b26a1d9f59f5ce2978279e990e1428c5"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Dec 12 19:47:03 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Dec 12 19:47:03 2016 +0100"
      },
      "message": "[ANNOUNCE] v4.8.14-rt9\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.8.14-rt9 patch set.\n\nChanges since v4.8.14-rt8:\n\n  - If network interface is removed we move all skbs which are active to\n    a list and free it later. The hunk where the list was cleaned up was\n    lost and is back.\n\n  - bnx2x and a few others could corrupt their -\u003epoll_list. Patch by\n    Steven Rostedt.\n\n  - A missing RCU section in the workqueue code could lead to a \"use after\n    free\" condition if the worqueue was removed. Reported by John Keeping\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against v4.8.14-rt9 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/incr/patch-4.8.14-rt8-rt9.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.8.14-rt9\n\nThe RT patch against v4.8.14 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/patch-4.8.14-rt9.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/patches-4.8.14-rt9.tar.xz\n\nSebastian\ndiff --git a/include/linux/netdevice.h b/include/linux/netdevice.h\n--- a/include/linux/netdevice.h\n+++ b/include/linux/netdevice.h\n@@ -395,7 +395,19 @@ typedef enum rx_handler_result rx_handler_result_t;\n typedef rx_handler_result_t rx_handler_func_t(struct sk_buff **pskb);\n\n void __napi_schedule(struct napi_struct *n);\n+\n+/*\n+ * When PREEMPT_RT_FULL is defined, all device interrupt handlers\n+ * run as threads, and they can also be preempted (without PREEMPT_RT\n+ * interrupt threads can not be preempted). Which means that calling\n+ * __napi_schedule_irqoff() from an interrupt handler can be preempted\n+ * and can corrupt the napi-\u003epoll_list.\n+ */\n+#ifdef CONFIG_PREEMPT_RT_FULL\n+#define __napi_schedule_irqoff(n) __napi_schedule(n)\n+#else\n void __napi_schedule_irqoff(struct napi_struct *n);\n+#endif\n\n static inline bool napi_disable_pending(struct napi_struct *n)\n {\ndiff --git a/kernel/workqueue.c b/kernel/workqueue.c\n--- a/kernel/workqueue.c\n+++ b/kernel/workqueue.c\n@@ -1127,9 +1127,11 @@ static void put_pwq_unlocked(struct pool_workqueue *pwq)\n \t\t * As both pwqs and pools are RCU protected, the\n \t\t * following lock operations are safe.\n \t\t */\n+\t\trcu_read_lock();\n \t\tlocal_spin_lock_irq(pendingb_lock, \u0026pwq-\u003epool-\u003elock);\n \t\tput_pwq(pwq);\n \t\tlocal_spin_unlock_irq(pendingb_lock, \u0026pwq-\u003epool-\u003elock);\n+\t\trcu_read_unlock();\n \t}\n }\n\ndiff --git a/localversion-rt b/localversion-rt\n--- a/localversion-rt\n+++ b/localversion-rt\n@@ -1 +1 @@\n--rt8\n+-rt9\ndiff --git a/net/core/dev.c b/net/core/dev.c\n--- a/net/core/dev.c\n+++ b/net/core/dev.c\n@@ -4912,6 +4912,7 @@ void __napi_schedule(struct napi_struct *n)\n }\n EXPORT_SYMBOL(__napi_schedule);\n\n+#ifndef CONFIG_PREEMPT_RT_FULL\n /**\n  * __napi_schedule_irqoff - schedule for receive\n  * @n: entry to schedule\n@@ -4923,6 +4924,7 @@ void __napi_schedule_irqoff(struct napi_struct *n)\n \t____napi_schedule(this_cpu_ptr(\u0026softnet_data), n);\n }\n EXPORT_SYMBOL(__napi_schedule_irqoff);\n+#endif\n\n void __napi_complete(struct napi_struct *n)\n {\n@@ -5212,13 +5214,21 @@ static void net_rx_action(struct softirq_action *h)\n \tstruct softnet_data *sd \u003d this_cpu_ptr(\u0026softnet_data);\n \tunsigned long time_limit \u003d jiffies + 2;\n \tint budget \u003d netdev_budget;\n+\tstruct sk_buff_head tofree_q;\n+\tstruct sk_buff *skb;\n \tLIST_HEAD(list);\n \tLIST_HEAD(repoll);\n\n+\t__skb_queue_head_init(\u0026tofree_q);\n+\n \tlocal_irq_disable();\n+\tskb_queue_splice_init(\u0026sd-\u003etofree_queue, \u0026tofree_q);\n \tlist_splice_init(\u0026sd-\u003epoll_list, \u0026list);\n \tlocal_irq_enable();\n\n+\twhile ((skb \u003d __skb_dequeue(\u0026tofree_q)))\n+\t\tkfree_skb(skb);\n+\n \tfor (;;) {\n \t\tstruct napi_struct *n;\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "c297bb37b26a1d9f59f5ce2978279e990e1428c5",
      "tree": "94f13c4d71e20e54d9f35560c0614ae3ccdc206e",
      "parents": [
        "02d978ea9304bb96a3c0d5984c0903e4dd6304f6"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Dec 12 12:35:47 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Dec 12 12:35:47 2016 +0100"
      },
      "message": "[ANNOUNCE] v4.8.14-rt8\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "02d978ea9304bb96a3c0d5984c0903e4dd6304f6",
      "tree": "ef2ca083d92770adf4d927dea42768b9a367d562",
      "parents": [
        "38c2f12d14909ce82aeecd63883d2052b3a3a608"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Dec 01 17:42:36 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Dec 01 17:54:58 2016 +0100"
      },
      "message": "[ANNOUNCE] v4.8.11-rt7\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.8.11-rt7 patch set.\n\nChanges since v4.8.11-rt6:\n\n  - A fix for a race in the futex/rtmutex code which was there since the\n    very beginning. Reported by David Daney, fixed Thomas Gleixner\n\n  - A fix for the kprobe code on ARM by Yang Shi.\n\n  - It is no longer possible to force an expedited RCU grace period on\n    -RT. We had one spot in the network where it was disabled on RT\n    due to high latencies it caused. Suggested by Luiz Capitulino and\n    patched by Julia Cartwright.\n\n  - Expedited RCU grace periods are now forced during boot which should\n    speed the boot process (even on -RT).\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.8.11-rt6 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/incr/patch-4.8.11-rt6-rt7.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.8.11-rt7\n\nThe RT patch against 4.8.11 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/patch-4.8.11-rt7.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/patches-4.8.11-rt7.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "38c2f12d14909ce82aeecd63883d2052b3a3a608",
      "tree": "84d1f91b864827a8ec9c8a3ac20844e03750c3ca",
      "parents": [
        "d2c367e680dfca620a985c6b63e4ac4f67c96a2a"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Dec 01 12:16:27 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Dec 01 12:16:27 2016 +0100"
      },
      "message": "[ANNOUNCE] v4.8.11-rt6\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "d2c367e680dfca620a985c6b63e4ac4f67c96a2a",
      "tree": "303baef53d98b101899d06d4efb5f27025e1be39",
      "parents": [
        "e15768118871bf62612c041632155ce0182203a5"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Oct 31 20:36:11 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Oct 31 20:36:11 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.8.6-rt5\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.8.6-rt5 patch set.\n\nChanges since v4.8.6-rt5:\n\n  - Added `-no-PIE\u0027 to the Makefile for AFLAGS as well. This breaks gcc\n    3.2. Is someone here still using it?\n\n  - The NFS fixup was slightly adjusted to avoid disabling preemption on\n    !RT.\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.8.6-rt5 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/incr/patch-4.8.6-rt4-rt5.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.8.6-rt5\n\nThe RT patch against 4.8.6 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/patch-4.8.6-rt5.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/patches-4.8.6-rt5.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "e15768118871bf62612c041632155ce0182203a5",
      "tree": "3ca90d2594a850c9b4d97870e858ff25b07f5fdc",
      "parents": [
        "3736188f60e006392918de3b181841ce49f5658d"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Oct 31 14:45:15 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Oct 31 14:45:15 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.8.6-rt4\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "3736188f60e006392918de3b181841ce49f5658d",
      "tree": "4c29bf371c1c1b6e08b537669cad89d5020f8509",
      "parents": [
        "f17a87a2e45d102b048049c8d6b11a73c34d1a83"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Oct 24 10:36:24 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Oct 24 10:36:24 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.8.2-rt3\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.8.2-rt3 patch set.\n\nChanges since v4.8.2-rt2:\n\n  - The connector subsystem could sleep in invalid context. Found and\n    fixed by Mike Galbraith\n\n  - zram / zcomp has shown new warnings. The warnings have been\n    addressed and an old error fixed (Mike Galbraith)\n\n  - The ftrace header was off slightly and the ascii arrow were point to\n    the wrong direction (Mike Galbraith)\n\n  - On CPU-down (CPU hotplug) we could attemp to sleep in wrong context.\n    (Mike Galbraith)\n\n  - Removed an unused static variable in RXPRC (noticed by kbuild test\n    robot)\n\n  - ifdefed a variable in APIC so we don\u0027t get this \"unused variable\"\n    warning on certain configurations (noticed by kbuild test robot)\n\n  - Added `-no-PIE\u0027 to the Makefile. This breaks gcc 3.2. Is someone\n    here still using it?\n\n  - Fixed docbook in two places (noticed by kbuild test robot)\n\n  - Fixed compile on sparc which was broken after I moved RCU headers\n    (noticed by kbuild test robot)\n\n  - The kbuild test robot sent me a warning about sleeping in invalid\n    context in the NFS4 code. I didn\u0027t manage to reproduce this myself\n    but the warning is valid. I attempted to fix this and will wait for\n    robot\u0027s feedback :)\n\n  - Lazy preempt was broken on x86-32. Fixed by Paul Gortmaker.\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.8.2-rt3 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/incr/patch-4.8.2-rt2-rt3.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.8.2-rt3\n\nThe RT patch against 4.6.5 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/patch-4.8.2-rt3.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/patches-4.8.2-rt3.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "f17a87a2e45d102b048049c8d6b11a73c34d1a83",
      "tree": "7b8740bca37f1f92950f8286c978a17dc64d3c36",
      "parents": [
        "592d49034169263d89f13bffb9e8837967af40aa"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Oct 17 12:40:01 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Oct 17 12:40:01 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.8.2-rt2\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "592d49034169263d89f13bffb9e8837967af40aa",
      "tree": "2a908158fdc483358421fabaefd7a52290fa2e66",
      "parents": [
        "8596973fc83d29b923628e287cf65685b94bfbec"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Oct 06 10:19:21 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Oct 06 10:19:21 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.8-rt1\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.8-rt1 patch set.\n\nChanges since v4.6.7-rt14:\n\n  - rebased to v4.8\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.8-rt1\n\nThe RT patch against 4.8 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/older/patch-4.8-rt1.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.8/older/patches-4.8-rt1.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "8596973fc83d29b923628e287cf65685b94bfbec",
      "tree": "dfc15014d82dc7ad397a15a1beff40ec1cae502b",
      "parents": [
        "721e3970304532c88dddce11e794001cb90f374f"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Sep 30 22:35:22 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Sep 30 23:32:24 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.7-rt14\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.6.7-rt14 patch set.\n\nChanges since v4.6.7-rt13:\n\n   - It is possible that a task which got priority boosted, de-boosted\n     itself too early in the unlock path. This leads to then priority\n     inversion because the waiter with priority waits while a process with\n     lower priority runs.\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.6.7-rt12 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/incr/patch-4.6.7-rt13-rt14.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.6.7-rt14\n\nThe RT patch against 4.6.7 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patch-4.6.7-rt14.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patches-4.6.7-rt14.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "721e3970304532c88dddce11e794001cb90f374f",
      "tree": "879abf5ab510458ef57280828707779b8afee6ec",
      "parents": [
        "813679b92ea1fca9d3ca9a9cac5fc06f99a046b5"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Sep 15 18:33:45 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Sep 15 18:33:45 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.7-rt13\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.6.7-rt13 patch set.\n\nChanges since v4.6.7-rt12:\n\n  - The dcache regression fix up introduced another problem. As pointed\n    out by Thomas Gleixner we can\u0027t avoid cpu_chill() for !RT tasks\n    because the owner might be preempted and we would spin until our\n    time slice is used up. Therefore the sched class is ignored and we\n    \"chill\" if the lock is taken and cond_resched() did not work.\n\n  - Never gcc make some noise if __builtin_return_address(x) with x \u003e 1\n    is used. Warning can be ignored by a config option (Steven Rostedt)\n\n  - might_resched() on x86 with lazy preempt might ignores the preemption\n    counter. Now no more.\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.6.7-rt12 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/incr/patch-4.6.7-rt12-rt13.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.6.7-rt13\n\nThe RT patch against 4.6.5 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patch-4.6.7-rt13.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patches-4.6.7-rt13.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "813679b92ea1fca9d3ca9a9cac5fc06f99a046b5",
      "tree": "c7efca2cfbe909c06d3e95cddd9d7bb88296eeba",
      "parents": [
        "37dfea85b9b2a0bb234a46e4459524d3f42aee3f"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Sep 08 20:49:43 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Sep 08 20:49:43 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.7-rt12\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.6.7-rt12 patch set.\n\nChanges since v4.6.7-rt11:\n\n  - The update to v4.6.7-rt11 introduced a performance regression\n    especially visible when compiling a kernel on /dev/shm. It is fixed\n    by invoking less often the \"chill\" function. Reported by Joakim\n    Hernberg.\n\n  - We had a fix in v3.12.8-rt11 for ip_send_unicast_reply() which I\n    dropped in v3.18.8 based -RT due code change and I assumed the need\n    for extra serialization is no longer required. As it turns out it is\n    still required :)\n\n  - While looking around a similar serialisation might be required in\n    icmp_sk(). No crash has been observed, this is just precaution.\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.6.7-rt11 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/incr/patch-4.6.7-rt11-rt12.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.6.7-rt12\n\nThe RT patch against 4.6.5 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patch-4.6.7-rt12.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patches-4.6.7-rt12.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "37dfea85b9b2a0bb234a46e4459524d3f42aee3f",
      "tree": "58eb28bface2336e7640211352f5dfc3a90ba904",
      "parents": [
        "dfa5ee5e044c4cfaef3e3f944df765e3625195f2"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Aug 22 14:10:49 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Aug 22 14:10:49 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.7-rt11\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "dfa5ee5e044c4cfaef3e3f944df765e3625195f2",
      "tree": "d17319df1d2772cacd80bfd5e2442c4e002b72c7",
      "parents": [
        "cb5f946a5c8a7798151822cc0f4e16c5e21ed03f"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Aug 05 18:43:29 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Aug 05 18:43:29 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.5-rt10\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.6.5-rt10 patch set.\n\nChanges since v4.6.5-rt9:\n\n  - Added missing cpu_light_get() in the scsi fcoe driver. Patch by Mike\n    Galbraith.\n\n  - Under a special a condition (a preempted TLB flush in do_exit()) it\n    was possible on x86-UP to enter endless pagefaults. The pagefaults\n    stopped after a context switch.\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.6.5-rt9 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/incr/patch-4.6.5-rt9-rt10.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.6.5-rt10\n\nThe RT patch against 4.6.5 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patch-4.6.5-rt10.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patches-4.6.5-rt10.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "cb5f946a5c8a7798151822cc0f4e16c5e21ed03f",
      "tree": "1f0921ae1dcc08d84c9d08ca072ac9c675888274",
      "parents": [
        "0cc16024f914f3e629502ed3f0a35407e773c4d7"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jul 29 16:39:50 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jul 29 16:39:50 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.5-rt9\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "0cc16024f914f3e629502ed3f0a35407e773c4d7",
      "tree": "a5a4d5fe10716cf2e4eacac5555b659d8beb0075",
      "parents": [
        "7a203491ad9e98ea6506f7822995c41c8995681d"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jul 15 13:30:25 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jul 15 13:30:25 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.4-rt8\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.6.4-rt8 patch set.\n\nChanges since v4.6.4-rt8:\n\n  - Import Thomas\u0027 timer rework known as \"timer: Refactor the timer\n    wheel\" patch set which made its way into the -TIP tree. With this\n    changes we get NOHZ_FULL working. Finally.\n\n  - Avoid warning of an unused symbol in the !RT case\n    (preemptible_lazy())\n\n  - Replace the \"trace event preempt count\" fixup with Steven\u0027s version.\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.6.4-rt8 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/incr/patch-4.6.4-rt7-rt8.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.6.4-rt8\n\nThe RT patch against 4.6.4 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patch-4.6.4-rt8.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patches-4.6.4-rt8.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "7a203491ad9e98ea6506f7822995c41c8995681d",
      "tree": "d2af1cba063d12522e3d521e630446d676d928b0",
      "parents": [
        "2794710f8319e935ca6b4e3e753a8267bf8ce844"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Jul 13 18:14:33 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Jul 14 16:46:42 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.4-rt7\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.6.4-rt7 patch set.\n\nChanges since v4.6.4-rt6:\n\n  - Wake up all waiters of del_timer_sync(). Usually there should not\n    be more than just one waiter (per timer base) but it possible to\n    gain more.\n\n  - Wake up the waiers of del_timer_sync() after dropping the base lock.\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.6.4-rt6 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/incr/patch-4.6.4-rt6-rt7.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.6.4-rt7\n\nThe RT patch against 4.6.2 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patch-4.6.4-rt7.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patches-4.6.4-rt7.tar.xz\n\nSebastian\n"
    },
    {
      "commit": "2794710f8319e935ca6b4e3e753a8267bf8ce844",
      "tree": "b57155d1316a99de67dd4f395225f24f9a024ffa",
      "parents": [
        "5d2c597266888703b5212abb1ce43b58c4a7b641"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Jul 12 13:10:15 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Jul 12 13:10:15 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.4-rt6\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "5d2c597266888703b5212abb1ce43b58c4a7b641",
      "tree": "2e5e1c3fa0b86b6bb3fc278199e2b04538389f43",
      "parents": [
        "6df74278ffa3d98e62db0d66827f1c4a05ccfdd4"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jun 10 18:18:11 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jun 10 18:18:11 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.2-rt5\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.6.2-rt5 patch set.\n\nChanges since v4.6.2-rt4:\n\n  - \"Schedule while atomic\" fixup in cgroup / memcontrol. Patch by Mike\n    Galbraith.\n\n  - Rename of \"work-simple\" to \"swork\" to align with \"swait\". Patch by\n    Mike Galbraith.\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.6.2-rt4 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/incr/patch-4.6.2-rt4-rt5.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.6.2-rt5\n\nThe RT patch against 4.6.2 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patch-4.6.2-rt5.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patches-4.6.2-rt5.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "6df74278ffa3d98e62db0d66827f1c4a05ccfdd4",
      "tree": "cd5aa864889833556023cd54aca0beb383d93058",
      "parents": [
        "b296f297d1ef2fb8e24b1d9d14120c2fe431c2ee"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jun 10 18:08:49 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jun 10 18:08:49 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.2-rt4\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "b296f297d1ef2fb8e24b1d9d14120c2fe431c2ee",
      "tree": "4c79e3ee6efe360665b358a88047ee7ef8318232",
      "parents": [
        "b888c44961779f0d86ac8a8e3b417fa45eceb4ea"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jun 03 11:25:41 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jun 03 11:25:41 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.1-rt3\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.6.1-rt3 patch set.\n\nChanges since v4.6.1-rt2:\n  - On return from interrupt on ARM we could schedule with lazy preempt\n    count \u003e 0 under some circumstances. It isn\u0027t toxic but it shouldn\u0027t\n    happen. Noticed by Thomas Gleixner.\n\n  - The way the preempt counter is accessed on non-x86 architectures\n    allowed the compiler to reorder the code slightly. This led to\n    decrementing the preempt counter, checking for the need resched bit\n    followed by writing the counter back. An interrupt between the last\n    two steps will lead to a missing preemption point and thus high\n    latencies. Patch by Peter Zijlstra.\n\n  - The recorded preemption counter in event trace points (such as\n    raw_syscall_entry) are off by one because each trace point\n    increments the counter. This has been corrected.\n\n  - It is now ensured that there are no attempts to print from IRQ or\n    NMI context. On certain events such as hard-lockup-detector we would\n    attempt to grab sleeping locks.\n\n  - Allow lru_add_drain_all() to perform its work remotely. Patch by\n    Luiz Capitulino and Rik van Riel.\n\nKnown issues\n\t- CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.6.1-rt2 is appended below and can be found here:\n\n     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/incr/patch-4.6.1-rt2-rt3.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.6.1-rt3\n\nThe RT patch against 4.6.1 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patch-4.6.1-rt3.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patches-4.6.1-rt3.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "b888c44961779f0d86ac8a8e3b417fa45eceb4ea",
      "tree": "7f87a51d7b320075ba82672e32579f8a8840fd6a",
      "parents": [
        "651cb42b4c2bdc1326a06204a30ef5d4e143f2aa"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Jun 02 17:46:25 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Jun 02 17:46:25 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6.1-rt2\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "651cb42b4c2bdc1326a06204a30ef5d4e143f2aa",
      "tree": "4919dd0b1a570e9dbd1937fb3b456e59e3272ced",
      "parents": [
        "a52e3317edc58fd536845127ccd9e2e4174261d3"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri May 13 13:02:32 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri May 13 13:02:32 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.6-rc7-rt1\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.6-rc7-rt1 patch set. I tested it on my\nAMD A10, 64bit. Had a few runs on ARM, nothing exploded so far.\n\nChanges since v4.4.9-rt17:\n  - rebase to v4.6-rc7\n  - RWLOCKS and SPINLOCKS used to be cacheline aligned on RT. Now there\n    are no more which is the same behaviour as in upstream.\n\nKnown issues (inherited from v4.4-RT):\n\t- CPU hotplug got a little better but can deadlock.\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.6-rc7-rt1\n\nThe RT patch against 4.6-rc7 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patch-4.6-rc7-rt1.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.6/patches-4.6-rc7-rt1.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "a52e3317edc58fd536845127ccd9e2e4174261d3",
      "tree": "65bb2b4f62669b578d6826996c71bd01e2e42548",
      "parents": [
        "67e59dd0c366160e17d4fd773b848394173c30a2"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri May 06 11:45:16 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri May 06 11:45:16 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.4.9-rt17\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "67e59dd0c366160e17d4fd773b848394173c30a2",
      "tree": "c5cc25e2642d6be0c3b94244048eec5c8c7cad1c",
      "parents": [
        "c948a38cab5a8c9761b676c31a723621d901f193"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Apr 15 19:35:35 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Apr 15 19:35:35 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.4.7-rt16\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.4.7-rt16 patch set.\nChanges since v4.4.7-rt15:\n\n- picked a few panic() re-entrance from NMI fixes from upstream. On -RT\n  we have the same problem without NMI but with the soft/hard watchdog\n  triggering panic().\n\n- Don\u0027t take the port-\u003elock on oops_in_progress. We had a trylock but\n  that trylock does not work if invoked with IRQs off (like from the\n  panic() caller). I am not very happy about this but if we keep it\n  that way it would make sense to make a similar change for the other\n  UART drivers…\n\n- Rik van Riel and Clark Williams pointed out that a change made by\n  Frederic Weisbecker in v4.5 could be backported and then we could\n  remove some locking around vtime handling.\n\nKnown issues:\n  - CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.4.7-rt15 is appended below and can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/incr/patch-4.4.7-rt15-rt16.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.4.7-rt16\n\nThe RT patch against 4.4.7 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.7-rt16.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.7-rt16.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "c948a38cab5a8c9761b676c31a723621d901f193",
      "tree": "1c7aa7e676b358c82ee2de3886503a7d8271a8e2",
      "parents": [
        "fad60192b460274504d8a4929b881a8cce00abc5"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Apr 15 17:03:49 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Apr 15 17:03:49 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.4.7-rt15\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "fad60192b460274504d8a4929b881a8cce00abc5",
      "tree": "f4d47751087bc926ae78593786ed036d242ea047",
      "parents": [
        "78eaf7bbf2853f0726c445dbf90234ba299c6f32"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Apr 08 16:38:04 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Apr 08 16:38:04 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.4.6-rt14\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.4.6-rt14 patch set.\nChanges since v4.4.6-rt13:\n\n- Dan Murphy reported that zram does not compile on !RT. Now it does.\n\n- The TWD timer is now enabled on IMX6Q configs even with !SMP.\n  People with i.MX6SOLO should now see better cyclictest results with\n  TWD than with the mxc-timer.\n\nKnown issues:\n  - CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.4.6-rt13 is appended below and can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/incr/patch-4.4.6-rt13-rt14.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.4.6-rt14\n\nThe RT patch against 4.4.6 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.6-rt14.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.6-rt14.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "78eaf7bbf2853f0726c445dbf90234ba299c6f32",
      "tree": "6357dc3e58559adbaef20d0c1c24d333749a3a4d",
      "parents": [
        "1df1c6d97b8a65305fdbd9d8d90fecd48718fc83"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Apr 01 23:19:31 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Apr 01 23:19:31 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.4.6-rt13\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.4.6-rt13 patch set.\nChanges since v4.4.6-rt12:\n\n- Alexandre Belloni sent patch for the AT91 to get rid of the free_irq()\n  warning.\n\n- Yang Shi sent a patch to address a \"sleeping while atomic\" warning in\n  a writeback tracepoint. Until now it was disabled to avoid it, now it\n  can be used again.\n\n- Rik van Riel sent a patch to make the kvm async pagefault code use a\n  simple wait queue.\n\n- Mike Galbraith set a patch to address a \"sleeping while atomic\"\n  warning in zsmalloc\n\n- Netork packets sent by a RT task could be delayed (but won\u0027t block the\n  RT task) if a task with lower priority was interruped while sending a\n  packet. This is address by taking a qdisc lock so the high-prio task\n  can boost a task with lower priority.\n\n- Clark Williams reported a swait related complate_all() warning while\n  comming out of suspend. Suspend to RAM (and hibernate) are now\n  filtered out from the warning.\n\n- Mike Galbraith sent a patch to address a \"sleeping while atomic\"\n  warning in the zram driver.\n\n- Josh Cartwright sent a patch to fix a lockdep splat in list_bl which\n  was reported by Luis Claudio R. Goncalves.\n\nKnown issues:\n  - CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.4.6-rt12 is appended below and can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/incr/patch-4.4.6-rt12-rt13.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.4.6-rt13\n\nThe RT patch against 4.4.6 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.6-rt13.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.6-rt13.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "1df1c6d97b8a65305fdbd9d8d90fecd48718fc83",
      "tree": "47825e8df62b819500433c0b80662dc0f21db648",
      "parents": [
        "3300e9f53a238b533ecbd8857d4c93f65132bafc"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Mar 29 12:52:22 2016 +0200"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Mar 29 12:52:22 2016 +0200"
      },
      "message": "[ANNOUNCE] 4.4.6-rt12\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "3300e9f53a238b533ecbd8857d4c93f65132bafc",
      "tree": "2a7910f591b99a35d98e7aa92d8b6c327e315270",
      "parents": [
        "ee504eaedb9779b0e95b5925f3bbc9e0ead0282a"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Mar 09 14:41:27 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Mar 09 14:41:27 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.4.4-rt11\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.4.4-rt11 patch set.\nChanges since v4.4.4-rt10:\n\n- A  compile error has been fixed in conjunction with the latency\n  tracer.\n\n- AT91 got a little better. A larger patch series by Boris Brezillon has\n  been merged. That means SAMA5 boots now. There is one warning left\n  about invoking free_irq() twice. I would be glad about some feedback\n  from pre-SAMA5 SoC. Those which share UART and timer interrupt. It\n  seems that that one I have here does not do this anymore.\n\n- A patch on top the AT91 series to avoid two warning while switching\n  from period to oneshow mode.\n\n- Daniel Wagner refurbished the swait patches. This relase contains now\n  what is queued for v4.6 in the TIP tree. Only RT uses `completion\u0027\n  based on swait. Based on the current implementation you will see a\n  warning if complete_all() in invoked on more than two waiters. Please\n  report if see this.\n\nKnown issues:\n  - CPU hotplug got a little better but can deadlock.\n\nThe delta patch against 4.4.4-rt10 is appended below and can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/incr/patch-4.4.4-rt10-rt11.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.4.4-rt11\n\nThe RT patch against 4.4.4 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.4-rt11.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.4-rt11.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "ee504eaedb9779b0e95b5925f3bbc9e0ead0282a",
      "tree": "20f881487dfd58ad61fe7c8cec8e71602c8ae250",
      "parents": [
        "02d11b73d8133f94f5384bcf80d82bb7df6eff95"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Mar 09 12:13:29 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Mar 09 12:13:29 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.4.4-rt10\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "02d11b73d8133f94f5384bcf80d82bb7df6eff95",
      "tree": "03a8f17bf2c65260e9f778077cbbbdfe79f3c785",
      "parents": [
        "1f5b31cf66208183133b983dc0ac196663418885"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 29 09:34:47 2016 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Feb 29 12:21:06 2016 +0100"
      },
      "message": "[ANNOUNCE] v4.4.3-rt9\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.4.3-rt9 patch set. v4.4.2-rt7 and v4.4.3-rt8\nare non-announced updates to incorporate the linux-4.4.y stable tree.\n\nThere is one change caused by the 4.4.3 update:\n\n  The relaxed handling of dump_stack() on RT has been dropped as there is\n  actually a potential deadlock lurking around the corner. See: commit\n  d7ce36924344 upstream. This does not effect the other facilities which\n  gather stack traces.\n\nRT changes since v4.4.3-rt8:\n\n  Clark Williams (1):\n      rcu/torture: Comment out rcu_bh ops on PREEMPT_RT_FULL\n\n  Josh Cartwright (1):\n      sc16is7xx: Drop bogus use of IRQF_ONESHOT\n\n  Mike Galbraith (4):\n      sched,rt: __always_inline preemptible_lazy()\n      locking/lglocks: Use preempt_enable/disable_nort() in lg_double_[un]lock\n      drm,radeon,i915: Use preempt_disable/enable_rt() where recommended\n      drm,i915: Use local_lock/unlock_irq() in intel_pipe_update_start/end()\n\n  Sebastian Andrzej Siewior (1):\n      kernel: sched: Fix preempt_disable_ip recording for preempt_disable()\n\n  Thomas Gleixner (4):\n      iommu/amd: Use WARN_ON_NORT in __attach_device()\n      tick/broadcast: Make broadcast hrtimer irqsafe\n      trace/writeback: Block cgroup path tracing on RT\n      v4.4.3-rt9\n\n  Yang Shi (2):\n      trace: Use rcuidle version for preemptoff_hist trace point\n      f2fs: Mutex can\u0027t be used by down_write_nest_lock()\n\nKnown issues:\n\n  - bcache stays disabled\n\n  - CPU hotplug is not better than before\n\n  - The netlink_release() OOPS, reported by Clark, is still on the\n    list, but unsolved due to lack of information\n\nThe delta patch against 4.4.3-rt8 is appended below and can be found here:\n\n    https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/incr/patch-4.4.3-rt8-rt9.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.4.3-rt9\n\nThe RT patch against 4.4.3 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.3-rt9.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.3-rt9.tar.xz\n\nEnjoy!\n\n\ttglx\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "1f5b31cf66208183133b983dc0ac196663418885",
      "tree": "5b83881fb0d902fe40028562df56054dc219f50d",
      "parents": [
        "47eec6126916d2e92064c577994f80996c57218b"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Feb 28 14:57:13 2016 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Feb 28 14:57:13 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.4.3-rt8\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "47eec6126916d2e92064c577994f80996c57218b",
      "tree": "9d43027bf3e2893f3d2c84be0ae1718a127083fe",
      "parents": [
        "646b673fcdafa99c8b5ff4044e5016299af0f7f1"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Feb 25 13:51:05 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Feb 25 13:51:05 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.4.2-rt7\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "646b673fcdafa99c8b5ff4044e5016299af0f7f1",
      "tree": "e8d8cc18691ddf619620704f1db7c5164f3bdc22",
      "parents": [
        "d8dccc069daa6d14f605b478321c29b8a9f6869c"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Sat Feb 13 00:34:19 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Sat Feb 13 00:41:07 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.4.1-rt6\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.4.1-rt6 patch set.\nChanges since v4.4.1-rt5:\n\n- The rtmutex wait_lock is taken with interrupts disabled again. It\n  fixes a possible deadlock in the posix timer code. Patch by Thomas\n  Gleixner.\n\n- Don\u0027t disable interrupts around atomic_dec_and_lock() in\n  wb_congested_put()\n\n- use a RCU lock in call_step_hook() on ARM64 to avoid sleeping while\n  atomic issue. Patch by Yang Shi.\n\n- In migrate_disable() we use now the fast / atomic path if were are\n  called with interrupts disabled. This avoids a recursion with lockdep\n  in some cases.\n\n- The migrate_disable()/_enable() invocation has been moved from the\n  locking macro into the used rt_mutex functions. This makes the kernel a\n  tiny bit smaller.\n\n- We now try to invoke migrate_enable() before we schedule() out while\n  waiting for a lock. This optimization should allow the scheduler to\n  put the task on another CPU once it became runnable and the original\n  CPU is busy. This does not work for nested locks. Patch by Thomas\n  Gleixner.\n\n- The stop_machine.c was converted to use raw_locks. This patch has been\n  identified to cause problems during hotplug and was reverted.\n\n- There is a useless rcu_bh thread which has been deactivated.\n\n- Manish Jaggi reported that a sleeping while atomic issue on AMR64 with\n  KVM. Josh Cartwright sent a patch.\n\nKnown issues:\n  - bcache stays disabled\n\n  - CPU hotplug got a little better but can deadlock.\n\n  - The netlink_release() OOPS, reported by Clark, is still on the\n    list, but unsolved due to lack of information.\n    Since Clark can not reproduce it anymore and hasn\u0027t seen it, it will\n    be removed from this list and moved to the bugzilla.\n\nThe delta patch against 4.4.1-rt5 is appended below and can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/incr/patch-4.4.1-rt5-rt6.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.4.1-rt6\n\nThe RT patch against 4.4.1 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.1-rt6.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.5-rt6.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "d8dccc069daa6d14f605b478321c29b8a9f6869c",
      "tree": "e2b398827b0349c4b793a50ff25c31c84d77b2f0",
      "parents": [
        "80cacc1f9455036617b76da3556e2226eac9a1c3"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Feb 04 21:33:13 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Thu Feb 04 21:36:35 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.4.1-rt5\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.4.1-rt5 patch set.\nChanges since v4.4.1-rt4:\n\n- various compile fixes found by kbuild test robot.\n\n- Mike Galbraith spotted that migrate_disables() sets -\u003enr_cpus_allowed\n  to one by accident.\n\n- Christoph Mathys reported that the \"preemptirqsoff_hist\" tracer\n  reboots the system once enabled. The problem has been resolved.\n\n- Thomas Gleixner sent a patch to set a default affinity for mask for\n  interrupts via kernel command line.\n\n- Yang Shi reported that some perf events were reported as \"not counted\"\n  instead the actual numbers. The problem has been resolved.\n\nKnown issues:\n  - bcache stays disabled\n\n  - CPU hotplug is not better than before\n\n  - The netlink_release() OOPS, reported by Clark, is still on the\n    list, but unsolved due to lack of information\n\nThe delta patch against 4.4.1-rt4 is appended below and can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/incr/patch-4.4.1-rt4-rt5.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.4.1-rt5\n\nThe RT patch against 4.4.1 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.1-rt5.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4.1-rt5.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "80cacc1f9455036617b76da3556e2226eac9a1c3",
      "tree": "a06bc80602a1d8054dd029037db1fb50ceec401a",
      "parents": [
        "18b0ea1ce8ddca86b3f09a9122a3c722b265dfb8"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Feb 01 11:07:42 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Mon Feb 01 11:07:42 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.4.1-rt4\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "18b0ea1ce8ddca86b3f09a9122a3c722b265dfb8",
      "tree": "5c77303303e2b5154e1dd8555b16a5196c553d62",
      "parents": [
        "c5f0ba59007d49527ec8c89cd6ff721a8f5c294e"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jan 22 23:56:10 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Fri Jan 22 23:56:10 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.4-rt3\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.4-rt3 patch set.\nChanges since v4.4-rt2:\n\n- various compile fixes found by kbuild test robot and Grygorii\n  Strashko.\n\n- kbuild test robot reported that we open interrupts too early in\n  ptrace_freeze_traced().\n\n- dropping a GPIO patch from the OMAP queue which is no longer\n  required (requested by Grygorii Strashko)\n\n- dropping a retry loop in the mm/anon_vma_free() which was probably\n  just duct tape and does no longer seems required.\n\n- Various people pointed out that the AT91 clocksource driver did not\n  not compile. It does now. However AT91 does not yet boot. There are\n  two issues:\n  - the free_irq() from irq-off region is not good and triggers a\n    warning because it is invoked twice. This will be addressed later,\n    the current patch is not bulletproof and not yet part of the series.\n  - The PMC driver invokes request_irq() very early which leads to a\n    NULL pointer exception (non-RT with threaded interrupts has the same\n    problem). A longer explanation by Alexandre Belloni and his current\n    patch series he refers to can be found at:\n    http://lkml.kernel.org/r/1452997394-8554-1-git-send-email-alexandre.belloni@free-electrons.com\n\n- Using a virtual network device (like a bridge) could lead to a \"Dead\n  loop\" message the packet dropped. This problem has been fixed.\n\n- Julia Lawall sent a patch against hwlat_detector to \"move constants to\n  the right of binary operators\".\n\n- Carsten Emde sent a patch to fix the latency histogram tracer.\n\n- Mike Galbraith reported that the softirq ate about 25% CPU time doing\n  nothing. The problem was fixed.\n\n- Grygorii Strashko pointed out that two RCU/ksoftirqd changes that were\n  made to the non-RT version of the code did not make to the RT version.\n  This was corrected.\n\n- btrfs forgot to initialize a seqcount variable which prints a warning\n  if used with lockdep.\n\n- A few users napi_alloc_cache() were not protected against reentrance.\n\n- Grygorii Strashko fixed highmem on ARM.\n\n- Mike Galbraith reported that all tasks run on CPU0 even on a system\n  with more than one. Problem fixed by Thomas Gleixner.\n\n- Anders Roxell sent two patches (against coupled and vsp1) because they\n  did not compile and printed a warning on -RT.\n\n- Mike Galbraith pointed out that we forgot to check for\n  NEED_RESCHED_LAZY in an exit path on X86 and provided a patch.\n\n- Mike Galbraith pointed out that we don\u0027t consider the preempt_lazy_count\n  in the common preemption check and provided a patch. With this fixed,\n  the sched_other performance should improve.\n\n- A high network load could lead to RCU stalls followed by the OOM\n  killer. Say a slower ARM with on a GBIT link running RT tasks, doing\n  network IO (at a RT prio) and getting shot with the flood ping at a\n  high rate. NAPI does not really kick in because each time NAPI tries\n  defer processing it starts again in the context of the IRQ thread of\n  the network driver.\n  This has been fixed in two steps:\n  - once the NAPI budget is up, we schedule ksoftirqd. This works now on\n    -RT, too\n  - ksoftirqd runs now at SCHED_OTHER priority like the on !RT. Now the\n    scheduler can preempt ksoftirqd and let RCU do its job. The timer\n    and hrtimer softirq processing happens now in ktimersoftd which runs\n    at SCHED_FIFO (as ksoftirqd used to).\n\n- Grygorii Strashko pointed out that if RCU_EXPERT is not enabled then\n  we can\u0027t select RCU_BOOST. Therefore RCU_EXPERT is default y on RT.\n\n- Grygorii Strashko pointed out the we miss to check for\n  NEED_RESCHED_LAZY in an exit path on ARM. This has been fixed on ARM\n  and on ARM64 as well.\n\nThis was a lot and I hope I forgot nothing important.\n\nKnown issues:\n  - bcache stays disabled\n\n  - CPU hotplug is not better than before\n\n  - The netlink_release() OOPS, reported by Clark, is still on the\n    list, but unsolved due to lack of information\n\nThe delta patch against 4.4-rt2 is appended below and can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/incr/patch-4.4-rt2-rt3.patch\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.4-rt3\n\nThe RT patch against 4.1.13 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4-rt3.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4-rt3.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "c5f0ba59007d49527ec8c89cd6ff721a8f5c294e",
      "tree": "affd020051f4f6c0c4d52128ce6e49f9901daeeb",
      "parents": [
        "7bbd599b8bb8ca9e9b7cf0fdf77da61fc1eb7d11"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Jan 12 16:23:00 2016 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Jan 12 16:23:00 2016 +0100"
      },
      "message": "[ANNOUNCE] 4.4-rt2\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "7bbd599b8bb8ca9e9b7cf0fdf77da61fc1eb7d11",
      "tree": "a218f64a3fd415012d135ec0c1202211d66600fa",
      "parents": [
        "1ccda4237a810cc0ef5c801ed1fd512543c70785"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Dec 23 23:25:26 2015 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Dec 23 23:52:17 2015 +0100"
      },
      "message": "[ANNOUNCE] 4.4-rc6-rt1\n\nPlease don\u0027t continue reading before christmas eve (or morning,\ndepending on your schedule). If you don\u0027t celebrate christmas,\nwell go ahead.\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.4-rc6-rt1 patch set. I tested it on my\nAMD A10, 64bit. Nothing exploded so far, filesystem is still there.\nI haven\u0027t tested it on anything else. Before someone asks: this does not\nmean it does *not* work on ARM I simply did not try it.\n\nIf you are brave then download it, install it and have fun. If something\nbreaks, please report it. If your machine starts blinking like a\nchristmas tree while using the patch then *please* send a photo.\n\nChanges since v4.1.15-rt17:\n  - rebase to v4.4-rc6\n\nKnown issues (inherited from v4.1-RT):\n      - bcache stays disabled\n\n      - CPU hotplug is not better than before\n\n      - The netlink_release() OOPS, reported by Clark, is still on the\n        list, but unsolved due to lack of information\n\n      - Christoph Mathys reported a stall in cgroup locking code while using\n        Linux containers.\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.4-rc6-rt1\n\nThe RT patch against 4.4-rc6 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4-rc6-rt1.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.4/patches-4.4-rc6-rt1.tar.xz\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "1ccda4237a810cc0ef5c801ed1fd512543c70785",
      "tree": "50c0e9206604a7efb0773766f0e1712f70a1609a",
      "parents": [
        "16abccd3189b44fa3a2de507d3fe03e14f9b5e43"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Dec 22 16:58:02 2015 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Dec 22 16:58:02 2015 +0100"
      },
      "message": "[ANNOUNCE] 4.1.15-rt17\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.1.15-rt17 patch set.\nChanges since v4.1.15-rt16:\n\nAxel Lin (1):\n      gpio: omap: Fix missing raw locks conversion\n\nGrygorii Strashko (15):\n      gpio: omap: fix omap_gpio_free to not clean up irq configuration\n      gpio: omap: fix error handling in omap_gpio_irq_type\n      gpio: omap: rework omap_x_irq_shutdown to touch only irqs specific registers\n      gpio: omap: rework omap_gpio_request to touch only gpio specific registers\n      gpio: omap: rework omap_gpio_irq_startup to handle current pin state properly\n      gpio: omap: add missed spin_unlock_irqrestore in omap_gpio_irq_type\n      gpio: omap: prevent module from being unloaded while in use\n      gpio: omap: remove wrong irq_domain_remove usage in probe\n      gpio: omap: switch to use platform_get_irq\n      gpio: omap: fix omap2_set_gpio_debounce\n      gpio: omap: protect regs access in omap_gpio_irq_handler\n      gpio: omap: fix clk_prepare/unprepare usage\n      gpio: omap: fix static checker warning\n      gpio: omap: move pm runtime in irq_chip.irq_bus_lock/sync_unlock\n      gpio: omap: convert to use generic irq handler\n\nRuss Dill (1):\n      ARM: OMAP2: Drop the concept of certain power domains not being able to lose context.\n\nSebastian Andrzej Siewior (4):\n      Revert \"x86: Do not disable preemption in int3 on 32bit\"\n      Revert \"gpio: omap: use raw locks for locking\"\n      gpio: omap: use raw locks for locking\n      v4.1.15-rt17\n\nTony Lindgren (3):\n      gpio: omap: Allow building as a loadable module\n      gpio: omap: Fix gpiochip_add() handling for deferred probe\n      gpio: omap: Fix GPIO numbering for deferred probe\n\nYang Shi (1):\n      x86/signal: delay calling signals on 32bit\n\nbmouring@ni.com (1):\n      rtmutex: Use chainwalking control enum\n\nKnown issues:\n  - bcache stays disabled\n\n  - CPU hotplug is not better than before\n\n  - The netlink_release() OOPS, reported by Clark, is still on the\n    list, but unsolved due to lack of information\n\n  - Christoph Mathys reported a stall in cgroup locking code while using\n    Linux containers.\n\nThe delta patch against 4.1.15-rt17 is appended below and can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/incr/patch-4.1.15-rt16-rt17.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.1.15-rt17\n\nThe RT patch against 4.1.15 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/patch-4.1.15-rt17.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/patches-4.1.15-rt17.tar.xz\n\nSebastian\n\ndiff --git a/arch/arm/mach-omap2/gpio.c b/arch/arm/mach-omap2/gpio.c\nindex 7a577145b68b..689a1af47c80 100644\n--- a/arch/arm/mach-omap2/gpio.c\n+++ b/arch/arm/mach-omap2/gpio.c\n@@ -130,7 +130,6 @@ static int __init omap2_gpio_dev_init(struct omap_hwmod *oh, void *unused)\n \t}\n\n \tpwrdm \u003d omap_hwmod_get_pwrdm(oh);\n-\tpdata-\u003eloses_context \u003d pwrdm_can_ever_lose_context(pwrdm);\n\n \tpdev \u003d omap_device_build(name, id - 1, oh, pdata, sizeof(*pdata));\n \tkfree(pdata);\ndiff --git a/arch/arm/mach-omap2/powerdomain.c b/arch/arm/mach-omap2/powerdomain.c\nindex 78af6d8cf2e2..ef4227ffa3b6 100644\n--- a/arch/arm/mach-omap2/powerdomain.c\n+++ b/arch/arm/mach-omap2/powerdomain.c\n@@ -1166,43 +1166,3 @@ int pwrdm_get_context_loss_count(struct powerdomain *pwrdm)\n \treturn count;\n }\n\n-/**\n- * pwrdm_can_ever_lose_context - can this powerdomain ever lose context?\n- * @pwrdm: struct powerdomain *\n- *\n- * Given a struct powerdomain * @pwrdm, returns 1 if the powerdomain\n- * can lose either memory or logic context or if @pwrdm is invalid, or\n- * returns 0 otherwise.  This function is not concerned with how the\n- * powerdomain registers are programmed (i.e., to go off or not); it\u0027s\n- * concerned with whether it\u0027s ever possible for this powerdomain to\n- * go off while some other part of the chip is active.  This function\n- * assumes that every powerdomain can go to either ON or INACTIVE.\n- */\n-bool pwrdm_can_ever_lose_context(struct powerdomain *pwrdm)\n-{\n-\tint i;\n-\n-\tif (!pwrdm) {\n-\t\tpr_debug(\"powerdomain: %s: invalid powerdomain pointer\\n\",\n-\t\t\t __func__);\n-\t\treturn 1;\n-\t}\n-\n-\tif (pwrdm-\u003epwrsts \u0026 PWRSTS_OFF)\n-\t\treturn 1;\n-\n-\tif (pwrdm-\u003epwrsts \u0026 PWRSTS_RET) {\n-\t\tif (pwrdm-\u003epwrsts_logic_ret \u0026 PWRSTS_OFF)\n-\t\t\treturn 1;\n-\n-\t\tfor (i \u003d 0; i \u003c pwrdm-\u003ebanks; i++)\n-\t\t\tif (pwrdm-\u003epwrsts_mem_ret[i] \u0026 PWRSTS_OFF)\n-\t\t\t\treturn 1;\n-\t}\n-\n-\tfor (i \u003d 0; i \u003c pwrdm-\u003ebanks; i++)\n-\t\tif (pwrdm-\u003epwrsts_mem_on[i] \u0026 PWRSTS_OFF)\n-\t\t\treturn 1;\n-\n-\treturn 0;\n-}\ndiff --git a/arch/arm/mach-omap2/powerdomain.h b/arch/arm/mach-omap2/powerdomain.h\nindex 28a796ce07d7..5e0c033a21db 100644\n--- a/arch/arm/mach-omap2/powerdomain.h\n+++ b/arch/arm/mach-omap2/powerdomain.h\n@@ -244,7 +244,6 @@ int pwrdm_state_switch(struct powerdomain *pwrdm);\n int pwrdm_pre_transition(struct powerdomain *pwrdm);\n int pwrdm_post_transition(struct powerdomain *pwrdm);\n int pwrdm_get_context_loss_count(struct powerdomain *pwrdm);\n-bool pwrdm_can_ever_lose_context(struct powerdomain *pwrdm);\n\n extern int omap_set_pwrdm_state(struct powerdomain *pwrdm, u8 state);\n\ndiff --git a/arch/x86/include/asm/signal.h b/arch/x86/include/asm/signal.h\nindex b1b08a28c72a..0e7bfe98e1d1 100644\n--- a/arch/x86/include/asm/signal.h\n+++ b/arch/x86/include/asm/signal.h\n@@ -32,7 +32,7 @@ typedef struct {\n  * TIF_NOTIFY_RESUME and set up the signal to be sent on exit of the\n  * trap.\n  */\n-#if defined(CONFIG_PREEMPT_RT_FULL) \u0026\u0026 defined(CONFIG_X86_64)\n+#if defined(CONFIG_PREEMPT_RT_FULL)\n #define ARCH_RT_DELAYS_SIGNAL_SEND\n #endif\n\ndiff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c\nindex ebae118938ef..324ab5247687 100644\n--- a/arch/x86/kernel/traps.c\n+++ b/arch/x86/kernel/traps.c\n@@ -88,21 +88,9 @@ static inline void conditional_sti(struct pt_regs *regs)\n \t\tlocal_irq_enable();\n }\n\n-static inline void conditional_sti_ist(struct pt_regs *regs)\n+static inline void preempt_conditional_sti(struct pt_regs *regs)\n {\n-#ifdef CONFIG_X86_64\n-\t/*\n-\t * X86_64 uses a per CPU stack on the IST for certain traps\n-\t * like int3. The task can not be preempted when using one\n-\t * of these stacks, thus preemption must be disabled, otherwise\n-\t * the stack can be corrupted if the task is scheduled out,\n-\t * and another task comes in and uses this stack.\n-\t *\n-\t * On x86_32 the task keeps its own stack and it is OK if the\n-\t * task schedules out.\n-\t */\n \tpreempt_count_inc();\n-#endif\n \tif (regs-\u003eflags \u0026 X86_EFLAGS_IF)\n \t\tlocal_irq_enable();\n }\n@@ -113,13 +101,11 @@ static inline void conditional_cli(struct pt_regs *regs)\n \t\tlocal_irq_disable();\n }\n\n-static inline void conditional_cli_ist(struct pt_regs *regs)\n+static inline void preempt_conditional_cli(struct pt_regs *regs)\n {\n \tif (regs-\u003eflags \u0026 X86_EFLAGS_IF)\n \t\tlocal_irq_disable();\n-#ifdef CONFIG_X86_64\n \tpreempt_count_dec();\n-#endif\n }\n\n enum ctx_state ist_enter(struct pt_regs *regs)\n@@ -550,9 +536,9 @@ dotraplinkage void notrace do_int3(struct pt_regs *regs, long error_code)\n \t * as we may switch to the interrupt stack.\n \t */\n \tdebug_stack_usage_inc();\n-\tconditional_sti_ist(regs);\n+\tpreempt_conditional_sti(regs);\n \tdo_trap(X86_TRAP_BP, SIGTRAP, \"int3\", regs, error_code, NULL);\n-\tconditional_cli_ist(regs);\n+\tpreempt_conditional_cli(regs);\n \tdebug_stack_usage_dec();\n exit:\n \tist_exit(regs, prev_state);\n@@ -682,12 +668,12 @@ dotraplinkage void do_debug(struct pt_regs *regs, long error_code)\n \tdebug_stack_usage_inc();\n\n \t/* It\u0027s safe to allow irq\u0027s after DR6 has been saved */\n-\tconditional_sti_ist(regs);\n+\tpreempt_conditional_sti(regs);\n\n \tif (v8086_mode(regs)) {\n \t\thandle_vm86_trap((struct kernel_vm86_regs *) regs, error_code,\n \t\t\t\t\tX86_TRAP_DB);\n-\t\tconditional_cli_ist(regs);\n+\t\tpreempt_conditional_cli(regs);\n \t\tdebug_stack_usage_dec();\n \t\tgoto exit;\n \t}\n@@ -707,7 +693,7 @@ dotraplinkage void do_debug(struct pt_regs *regs, long error_code)\n \tsi_code \u003d get_si_code(tsk-\u003ethread.debugreg6);\n \tif (tsk-\u003ethread.debugreg6 \u0026 (DR_STEP | DR_TRAP_BITS) || user_icebp)\n \t\tsend_sigtrap(tsk, regs, error_code, si_code);\n-\tconditional_cli_ist(regs);\n+\tpreempt_conditional_cli(regs);\n \tdebug_stack_usage_dec();\n\n exit:\ndiff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig\nindex caefe806db5e..ff7df95de3bf 100644\n--- a/drivers/gpio/Kconfig\n+++ b/drivers/gpio/Kconfig\n@@ -308,7 +308,7 @@ config GPIO_OCTEON\n \t  family of SOCs.\n\n config GPIO_OMAP\n-\tbool \"TI OMAP GPIO support\" if COMPILE_TEST \u0026\u0026 !ARCH_OMAP2PLUS\n+\ttristate \"TI OMAP GPIO support\" if ARCH_OMAP2PLUS || COMPILE_TEST\n \tdefault y if ARCH_OMAP\n \tdepends on ARM\n \tselect GENERIC_IRQ_CHIP\ndiff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c\nindex a0ace2758e2e..4916fd726dce 100644\n--- a/drivers/gpio/gpio-omap.c\n+++ b/drivers/gpio/gpio-omap.c\n@@ -29,6 +29,7 @@\n #include \u003clinux/platform_data/gpio-omap.h\u003e\n\n #define OFF_MODE\t1\n+#define OMAP4_GPIO_DEBOUNCINGTIME_MASK 0xFF\n\n static LIST_HEAD(omap_gpio_list);\n\n@@ -50,7 +51,7 @@ struct gpio_regs {\n struct gpio_bank {\n \tstruct list_head node;\n \tvoid __iomem *base;\n-\tu16 irq;\n+\tint irq;\n \tu32 non_wakeup_gpios;\n \tu32 enabled_non_wakeup_gpios;\n \tstruct gpio_regs context;\n@@ -58,6 +59,7 @@ struct gpio_bank {\n \tu32 level_mask;\n \tu32 toggle_mask;\n \traw_spinlock_t lock;\n+\traw_spinlock_t wa_lock;\n \tstruct gpio_chip chip;\n \tstruct clk *dbck;\n \tu32 mod_usage;\n@@ -67,7 +69,7 @@ struct gpio_bank {\n \tstruct device *dev;\n \tbool is_mpuio;\n \tbool dbck_flag;\n-\tbool loses_context;\n+\n \tbool context_valid;\n \tint stride;\n \tu32 width;\n@@ -175,7 +177,7 @@ static inline void omap_gpio_rmw(void __iomem *base, u32 reg, u32 mask, bool set\n static inline void omap_gpio_dbck_enable(struct gpio_bank *bank)\n {\n \tif (bank-\u003edbck_enable_mask \u0026\u0026 !bank-\u003edbck_enabled) {\n-\t\tclk_prepare_enable(bank-\u003edbck);\n+\t\tclk_enable(bank-\u003edbck);\n \t\tbank-\u003edbck_enabled \u003d true;\n\n \t\twritel_relaxed(bank-\u003edbck_enable_mask,\n@@ -193,7 +195,7 @@ static inline void omap_gpio_dbck_disable(struct gpio_bank *bank)\n \t\t */\n \t\twritel_relaxed(0, bank-\u003ebase + bank-\u003eregs-\u003edebounce_en);\n\n-\t\tclk_disable_unprepare(bank-\u003edbck);\n+\t\tclk_disable(bank-\u003edbck);\n \t\tbank-\u003edbck_enabled \u003d false;\n \t}\n }\n@@ -204,8 +206,9 @@ static inline void omap_gpio_dbck_disable(struct gpio_bank *bank)\n  * @offset: the gpio number on this @bank\n  * @debounce: debounce time to use\n  *\n- * OMAP\u0027s debounce time is in 31us steps so we need\n- * to convert and round up to the closest unit.\n+ * OMAP\u0027s debounce time is in 31us steps\n+ *   \u003cdebounce time\u003e \u003d (GPIO_DEBOUNCINGTIME[7:0].DEBOUNCETIME + 1) x 31\n+ * so we need to convert and round up to the closest unit.\n  */\n static void omap2_set_gpio_debounce(struct gpio_bank *bank, unsigned offset,\n \t\t\t\t    unsigned debounce)\n@@ -213,34 +216,33 @@ static void omap2_set_gpio_debounce(struct gpio_bank *bank, unsigned offset,\n \tvoid __iomem\t\t*reg;\n \tu32\t\t\tval;\n \tu32\t\t\tl;\n+\tbool\t\t\tenable \u003d !!debounce;\n\n \tif (!bank-\u003edbck_flag)\n \t\treturn;\n\n-\tif (debounce \u003c 32)\n-\t\tdebounce \u003d 0x01;\n-\telse if (debounce \u003e 7936)\n-\t\tdebounce \u003d 0xff;\n-\telse\n-\t\tdebounce \u003d (debounce / 0x1f) - 1;\n+\tif (enable) {\n+\t\tdebounce \u003d DIV_ROUND_UP(debounce, 31) - 1;\n+\t\tdebounce \u0026\u003d OMAP4_GPIO_DEBOUNCINGTIME_MASK;\n+\t}\n\n \tl \u003d BIT(offset);\n\n-\tclk_prepare_enable(bank-\u003edbck);\n+\tclk_enable(bank-\u003edbck);\n \treg \u003d bank-\u003ebase + bank-\u003eregs-\u003edebounce;\n \twritel_relaxed(debounce, reg);\n\n \treg \u003d bank-\u003ebase + bank-\u003eregs-\u003edebounce_en;\n \tval \u003d readl_relaxed(reg);\n\n-\tif (debounce)\n+\tif (enable)\n \t\tval |\u003d l;\n \telse\n \t\tval \u0026\u003d ~l;\n \tbank-\u003edbck_enable_mask \u003d val;\n\n \twritel_relaxed(val, reg);\n-\tclk_disable_unprepare(bank-\u003edbck);\n+\tclk_disable(bank-\u003edbck);\n \t/*\n \t * Enable debounce clock per module.\n \t * This call is mandatory because in omap_gpio_request() when\n@@ -285,7 +287,7 @@ static void omap_clear_gpio_debounce(struct gpio_bank *bank, unsigned offset)\n \t\tbank-\u003econtext.debounce \u003d 0;\n \t\twritel_relaxed(bank-\u003econtext.debounce, bank-\u003ebase +\n \t\t\t     bank-\u003eregs-\u003edebounce);\n-\t\tclk_disable_unprepare(bank-\u003edbck);\n+\t\tclk_disable(bank-\u003edbck);\n \t\tbank-\u003edbck_enabled \u003d false;\n \t}\n }\n@@ -488,9 +490,6 @@ static int omap_gpio_irq_type(struct irq_data *d, unsigned type)\n \tunsigned long flags;\n \tunsigned offset \u003d d-\u003ehwirq;\n\n-\tif (!BANK_USED(bank))\n-\t\tpm_runtime_get_sync(bank-\u003edev);\n-\n \tif (type \u0026 ~IRQ_TYPE_SENSE_MASK)\n \t\treturn -EINVAL;\n\n@@ -500,10 +499,15 @@ static int omap_gpio_irq_type(struct irq_data *d, unsigned type)\n\n \traw_spin_lock_irqsave(\u0026bank-\u003elock, flags);\n \tretval \u003d omap_set_gpio_triggering(bank, offset, type);\n+\tif (retval) {\n+\t\traw_spin_unlock_irqrestore(\u0026bank-\u003elock, flags);\n+\t\tgoto error;\n+\t}\n \tomap_gpio_init_irq(bank, offset);\n \tif (!omap_gpio_is_input(bank, offset)) {\n \t\traw_spin_unlock_irqrestore(\u0026bank-\u003elock, flags);\n-\t\treturn -EINVAL;\n+\t\tretval \u003d -EINVAL;\n+\t\tgoto error;\n \t}\n \traw_spin_unlock_irqrestore(\u0026bank-\u003elock, flags);\n\n@@ -512,6 +516,9 @@ static int omap_gpio_irq_type(struct irq_data *d, unsigned type)\n \telse if (type \u0026 (IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))\n \t\t__irq_set_handler_locked(d-\u003eirq, handle_edge_irq);\n\n+\treturn 0;\n+\n+error:\n \treturn retval;\n }\n\n@@ -638,22 +645,18 @@ static int omap_set_gpio_wakeup(struct gpio_bank *bank, unsigned offset,\n \treturn 0;\n }\n\n-static void omap_reset_gpio(struct gpio_bank *bank, unsigned offset)\n-{\n-\tomap_set_gpio_direction(bank, offset, 1);\n-\tomap_set_gpio_irqenable(bank, offset, 0);\n-\tomap_clear_gpio_irqstatus(bank, offset);\n-\tomap_set_gpio_triggering(bank, offset, IRQ_TYPE_NONE);\n-\tomap_clear_gpio_debounce(bank, offset);\n-}\n-\n /* Use disable_irq_wake() and enable_irq_wake() functions from drivers */\n static int omap_gpio_wake_enable(struct irq_data *d, unsigned int enable)\n {\n \tstruct gpio_bank *bank \u003d omap_irq_data_get_bank(d);\n \tunsigned offset \u003d d-\u003ehwirq;\n+\tint ret;\n\n-\treturn omap_set_gpio_wakeup(bank, offset, enable);\n+\tret \u003d omap_set_gpio_wakeup(bank, offset, enable);\n+\tif (!ret)\n+\t\tret \u003d irq_set_irq_wake(bank-\u003eirq, enable);\n+\n+\treturn ret;\n }\n\n static int omap_gpio_request(struct gpio_chip *chip, unsigned offset)\n@@ -669,14 +672,7 @@ static int omap_gpio_request(struct gpio_chip *chip, unsigned offset)\n \t\tpm_runtime_get_sync(bank-\u003edev);\n\n \traw_spin_lock_irqsave(\u0026bank-\u003elock, flags);\n-\t/* Set trigger to none. You need to enable the desired trigger with\n-\t * request_irq() or set_irq_type(). Only do this if the IRQ line has\n-\t * not already been requested.\n-\t */\n-\tif (!LINE_USED(bank-\u003eirq_usage, offset)) {\n-\t\tomap_set_gpio_triggering(bank, offset, IRQ_TYPE_NONE);\n-\t\tomap_enable_gpio_module(bank, offset);\n-\t}\n+\tomap_enable_gpio_module(bank, offset);\n \tbank-\u003emod_usage |\u003d BIT(offset);\n \traw_spin_unlock_irqrestore(\u0026bank-\u003elock, flags);\n\n@@ -690,8 +686,11 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset)\n\n \traw_spin_lock_irqsave(\u0026bank-\u003elock, flags);\n \tbank-\u003emod_usage \u0026\u003d ~(BIT(offset));\n+\tif (!LINE_USED(bank-\u003eirq_usage, offset)) {\n+\t\tomap_set_gpio_direction(bank, offset, 1);\n+\t\tomap_clear_gpio_debounce(bank, offset);\n+\t}\n \tomap_disable_gpio_module(bank, offset);\n-\tomap_reset_gpio(bank, offset);\n \traw_spin_unlock_irqrestore(\u0026bank-\u003elock, flags);\n\n \t/*\n@@ -711,29 +710,27 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset)\n  * line\u0027s interrupt handler has been run, we may miss some nested\n  * interrupts.\n  */\n-static void omap_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)\n+static irqreturn_t omap_gpio_irq_handler(int irq, void *gpiobank)\n {\n \tvoid __iomem *isr_reg \u003d NULL;\n \tu32 isr;\n \tunsigned int bit;\n-\tstruct gpio_bank *bank;\n-\tint unmasked \u003d 0;\n-\tstruct irq_chip *irqchip \u003d irq_desc_get_chip(desc);\n-\tstruct gpio_chip *chip \u003d irq_get_handler_data(irq);\n+\tstruct gpio_bank *bank \u003d gpiobank;\n+\tunsigned long wa_lock_flags;\n+\tunsigned long lock_flags;\n\n-\tchained_irq_enter(irqchip, desc);\n-\n-\tbank \u003d container_of(chip, struct gpio_bank, chip);\n \tisr_reg \u003d bank-\u003ebase + bank-\u003eregs-\u003eirqstatus;\n-\tpm_runtime_get_sync(bank-\u003edev);\n-\n \tif (WARN_ON(!isr_reg))\n \t\tgoto exit;\n\n+\tpm_runtime_get_sync(bank-\u003edev);\n+\n \twhile (1) {\n \t\tu32 isr_saved, level_mask \u003d 0;\n \t\tu32 enabled;\n\n+\t\traw_spin_lock_irqsave(\u0026bank-\u003elock, lock_flags);\n+\n \t\tenabled \u003d omap_get_gpio_irqbank_mask(bank);\n \t\tisr_saved \u003d isr \u003d readl_relaxed(isr_reg) \u0026 enabled;\n\n@@ -747,12 +744,7 @@ static void omap_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)\n \t\tomap_clear_gpio_irqbank(bank, isr_saved \u0026 ~level_mask);\n \t\tomap_enable_gpio_irqbank(bank, isr_saved \u0026 ~level_mask);\n\n-\t\t/* if there is only edge sensitive GPIO pin interrupts\n-\t\tconfigured, we could unmask GPIO bank interrupt immediately */\n-\t\tif (!level_mask \u0026\u0026 !unmasked) {\n-\t\t\tunmasked \u003d 1;\n-\t\t\tchained_irq_exit(irqchip, desc);\n-\t\t}\n+\t\traw_spin_unlock_irqrestore(\u0026bank-\u003elock, lock_flags);\n\n \t\tif (!isr)\n \t\t\tbreak;\n@@ -761,6 +753,7 @@ static void omap_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)\n \t\t\tbit \u003d __ffs(isr);\n \t\t\tisr \u0026\u003d ~(BIT(bit));\n\n+\t\t\traw_spin_lock_irqsave(\u0026bank-\u003elock, lock_flags);\n \t\t\t/*\n \t\t\t * Some chips can\u0027t respond to both rising and falling\n \t\t\t * at the same time.  If this irq was requested with\n@@ -771,18 +764,20 @@ static void omap_gpio_irq_handler(unsigned int irq, struct irq_desc *desc)\n \t\t\tif (bank-\u003etoggle_mask \u0026 (BIT(bit)))\n \t\t\t\tomap_toggle_gpio_edge_triggering(bank, bit);\n\n+\t\t\traw_spin_unlock_irqrestore(\u0026bank-\u003elock, lock_flags);\n+\n+\t\t\traw_spin_lock_irqsave(\u0026bank-\u003ewa_lock, wa_lock_flags);\n+\n \t\t\tgeneric_handle_irq(irq_find_mapping(bank-\u003echip.irqdomain,\n \t\t\t\t\t\t\t    bit));\n+\n+\t\t\traw_spin_unlock_irqrestore(\u0026bank-\u003ewa_lock,\n+\t\t\t\t\t\t   wa_lock_flags);\n \t\t}\n \t}\n-\t/* if bank has any level sensitive GPIO pin interrupt\n-\tconfigured, we must unmask the bank interrupt only after\n-\thandler(s) are executed in order to avoid spurious bank\n-\tinterrupt */\n exit:\n-\tif (!unmasked)\n-\t\tchained_irq_exit(irqchip, desc);\n \tpm_runtime_put(bank-\u003edev);\n+\treturn IRQ_HANDLED;\n }\n\n static unsigned int omap_gpio_irq_startup(struct irq_data *d)\n@@ -791,15 +786,22 @@ static unsigned int omap_gpio_irq_startup(struct irq_data *d)\n \tunsigned long flags;\n \tunsigned offset \u003d d-\u003ehwirq;\n\n-\tif (!BANK_USED(bank))\n-\t\tpm_runtime_get_sync(bank-\u003edev);\n-\n \traw_spin_lock_irqsave(\u0026bank-\u003elock, flags);\n-\tomap_gpio_init_irq(bank, offset);\n+\n+\tif (!LINE_USED(bank-\u003emod_usage, offset))\n+\t\tomap_set_gpio_direction(bank, offset, 1);\n+\telse if (!omap_gpio_is_input(bank, offset))\n+\t\tgoto err;\n+\tomap_enable_gpio_module(bank, offset);\n+\tbank-\u003eirq_usage |\u003d BIT(offset);\n+\n \traw_spin_unlock_irqrestore(\u0026bank-\u003elock, flags);\n \tomap_gpio_unmask_irq(d);\n\n \treturn 0;\n+err:\n+\traw_spin_unlock_irqrestore(\u0026bank-\u003elock, flags);\n+\treturn -EINVAL;\n }\n\n static void omap_gpio_irq_shutdown(struct irq_data *d)\n@@ -810,9 +812,26 @@ static void omap_gpio_irq_shutdown(struct irq_data *d)\n\n \traw_spin_lock_irqsave(\u0026bank-\u003elock, flags);\n \tbank-\u003eirq_usage \u0026\u003d ~(BIT(offset));\n+\tomap_set_gpio_irqenable(bank, offset, 0);\n+\tomap_clear_gpio_irqstatus(bank, offset);\n+\tomap_set_gpio_triggering(bank, offset, IRQ_TYPE_NONE);\n+\tif (!LINE_USED(bank-\u003emod_usage, offset))\n+\t\tomap_clear_gpio_debounce(bank, offset);\n \tomap_disable_gpio_module(bank, offset);\n-\tomap_reset_gpio(bank, offset);\n \traw_spin_unlock_irqrestore(\u0026bank-\u003elock, flags);\n+}\n+\n+static void omap_gpio_irq_bus_lock(struct irq_data *data)\n+{\n+\tstruct gpio_bank *bank \u003d omap_irq_data_get_bank(data);\n+\n+\tif (!BANK_USED(bank))\n+\t\tpm_runtime_get_sync(bank-\u003edev);\n+}\n+\n+static void gpio_irq_bus_sync_unlock(struct irq_data *data)\n+{\n+\tstruct gpio_bank *bank \u003d omap_irq_data_get_bank(data);\n\n \t/*\n \t * If this is the last IRQ to be freed in the bank,\n@@ -1048,10 +1067,6 @@ static void omap_gpio_mod_init(struct gpio_bank *bank)\n \t /* Initialize interface clk ungated, module enabled */\n \tif (bank-\u003eregs-\u003ectrl)\n \t\twritel_relaxed(0, base + bank-\u003eregs-\u003ectrl);\n-\n-\tbank-\u003edbck \u003d clk_get(bank-\u003edev, \"dbclk\");\n-\tif (IS_ERR(bank-\u003edbck))\n-\t\tdev_err(bank-\u003edev, \"Could not get gpio dbck\\n\");\n }\n\n static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)\n@@ -1080,7 +1095,6 @@ static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)\n \t} else {\n \t\tbank-\u003echip.label \u003d \"gpio\";\n \t\tbank-\u003echip.base \u003d gpio;\n-\t\tgpio +\u003d bank-\u003ewidth;\n \t}\n \tbank-\u003echip.ngpio \u003d bank-\u003ewidth;\n\n@@ -1090,6 +1104,9 @@ static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)\n \t\treturn ret;\n \t}\n\n+\tif (!bank-\u003eis_mpuio)\n+\t\tgpio +\u003d bank-\u003ewidth;\n+\n #ifdef CONFIG_ARCH_OMAP1\n \t/*\n \t * REVISIT: Once we have OMAP1 supporting SPARSE_IRQ, we can drop\n@@ -1112,7 +1129,7 @@ static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)\n \t}\n\n \tret \u003d gpiochip_irqchip_add(\u0026bank-\u003echip, irqc,\n-\t\t\t\t   irq_base, omap_gpio_irq_handler,\n+\t\t\t\t   irq_base, handle_bad_irq,\n \t\t\t\t   IRQ_TYPE_NONE);\n\n \tif (ret) {\n@@ -1121,10 +1138,14 @@ static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)\n \t\treturn -ENODEV;\n \t}\n\n-\tgpiochip_set_chained_irqchip(\u0026bank-\u003echip, irqc,\n-\t\t\t\t     bank-\u003eirq, omap_gpio_irq_handler);\n+\tgpiochip_set_chained_irqchip(\u0026bank-\u003echip, irqc, bank-\u003eirq, NULL);\n\n-\treturn 0;\n+\tret \u003d devm_request_irq(bank-\u003edev, bank-\u003eirq, omap_gpio_irq_handler,\n+\t\t\t       0, dev_name(bank-\u003edev), bank);\n+\tif (ret)\n+\t\tgpiochip_remove(\u0026bank-\u003echip);\n+\n+\treturn ret;\n }\n\n static const struct of_device_id omap_gpio_match[];\n@@ -1163,17 +1184,23 @@ static int omap_gpio_probe(struct platform_device *pdev)\n \tirqc-\u003eirq_unmask \u003d omap_gpio_unmask_irq,\n \tirqc-\u003eirq_set_type \u003d omap_gpio_irq_type,\n \tirqc-\u003eirq_set_wake \u003d omap_gpio_wake_enable,\n+\tirqc-\u003eirq_bus_lock \u003d omap_gpio_irq_bus_lock,\n+\tirqc-\u003eirq_bus_sync_unlock \u003d gpio_irq_bus_sync_unlock,\n \tirqc-\u003ename \u003d dev_name(\u0026pdev-\u003edev);\n\n-\tres \u003d platform_get_resource(pdev, IORESOURCE_IRQ, 0);\n-\tif (unlikely(!res)) {\n-\t\tdev_err(dev, \"Invalid IRQ resource\\n\");\n-\t\treturn -ENODEV;\n+\tbank-\u003eirq \u003d platform_get_irq(pdev, 0);\n+\tif (bank-\u003eirq \u003c\u003d 0) {\n+\t\tif (!bank-\u003eirq)\n+\t\t\tbank-\u003eirq \u003d -ENXIO;\n+\t\tif (bank-\u003eirq !\u003d -EPROBE_DEFER)\n+\t\t\tdev_err(dev,\n+\t\t\t\t\"can\u0027t get irq resource ret\u003d%d\\n\", bank-\u003eirq);\n+\t\treturn bank-\u003eirq;\n \t}\n\n-\tbank-\u003eirq \u003d res-\u003estart;\n \tbank-\u003edev \u003d dev;\n \tbank-\u003echip.dev \u003d dev;\n+\tbank-\u003echip.owner \u003d THIS_MODULE;\n \tbank-\u003edbck_flag \u003d pdata-\u003edbck_flag;\n \tbank-\u003estride \u003d pdata-\u003ebank_stride;\n \tbank-\u003ewidth \u003d pdata-\u003ebank_width;\n@@ -1183,15 +1210,9 @@ static int omap_gpio_probe(struct platform_device *pdev)\n #ifdef CONFIG_OF_GPIO\n \tbank-\u003echip.of_node \u003d of_node_get(node);\n #endif\n-\tif (node) {\n-\t\tif (!of_property_read_bool(node, \"ti,gpio-always-on\"))\n-\t\t\tbank-\u003eloses_context \u003d true;\n-\t} else {\n-\t\tbank-\u003eloses_context \u003d pdata-\u003eloses_context;\n-\n-\t\tif (bank-\u003eloses_context)\n-\t\t\tbank-\u003eget_context_loss_count \u003d\n-\t\t\t\tpdata-\u003eget_context_loss_count;\n+\tif (!node) {\n+\t\tbank-\u003eget_context_loss_count \u003d\n+\t\t\tpdata-\u003eget_context_loss_count;\n \t}\n\n \tif (bank-\u003eregs-\u003eset_dataout \u0026\u0026 bank-\u003eregs-\u003eclr_dataout)\n@@ -1200,15 +1221,26 @@ static int omap_gpio_probe(struct platform_device *pdev)\n \t\tbank-\u003eset_dataout \u003d omap_set_gpio_dataout_mask;\n\n \traw_spin_lock_init(\u0026bank-\u003elock);\n+\traw_spin_lock_init(\u0026bank-\u003ewa_lock);\n\n \t/* Static mapping, never released */\n \tres \u003d platform_get_resource(pdev, IORESOURCE_MEM, 0);\n \tbank-\u003ebase \u003d devm_ioremap_resource(dev, res);\n \tif (IS_ERR(bank-\u003ebase)) {\n-\t\tirq_domain_remove(bank-\u003echip.irqdomain);\n \t\treturn PTR_ERR(bank-\u003ebase);\n \t}\n\n+\tif (bank-\u003edbck_flag) {\n+\t\tbank-\u003edbck \u003d devm_clk_get(bank-\u003edev, \"dbclk\");\n+\t\tif (IS_ERR(bank-\u003edbck)) {\n+\t\t\tdev_err(bank-\u003edev,\n+\t\t\t\t\"Could not get gpio dbck. Disable debounce\\n\");\n+\t\t\tbank-\u003edbck_flag \u003d false;\n+\t\t} else {\n+\t\t\tclk_prepare(bank-\u003edbck);\n+\t\t}\n+\t}\n+\n \tplatform_set_drvdata(pdev, bank);\n\n \tpm_runtime_enable(bank-\u003edev);\n@@ -1221,8 +1253,11 @@ static int omap_gpio_probe(struct platform_device *pdev)\n \tomap_gpio_mod_init(bank);\n\n \tret \u003d omap_gpio_chip_init(bank, irqc);\n-\tif (ret)\n+\tif (ret) {\n+\t\tpm_runtime_put_sync(bank-\u003edev);\n+\t\tpm_runtime_disable(bank-\u003edev);\n \t\treturn ret;\n+\t}\n\n \tomap_gpio_show_rev(bank);\n\n@@ -1233,6 +1268,19 @@ static int omap_gpio_probe(struct platform_device *pdev)\n \treturn 0;\n }\n\n+static int omap_gpio_remove(struct platform_device *pdev)\n+{\n+\tstruct gpio_bank *bank \u003d platform_get_drvdata(pdev);\n+\n+\tlist_del(\u0026bank-\u003enode);\n+\tgpiochip_remove(\u0026bank-\u003echip);\n+\tpm_runtime_disable(bank-\u003edev);\n+\tif (bank-\u003edbck_flag)\n+\t\tclk_unprepare(bank-\u003edbck);\n+\n+\treturn 0;\n+}\n+\n #ifdef CONFIG_ARCH_OMAP2PLUS\n\n #if defined(CONFIG_PM)\n@@ -1321,7 +1369,7 @@ static int omap_gpio_runtime_resume(struct device *dev)\n \t * been initialised and so initialise it now. Also initialise\n \t * the context loss count.\n \t */\n-\tif (bank-\u003eloses_context \u0026\u0026 !bank-\u003econtext_valid) {\n+\tif (!bank-\u003econtext_valid) {\n \t\tomap_gpio_init_context(bank);\n\n \t\tif (bank-\u003eget_context_loss_count)\n@@ -1342,17 +1390,15 @@ static int omap_gpio_runtime_resume(struct device *dev)\n \twritel_relaxed(bank-\u003econtext.risingdetect,\n \t\t     bank-\u003ebase + bank-\u003eregs-\u003erisingdetect);\n\n-\tif (bank-\u003eloses_context) {\n-\t\tif (!bank-\u003eget_context_loss_count) {\n+\tif (!bank-\u003eget_context_loss_count) {\n+\t\tomap_gpio_restore_context(bank);\n+\t} else {\n+\t\tc \u003d bank-\u003eget_context_loss_count(bank-\u003edev);\n+\t\tif (c !\u003d bank-\u003econtext_loss_count) {\n \t\t\tomap_gpio_restore_context(bank);\n \t\t} else {\n-\t\t\tc \u003d bank-\u003eget_context_loss_count(bank-\u003edev);\n-\t\t\tif (c !\u003d bank-\u003econtext_loss_count) {\n-\t\t\t\tomap_gpio_restore_context(bank);\n-\t\t\t} else {\n-\t\t\t\traw_spin_unlock_irqrestore(\u0026bank-\u003elock, flags);\n-\t\t\t\treturn 0;\n-\t\t\t}\n+\t\t\traw_spin_unlock_irqrestore(\u0026bank-\u003elock, flags);\n+\t\t\treturn 0;\n \t\t}\n \t}\n\n@@ -1418,12 +1464,13 @@ static int omap_gpio_runtime_resume(struct device *dev)\n }\n #endif /* CONFIG_PM */\n\n+#if IS_BUILTIN(CONFIG_GPIO_OMAP)\n void omap2_gpio_prepare_for_idle(int pwr_mode)\n {\n \tstruct gpio_bank *bank;\n\n \tlist_for_each_entry(bank, \u0026omap_gpio_list, node) {\n-\t\tif (!BANK_USED(bank) || !bank-\u003eloses_context)\n+\t\tif (!BANK_USED(bank))\n \t\t\tcontinue;\n\n \t\tbank-\u003epower_mode \u003d pwr_mode;\n@@ -1437,12 +1484,13 @@ void omap2_gpio_resume_after_idle(void)\n \tstruct gpio_bank *bank;\n\n \tlist_for_each_entry(bank, \u0026omap_gpio_list, node) {\n-\t\tif (!BANK_USED(bank) || !bank-\u003eloses_context)\n+\t\tif (!BANK_USED(bank))\n \t\t\tcontinue;\n\n \t\tpm_runtime_get_sync(bank-\u003edev);\n \t}\n }\n+#endif\n\n #if defined(CONFIG_PM)\n static void omap_gpio_init_context(struct gpio_bank *p)\n@@ -1598,6 +1646,7 @@ MODULE_DEVICE_TABLE(of, omap_gpio_match);\n\n static struct platform_driver omap_gpio_driver \u003d {\n \t.probe\t\t\u003d omap_gpio_probe,\n+\t.remove\t\t\u003d omap_gpio_remove,\n \t.driver\t\t\u003d {\n \t\t.name\t\u003d \"omap_gpio\",\n \t\t.pm\t\u003d \u0026gpio_pm_ops,\n@@ -1615,3 +1664,13 @@ static int __init omap_gpio_drv_reg(void)\n \treturn platform_driver_register(\u0026omap_gpio_driver);\n }\n postcore_initcall(omap_gpio_drv_reg);\n+\n+static void __exit omap_gpio_exit(void)\n+{\n+\tplatform_driver_unregister(\u0026omap_gpio_driver);\n+}\n+module_exit(omap_gpio_exit);\n+\n+MODULE_DESCRIPTION(\"omap gpio driver\");\n+MODULE_ALIAS(\"platform:gpio-omap\");\n+MODULE_LICENSE(\"GPL v2\");\ndiff --git a/include/linux/platform_data/gpio-omap.h b/include/linux/platform_data/gpio-omap.h\nindex 5d50b25a73d7..ff43e01b8ca9 100644\n--- a/include/linux/platform_data/gpio-omap.h\n+++ b/include/linux/platform_data/gpio-omap.h\n@@ -198,7 +198,6 @@ struct omap_gpio_platform_data {\n \tint bank_width;\t\t/* GPIO bank width */\n \tint bank_stride;\t/* Only needed for omap1 MPUIO */\n \tbool dbck_flag;\t\t/* dbck required or not - True for OMAP3\u00264 */\n-\tbool loses_context;\t/* whether the bank would ever lose context */\n \tbool is_mpuio;\t\t/* whether the bank is of type MPUIO */\n \tu32 non_wakeup_gpios;\n\n@@ -208,9 +207,17 @@ struct omap_gpio_platform_data {\n \tint (*get_context_loss_count)(struct device *dev);\n };\n\n+#if IS_BUILTIN(CONFIG_GPIO_OMAP)\n extern void omap2_gpio_prepare_for_idle(int off_mode);\n extern void omap2_gpio_resume_after_idle(void);\n-extern void omap_set_gpio_debounce(int gpio, int enable);\n-extern void omap_set_gpio_debounce_time(int gpio, int enable);\n+#else\n+static inline void omap2_gpio_prepare_for_idle(int off_mode)\n+{\n+}\n+\n+static inline void omap2_gpio_resume_after_idle(void)\n+{\n+}\n+#endif\n\n #endif\ndiff --git a/kernel/locking/rtmutex.c b/kernel/locking/rtmutex.c\nindex 20267595df07..e0b0d9b419b5 100644\n--- a/kernel/locking/rtmutex.c\n+++ b/kernel/locking/rtmutex.c\n@@ -1008,7 +1008,7 @@ static void  noinline __sched rt_spin_lock_slowlock(struct rt_mutex *lock)\n \t__set_current_state_no_track(TASK_UNINTERRUPTIBLE);\n \tpi_unlock(\u0026self-\u003epi_lock);\n\n-\tret \u003d task_blocks_on_rt_mutex(lock, \u0026waiter, self, 0);\n+\tret \u003d task_blocks_on_rt_mutex(lock, \u0026waiter, self, RT_MUTEX_MIN_CHAINWALK);\n \tBUG_ON(ret);\n\n \tfor (;;) {\ndiff --git a/localversion-rt b/localversion-rt\nindex 1199ebade17b..1e584b47c987 100644\n--- a/localversion-rt\n+++ b/localversion-rt\n@@ -1 +1 @@\n--rt16\n+-rt17\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "16abccd3189b44fa3a2de507d3fe03e14f9b5e43",
      "tree": "4d43fd66aabff5ee5b87c306a4b8e41395375f2d",
      "parents": [
        "371db5665725de79cf8552f2d5b7a3061d1af876"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Dec 22 11:53:17 2015 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Tue Dec 22 11:53:17 2015 +0100"
      },
      "message": "[ANNOUNCE] 4.1.15-rt16\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.1.15-rt16 patch set.\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "371db5665725de79cf8552f2d5b7a3061d1af876",
      "tree": "8b6f2db99edcf173550e0329ec8868f6713faa9f",
      "parents": [
        "3f1c9e7b4ba7cefa263a3af0156881f53f60ef09"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Nov 18 16:46:40 2015 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Nov 18 16:46:40 2015 +0100"
      },
      "message": "[ANNOUNCE] 4.1.13-rt15\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.1.13-rt15 patch set.\nChanges since v4.1.13-rt14:\n\nSebastian Andrzej Siewior (1):\n      v4.1.13-rt15\n\nThomas Gleixner (1):\n      irqwork: Move irq safe work to irq context\n\nKnown issues:\n  - bcache stays disabled\n\n  - CPU hotplug is not better than before\n\n  - The netlink_release() OOPS, reported by Clark, is still on the\n    list, but unsolved due to lack of information\n\nThe delta patch against 4.1.13-rt15 is appended below and can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/incr/patch-4.1.13-rt14-rt15.patch.xz\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.1.13-rt15\n\nThe RT patch against 4.1.13 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/patch-4.1.13-rt15.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/patches-4.1.13-rt15.tar.xz\n\nSebastian\n\ndiff --git a/include/linux/irq_work.h b/include/linux/irq_work.h\n--- a/include/linux/irq_work.h\n+++ b/include/linux/irq_work.h\n@@ -52,4 +52,10 @@ static inline bool irq_work_needs_cpu(void) { return false; }\n static inline void irq_work_run(void) { }\n #endif\n\n+#if defined(CONFIG_IRQ_WORK) \u0026\u0026 defined(CONFIG_PREEMPT_RT_FULL)\n+void irq_work_tick_soft(void);\n+#else\n+static inline void irq_work_tick_soft(void) { }\n+#endif\n+\n #endif /* _LINUX_IRQ_WORK_H */\ndiff --git a/kernel/irq_work.c b/kernel/irq_work.c\n--- a/kernel/irq_work.c\n+++ b/kernel/irq_work.c\n@@ -200,8 +200,17 @@ void irq_work_tick(void)\n\n \tif (!llist_empty(raised) \u0026\u0026 !arch_irq_work_has_interrupt())\n \t\tirq_work_run_list(raised);\n+\n+\tif (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL))\n+\t\tirq_work_run_list(this_cpu_ptr(\u0026lazy_list));\n+}\n+\n+#if defined(CONFIG_IRQ_WORK) \u0026\u0026 defined(CONFIG_PREEMPT_RT_FULL)\n+void irq_work_tick_soft(void)\n+{\n \tirq_work_run_list(this_cpu_ptr(\u0026lazy_list));\n }\n+#endif\n\n /*\n  * Synchronize against the irq_work @entry, ensures the entry is not\ndiff --git a/kernel/time/timer.c b/kernel/time/timer.c\n--- a/kernel/time/timer.c\n+++ b/kernel/time/timer.c\n@@ -1455,7 +1455,7 @@ void update_process_times(int user_tick)\n \tscheduler_tick();\n \trun_local_timers();\n \trcu_check_callbacks(user_tick);\n-#if defined(CONFIG_IRQ_WORK) \u0026\u0026 !defined(CONFIG_PREEMPT_RT_FULL)\n+#if defined(CONFIG_IRQ_WORK)\n \tif (in_irq())\n \t\tirq_work_tick();\n #endif\n@@ -1471,9 +1471,7 @@ static void run_timer_softirq(struct softirq_action *h)\n\n \thrtimer_run_pending();\n\n-#if defined(CONFIG_IRQ_WORK) \u0026\u0026 defined(CONFIG_PREEMPT_RT_FULL)\n-\tirq_work_tick();\n-#endif\n+\tirq_work_tick_soft();\n\n \tif (time_after_eq(jiffies, base-\u003etimer_jiffies))\n \t\t__run_timers(base);\ndiff --git a/localversion-rt b/localversion-rt\n--- a/localversion-rt\n+++ b/localversion-rt\n@@ -1 +1 @@\n--rt14\n+-rt15\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    },
    {
      "commit": "3f1c9e7b4ba7cefa263a3af0156881f53f60ef09",
      "tree": "199e07093f51f7d53dfb45cf0e63e1b7c23e78f7",
      "parents": [
        "213397b608b539ee53fd3a8baddb5120e04054d5"
      ],
      "author": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Nov 18 16:22:39 2015 +0100"
      },
      "committer": {
        "name": "Sebastian Andrzej Siewior",
        "email": "bigeasy@linutronix.de",
        "time": "Wed Nov 18 16:22:39 2015 +0100"
      },
      "message": "[ANNOUNCE] 4.1.13-rt14\n\nDear RT folks!\n\nI\u0027m pleased to announce the v4.1.13-rt14 patch set.\nChanges since v4.1.12-rt13:\n\nnone.\n\nKnown issues:\n\nYou can get this release via the git tree at:\n\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-4.1.y-rt\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-4.1.y-rt-rebase\n    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git linux-4.1.y-rt-queue\n\nThe RT patch against 4.1.3 can be found here:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/patch-4.1.13-rt14.patch.xz\n\nThe split quilt queue is available at:\n\n    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.1/patches-4.1.13-rt14.tar.xz\n\nSebastian\n\nSigned-off-by: Sebastian Andrzej Siewior \u003cbigeasy@linutronix.de\u003e\n"
    }
  ],
  "next": "213397b608b539ee53fd3a8baddb5120e04054d5"
}
