)]}'
{
  "log": [
    {
      "commit": "cd34de10471a5ddad397739fae33555d47e53769",
      "tree": "99e2e27194d72d5767093568a956751b835fdf43",
      "parents": [
        "cf85cc93b24891b7e57b1d9939742b5774570b19"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 10 13:16:29 2014 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 13 11:51:21 2014 -0800"
      },
      "message": "3.4.y: timekeeping: fix 32-bit overflow in get_monotonic_boottime\n\nfixed upstream in v3.6 by ec145babe754f9ea1079034a108104b6001e001c\n\nget_monotonic_boottime adds three nanonsecond values stored\nin longs, followed by an s64.  If the long values are all\nclose to 1e9 the first three additions can overflow and\nbecome negative when added to the s64.  Cast the first\nvalue to s64 so that all additions are 64 bit.\n\nSigned-off-by: Colin Cross \u003cccross@android.com\u003e\n[jstultz: Fished this out of the AOSP commong.git tree. This was\nfixed upstream in v3.6 by ec145babe754f9ea1079034a108104b6001e001c]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "cf85cc93b24891b7e57b1d9939742b5774570b19",
      "tree": "2a4719b1695dc561a13ea93b3083a60bca871e7b",
      "parents": [
        "ab99a94d45f5db1ed178ed986f93b938bc018a87"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Dec 10 17:18:18 2013 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Feb 13 11:51:20 2014 -0800"
      },
      "message": "timekeeping: Avoid possible deadlock from clock_was_set_delayed\n\ncommit 6fdda9a9c5db367130cf32df5d6618d08b89f46a upstream.\n\nAs part of normal operaions, the hrtimer subsystem frequently calls\ninto the timekeeping code, creating a locking order of\n  hrtimer locks -\u003e timekeeping locks\n\nclock_was_set_delayed() was suppoed to allow us to avoid deadlocks\nbetween the timekeeping the hrtimer subsystem, so that we could\nnotify the hrtimer subsytem the time had changed while holding\nthe timekeeping locks. This was done by scheduling delayed work\nthat would run later once we were out of the timekeeing code.\n\nBut unfortunately the lock chains are complex enoguh that in\nscheduling delayed work, we end up eventually trying to grab\nan hrtimer lock.\n\nSasha Levin noticed this in testing when the new seqlock lockdep\nenablement triggered the following (somewhat abrieviated) message:\n\n[  251.100221] \u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n[  251.100221] [ INFO: possible circular locking dependency detected ]\n[  251.100221] 3.13.0-rc2-next-20131206-sasha-00005-g8be2375-dirty #4053 Not tainted\n[  251.101967] -------------------------------------------------------\n[  251.101967] kworker/10:1/4506 is trying to acquire lock:\n[  251.101967]  (timekeeper_seq){----..}, at: [\u003cffffffff81160e96\u003e] retrigger_next_event+0x56/0x70\n[  251.101967]\n[  251.101967] but task is already holding lock:\n[  251.101967]  (hrtimer_bases.lock#11){-.-...}, at: [\u003cffffffff81160e7c\u003e] retrigger_next_event+0x3c/0x70\n[  251.101967]\n[  251.101967] which lock already depends on the new lock.\n[  251.101967]\n[  251.101967]\n[  251.101967] the existing dependency chain (in reverse order) is:\n[  251.101967]\n-\u003e #5 (hrtimer_bases.lock#11){-.-...}:\n[snipped]\n-\u003e #4 (\u0026rt_b-\u003ert_runtime_lock){-.-...}:\n[snipped]\n-\u003e #3 (\u0026rq-\u003elock){-.-.-.}:\n[snipped]\n-\u003e #2 (\u0026p-\u003epi_lock){-.-.-.}:\n[snipped]\n-\u003e #1 (\u0026(\u0026pool-\u003elock)-\u003erlock){-.-...}:\n[  251.101967]        [\u003cffffffff81194803\u003e] validate_chain+0x6c3/0x7b0\n[  251.101967]        [\u003cffffffff81194d9d\u003e] __lock_acquire+0x4ad/0x580\n[  251.101967]        [\u003cffffffff81194ff2\u003e] lock_acquire+0x182/0x1d0\n[  251.101967]        [\u003cffffffff84398500\u003e] _raw_spin_lock+0x40/0x80\n[  251.101967]        [\u003cffffffff81153e69\u003e] __queue_work+0x1a9/0x3f0\n[  251.101967]        [\u003cffffffff81154168\u003e] queue_work_on+0x98/0x120\n[  251.101967]        [\u003cffffffff81161351\u003e] clock_was_set_delayed+0x21/0x30\n[  251.101967]        [\u003cffffffff811c4bd1\u003e] do_adjtimex+0x111/0x160\n[  251.101967]        [\u003cffffffff811e2711\u003e] compat_sys_adjtimex+0x41/0x70\n[  251.101967]        [\u003cffffffff843a4b49\u003e] ia32_sysret+0x0/0x5\n[  251.101967]\n-\u003e #0 (timekeeper_seq){----..}:\n[snipped]\n[  251.101967] other info that might help us debug this:\n[  251.101967]\n[  251.101967] Chain exists of:\n  timekeeper_seq --\u003e \u0026rt_b-\u003ert_runtime_lock --\u003e hrtimer_bases.lock#11\n\n[  251.101967]  Possible unsafe locking scenario:\n[  251.101967]\n[  251.101967]        CPU0                    CPU1\n[  251.101967]        ----                    ----\n[  251.101967]   lock(hrtimer_bases.lock#11);\n[  251.101967]                                lock(\u0026rt_b-\u003ert_runtime_lock);\n[  251.101967]                                lock(hrtimer_bases.lock#11);\n[  251.101967]   lock(timekeeper_seq);\n[  251.101967]\n[  251.101967]  *** DEADLOCK ***\n[  251.101967]\n[  251.101967] 3 locks held by kworker/10:1/4506:\n[  251.101967]  #0:  (events){.+.+.+}, at: [\u003cffffffff81154960\u003e] process_one_work+0x200/0x530\n[  251.101967]  #1:  (hrtimer_work){+.+...}, at: [\u003cffffffff81154960\u003e] process_one_work+0x200/0x530\n[  251.101967]  #2:  (hrtimer_bases.lock#11){-.-...}, at: [\u003cffffffff81160e7c\u003e] retrigger_next_event+0x3c/0x70\n[  251.101967]\n[  251.101967] stack backtrace:\n[  251.101967] CPU: 10 PID: 4506 Comm: kworker/10:1 Not tainted 3.13.0-rc2-next-20131206-sasha-00005-g8be2375-dirty #4053\n[  251.101967] Workqueue: events clock_was_set_work\n\nSo the best solution is to avoid calling clock_was_set_delayed() while\nholding the timekeeping lock, and instead using a flag variable to\ndecide if we should call clock_was_set() once we\u0027ve released the locks.\n\nThis works for the case here, where the do_adjtimex() was the deadlock\ntrigger point. Unfortuantely, in update_wall_time() we still hold\nthe jiffies lock, which would deadlock with the ipi triggered by\nclock_was_set(), preventing us from calling it even after we drop the\ntimekeeping lock. So instead call clock_was_set_delayed() at that point.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Sasha Levin \u003csasha.levin@oracle.com\u003e\nReported-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nTested-by: Sasha Levin \u003csasha.levin@oracle.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n\n"
    },
    {
      "commit": "3e05092412210f3a298ef2a4e5f58857513e9954",
      "tree": "d9bb8d5c47986907e7ac939ef90cad5a32708c2b",
      "parents": [
        "664eaaa26bca6272673eff01ba5468f95905039d"
      ],
      "author": {
        "name": "KOSAKI Motohiro",
        "email": "kosaki.motohiro@jp.fujitsu.com",
        "time": "Mon Oct 14 17:33:16 2013 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Dec 04 10:50:14 2013 -0800"
      },
      "message": "alarmtimer: return EINVAL instead of ENOTSUPP if rtcdev doesn\u0027t exist\n\ncommit 98d6f4dd84a134d942827584a3c5f67ffd8ec35f upstream.\n\nFedora Ruby maintainer reported latest Ruby doesn\u0027t work on Fedora Rawhide\non ARM. (http://bugs.ruby-lang.org/issues/9008)\n\nBecause of, commit 1c6b39ad3f (alarmtimers: Return -ENOTSUPP if no\nRTC device is present) intruduced to return ENOTSUPP when\nclock_get{time,res} can\u0027t find a RTC device. However this is incorrect.\n\nFirst, ENOTSUPP isn\u0027t exported to userland (ENOTSUP or EOPNOTSUP are the\nclosest userland equivlents).\n\nSecond, Posix and Linux man pages agree that clock_gettime and\nclock_getres should return EINVAL if clk_id argument is invalid.\nWhile the arugment that the clockid is valid, but just not supported\non this hardware could be made, this is just a technicality that\ndoesn\u0027t help userspace applicaitons, and only complicates error\nhandling.\n\nThus, this patch changes the code to use EINVAL.\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReported-by: Vit Ondruch \u003cv.ondruch@tiscali.cz\u003e\nSigned-off-by: KOSAKI Motohiro \u003ckosaki.motohiro@jp.fujitsu.com\u003e\n[jstultz: Tweaks to commit message to include full rational]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "f81d0a99446a0c4548d5783807529d075b06c64e",
      "tree": "b0697e8167ee4daf0d8b66f38270670498998f20",
      "parents": [
        "268417aeea96a1941c2cd14f0f8b5b39c374ad25"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 24 21:50:23 2013 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Wed Nov 13 12:01:48 2013 +0900"
      },
      "message": "clockevents: Sanitize ticks to nsec conversion\n\ncommit 97b9410643475d6557d2517c2aff9fd2221141a9 upstream.\n\nMarc Kleine-Budde pointed out, that commit 77cc982 \"clocksource: use\nclockevents_config_and_register() where possible\" caused a regression\nfor some of the converted subarchs.\n\nThe reason is, that the clockevents core code converts the minimal\nhardware tick delta to a nanosecond value for core internal\nusage. This conversion is affected by integer math rounding loss, so\nthe backwards conversion to hardware ticks will likely result in a\nvalue which is less than the configured hardware limitation. The\naffected subarchs used their own workaround (SIGH!) which got lost in\nthe conversion.\n\nThe solution for the issue at hand is simple: adding evt-\u003emult - 1 to\nthe shifted value before the integer divison in the core conversion\nfunction takes care of it. But this only works for the case where for\nthe scaled math mult/shift pair \"mult \u003c\u003d 1 \u003c\u003c shift\" is true. For the\ncase where \"mult \u003e 1 \u003c\u003c shift\" we can apply the rounding add only for\nthe minimum delta value to make sure that the backward conversion is\nnot less than the given hardware limit. For the upper bound we need to\nomit the rounding add, because the backwards conversion is always\nlarger than the original latch value. That would violate the upper\nbound of the hardware device.\n\nThough looking closer at the details of that function reveals another\nbogosity: The upper bounds check is broken as well. Checking for a\nresulting \"clc\" value greater than KTIME_MAX after the conversion is\npointless. The conversion does:\n\n      u64 clc \u003d (latch \u003c\u003c evt-\u003eshift) / evt-\u003emult;\n\nSo there is no sanity check for (latch \u003c\u003c evt-\u003eshift) exceeding the\n64bit boundary. The latch argument is \"unsigned long\", so on a 64bit\narch the handed in argument could easily lead to an unnoticed shift\noverflow. With the above rounding fix applied the calculation before\nthe divison is:\n\n       u64 clc \u003d (latch \u003c\u003c evt-\u003eshift) + evt-\u003emult - 1;\n\nSo we need to make sure, that neither the shift nor the rounding add\nis overflowing the u64 boundary.\n\n[ukl: move assignment to rnd after eventually changing mult, fix build\n issue and correct comment with the right math]\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Russell King - ARM Linux \u003clinux@arm.linux.org.uk\u003e\nCc: Marc Kleine-Budde \u003cmkl@pengutronix.de\u003e\nCc: nicolas.ferre@atmel.com\nCc: Marc Pignat \u003cmarc.pignat@hevs.ch\u003e\nCc: john.stultz@linaro.org\nCc: kernel@pengutronix.de\nCc: Ronald Wahl \u003cronald.wahl@raritan.com\u003e\nCc: LAK \u003clinux-arm-kernel@lists.infradead.org\u003e\nCc: Ludovic Desroches \u003cludovic.desroches@atmel.com\u003e\nLink: http://lkml.kernel.org/r/1380052223-24139-1-git-send-email-u.kleine-koenig@pengutronix.de\nSigned-off-by: Uwe Kleine-König \u003cu.kleine-koenig@pengutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "60a0c1a6129d06f1f6bc71acd50c8d289484c7ea",
      "tree": "ce74c210c62dc509861027b92c1923e44c504f50",
      "parents": [
        "8899476bd4758c47c2e4e4b92bb64fb9177b0c28"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Jul 01 22:14:10 2013 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 28 16:25:44 2013 -0700"
      },
      "message": "tick: Prevent uncontrolled switch to oneshot mode\n\ncommit 1f73a9806bdd07a5106409bbcab3884078bd34fe upstream.\n\nWhen the system switches from periodic to oneshot mode, the broadcast\nlogic causes a possibility that a CPU which has not yet switched to\noneshot mode puts its own clock event device into oneshot mode without\nupdating the state and the timer handler.\n\nCPU0\t\t\t\tCPU1\n\t\t\t\tper cpu tickdev is in periodic mode\n\t\t\t\tand switched to broadcast\n\nSwitch to oneshot mode\n tick_broadcast_switch_to_oneshot()\n  cpumask_copy(tick_oneshot_broacast_mask,\n\t       tick_broadcast_mask);\n\n  broadcast device mode \u003d oneshot\n\n\t\t\t\tTimer interrupt\n\n\t\t\t\tirq_enter()\n\t\t\t\t tick_check_oneshot_broadcast()\n\t\t\t\t  dev-\u003eset_mode(ONESHOT);\n\n\t\t\t\ttick_handle_periodic()\n\t\t\t\t if (dev-\u003emode \u003d\u003d ONESHOT)\n\t\t\t\t   dev-\u003enext_event +\u003d period;\n\t\t\t\t   FAIL.\n\nWe fail, because dev-\u003enext_event contains KTIME_MAX, if the device was\nin periodic mode before the uncontrolled switch to oneshot happened.\n\nWe must copy the broadcast bits over to the oneshot mask, because\notherwise a CPU which relies on the broadcast would not been woken up\nanymore after the broadcast device switched to oneshot mode.\n\nSo we need to verify in tick_check_oneshot_broadcast() whether the CPU\nhas already switched to oneshot mode. If not, leave the device\nuntouched and let the CPU switch controlled into oneshot mode.\n\nThis is a long standing bug, which was never noticed, because the main\nuser of the broadcast x86 cannot run into that scenario, AFAICT. The\nnonarchitected timer mess of ARM creates a gazillion of differently\nbroken abominations which trigger the shortcomings of that broadcast\ncode, which better had never been necessary in the first place.\n\nReported-and-tested-by: Stehle Vincent-B46079 \u003cB46079@freescale.com\u003e\nReviewed-by: Stephen Boyd \u003csboyd@codeaurora.org\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e,\nCc: Mark Rutland \u003cmark.rutland@arm.com\u003e\nLink: http://lkml.kernel.org/r/alpine.DEB.2.02.1307012153060.4013@ionos.tec.linutronix.de\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "6d96e9394365dfddf5d418d8178ce2a503448c29",
      "tree": "356dfe3055d85c2198b9351f5c8d3d410000a3ed",
      "parents": [
        "36c982c1c71b5bb35d06d46ffb82593bf8dbe8c7"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 11 14:04:48 2013 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sat Jul 13 11:03:41 2013 -0700"
      },
      "message": "Revert \"sched: Add missing call to calc_load_exit_idle()\"\n\nThis reverts commit 48f0f14ffb6ff4852922994d11fbda418d40100e which was\ncommit 749c8814f08f12baa4a9c2812a7c6ede7d69507d upstream.\n\nIt seems to be misapplied, and not needed for 3.4-stable\n\nReported-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\nCc: Charles Wang \u003cmuming.wq@taobao.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "33b7cfcb34b4ae37cde7a8a1c97c9be27677e931",
      "tree": "79d2091b2bcdfe3fda377633dc0322d0ce903781",
      "parents": [
        "ed032fd4d81041e4002fc55ff1832ee588f103da"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri May 03 15:02:50 2013 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun May 19 10:54:40 2013 -0700"
      },
      "message": "tick: Cleanup NOHZ per cpu data on cpu down\n\ncommit 4b0c0f294f60abcdd20994a8341a95c8ac5eeb96 upstream.\n\nPrarit reported a crash on CPU offline/online. The reason is that on\nCPU down the NOHZ related per cpu data of the dead cpu is not cleaned\nup. If at cpu online an interrupt happens before the per cpu tick\ndevice is registered the irq_enter() check potentially sees stale data\nand dereferences a NULL pointer.\n\nCleanup the data after the cpu is dead.\n\nReported-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Mike Galbraith \u003cbitbucket@online.de\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1305031451561.2886@ionos\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "357093a8b82c10e6fff37d3c772ccc0e3b0549c4",
      "tree": "7dd7440413bebabe4173b2e34574582b28b07e32",
      "parents": [
        "97630ecdbda8138baf35a66b6e59dee940da05e1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 25 11:45:53 2013 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue May 07 19:51:56 2013 -0700"
      },
      "message": "clockevents: Set dummy handler on CPU_DEAD shutdown\n\ncommit 6f7a05d7018de222e40ca003721037a530979974 upstream.\n\nVitaliy reported that a per cpu HPET timer interrupt crashes the\nsystem during hibernation. What happens is that the per cpu HPET timer\ngets shut down when the nonboot cpus are stopped. When the nonboot\ncpus are onlined again the HPET code sets up the MSI interrupt which\nfires before the clock event device is registered. The event handler\nis still set to hrtimer_interrupt, which then crashes the machine due\nto highres mode not being active.\n\nSee http://bugs.debian.org/cgi-bin/bugreport.cgi?bug\u003d700333\n\nThere is no real good way to avoid that in the HPET code. The HPET\ncode alrady has a mechanism to detect spurious interrupts when event\nhandler \u003d\u003d NULL for a similar reason.\n\nWe can handle that in the clockevent/tick layer and replace the\nprevious functional handler with a dummy handler like we do in\ntick_setup_new_device().\n\nThe original clockevents code did this in clockevents_exchange_device(),\nbut that got removed by commit 7c1e76897 (clockevents: prevent\nclockevent event_handler ending up handler_noop) which forgot to fix\nit up in tick_shutdown(). Same issue with the broadcast device.\n\nReported-by: Vitaliy Fillipov \u003cvitalif@yourcmc.ru\u003e\nCc: Ben Hutchings \u003cben@decadent.org.uk\u003e\nCc: 700333@bugs.debian.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "5899ef0b272b58f2927eb3376afaad2b02559180",
      "tree": "e74731ea62cd7ba183152d23eef8e39a536f207e",
      "parents": [
        "cbff2b6d371dbbae19de1dcfd09051683eca02ca"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Wed Feb 20 16:15:36 2013 +0100"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Mar 28 12:12:27 2013 -0700"
      },
      "message": "nohz: Make tick_nohz_irq_exit() irq safe\n\ncommit e5ab012c3271990e8457055c25cafddc1ae8aa6b upstream.\n\nAs it stands, irq_exit() may or may not be called with\nirqs disabled, depending on __ARCH_IRQ_EXIT_IRQS_DISABLED\nthat the arch can define.\n\nIt makes tick_nohz_irq_exit() unsafe. For example two\ninterrupts can race in tick_nohz_stop_sched_tick(): the inner\nmost one computes the expiring time on top of the timer list,\nthen it\u0027s interrupted right before reprogramming the\nclock. The new interrupt enqueues a new timer list timer,\nit reprogram the clock to take it into account and it exits.\nThe CPUs resumes the inner most interrupt and performs the clock\nreprogramming without considering the new timer list timer.\n\nThis regression has been introduced by:\n     280f06774afedf849f0b34248ed6aff57d0f6908\n     (\"nohz: Separate out irq exit and idle loop dyntick logic\")\n\nLet\u0027s fix it right now with the appropriate protections.\n\nA saner long term solution will be to remove\n__ARCH_IRQ_EXIT_IRQS_DISABLED and mandate that irq_exit() is called\nwith interrupts disabled.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Linus Torvalds \u003ctorvalds@linuxfoundation.org\u003e\nLink: http://lkml.kernel.org/r/1361373336-11337-1-git-send-email-fweisbec@gmail.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Lingzhu Xiang \u003clxiang@redhat.com\u003e\nReviewed-by: CAI Qian \u003ccaiqian@redhat.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "8d96fcec68c30196fca01a75a911835c7b89a50d",
      "tree": "1a5524de1f2dda9b4426e941f7955eb854d8bc22",
      "parents": [
        "3d2e7424b3e18dc851a4b0efdc6676c09573f55f"
      ],
      "author": {
        "name": "Mark Rutland",
        "email": "mark.rutland@arm.com",
        "time": "Thu Mar 07 15:09:24 2013 +0000"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Mar 28 12:12:26 2013 -0700"
      },
      "message": "clockevents: Don\u0027t allow dummy broadcast timers\n\ncommit a7dc19b8652c862d5b7c4d2339bd3c428bd29c4a upstream.\n\nCurrently tick_check_broadcast_device doesn\u0027t reject clock_event_devices\nwith CLOCK_EVT_FEAT_DUMMY, and may select them in preference to real\nhardware if they have a higher rating value. In this situation, the\ndummy timer is responsible for broadcasting to itself, and the core\nclockevents code may attempt to call non-existent callbacks for\nprogramming the dummy, eventually leading to a panic.\n\nThis patch makes tick_check_broadcast_device always reject dummy timers,\npreventing this problem.\n\nSigned-off-by: Mark Rutland \u003cmark.rutland@arm.com\u003e\nCc: linux-arm-kernel@lists.infradead.org\nCc: Jon Medhurst (Tixy) \u003ctixy@linaro.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "1103ef8e70a1725b7fd9e0cb18a8b1edb6e5c42d",
      "tree": "b8380d301e5608d6151d24adb89948b1e972c6e5",
      "parents": [
        "e84ad739d8a2143e5cd284a4c0462278587e4aa3"
      ],
      "author": {
        "name": "Dan Carpenter",
        "email": "dan.carpenter@oracle.com",
        "time": "Tue Oct 09 10:18:23 2012 +0300"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Mon Dec 03 11:47:23 2012 -0800"
      },
      "message": "timekeeping: Cast raw_interval to u64 to avoid shift overflow\n\ncommit 5b3900cd409466c0070b234d941650685ad0c791 upstream.\n\nWe fixed a bunch of integer overflows in timekeeping code during the 3.6\ncycle.  I did an audit based on that and found this potential overflow.\n\nSigned-off-by: Dan Carpenter \u003cdan.carpenter@oracle.com\u003e\nAcked-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20121009071823.GA19159@elgon.mountain\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Ben Hutchings \u003cben@decadent.org.uk\u003e\n[ herton: adapt for 3.5, timekeeper instead of tk pointer ]\nSigned-off-by: Herton Ronaldo Krzesinski \u003cherton.krzesinski@canonical.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "9a227fcb842a03fce5b8a6da0da40f5601ec6908",
      "tree": "d186f0f90e021d9fc9a35ab009cdcab3e315c8a2",
      "parents": [
        "80257cbe62ea0919153c43421746269ab68473bf"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Sep 11 15:04:19 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Oct 02 10:30:36 2012 -0700"
      },
      "message": "time: Move ktime_t overflow checking into timespec_valid_strict\n\ncommit cee58483cf56e0ba355fdd97ff5e8925329aa936 upstream\n\nAndreas Bombe reported that the added ktime_t overflow checking added to\ntimespec_valid in commit 4e8b14526ca7 (\"time: Improve sanity checking of\ntimekeeping inputs\") was causing problems with X.org because it caused\ntimeouts larger then KTIME_T to be invalid.\n\nPreviously, these large timeouts would be clamped to KTIME_MAX and would\nnever expire, which is valid.\n\nThis patch splits the ktime_t overflow checking into a new\ntimespec_valid_strict function, and converts the timekeeping codes\ninternal checking to use this more strict function.\n\nReported-and-tested-by: Andreas Bombe \u003caeb@debian.org\u003e\nCc: Zhouping Liu \u003czliu@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "80257cbe62ea0919153c43421746269ab68473bf",
      "tree": "8d1286bedf3fee0cbca60ca8c2029a71577401e9",
      "parents": [
        "8e878154f5658ba93cf9bb2b491a930ec195de3d"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Sep 11 15:04:18 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Oct 02 10:30:36 2012 -0700"
      },
      "message": "time: Avoid making adjustments if we haven\u0027t accumulated anything\n\ncommit bf2ac312195155511a0f79325515cbb61929898a upstream.\n\nIf update_wall_time() is called and the current offset isn\u0027t large\nenough to accumulate, avoid re-calling timekeeping_adjust which may\nchange the clock freq and can cause 1ns inconsistencies with\nCLOCK_REALTIME_COARSE/CLOCK_MONOTONIC_COARSE.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1345595449-34965-5-git-send-email-john.stultz@linaro.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "8e878154f5658ba93cf9bb2b491a930ec195de3d",
      "tree": "7c90f9cafce87cdf0b5629933a35144ee3d11d44",
      "parents": [
        "504471eb5044e4a1dd10950d1a3efab39ba2083a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Tue Sep 11 15:04:17 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Oct 02 10:30:36 2012 -0700"
      },
      "message": "time: Improve sanity checking of timekeeping inputs\n\ncommit 4e8b14526ca7fb046a81c94002c1c43b6fdf0e9b upstream.\n\nUnexpected behavior could occur if the time is set to a value large\nenough to overflow a 64bit ktime_t (which is something larger then the\nyear 2262).\n\nAlso unexpected behavior could occur if large negative offsets are\ninjected via adjtimex.\n\nSo this patch improves the sanity check timekeeping inputs by\nimproving the timespec_valid() check, and then makes better use of\ntimespec_valid() to make sure we don\u0027t set the time to an invalid\nnegative value or one that overflows ktime_t.\n\nNote: This does not protect from setting the time close to overflowing\nktime_t and then letting natural accumulation cause the overflow.\n\nReported-by: CAI Qian \u003ccaiqian@redhat.com\u003e\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Zhouping Liu \u003czliu@redhat.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nLink: http://lkml.kernel.org/r/1344454580-17031-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "48f0f14ffb6ff4852922994d11fbda418d40100e",
      "tree": "c1889eaa22a13909c8790013e22852e8e4f7610f",
      "parents": [
        "a95bb54b6345874159a82b93c67c49244d2433f2"
      ],
      "author": {
        "name": "Charles Wang",
        "email": "muming.wq@taobao.com",
        "time": "Mon Aug 20 16:02:33 2012 +0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Tue Oct 02 10:30:05 2012 -0700"
      },
      "message": "sched: Add missing call to calc_load_exit_idle()\n\ncommit 749c8814f08f12baa4a9c2812a7c6ede7d69507d upstream.\n\nAzat Khuzhin reported high loadavg in Linux v3.6\n\nAfter checking the upstream scheduler code, I found Peter\u0027s commit:\n\n  5167e8d5417b sched/nohz: Rewrite and fix load-avg computation -- again\n\nnot fully applied, missing the call to calc_load_exit_idle().\n\nAfter that idle exit in sampling window will always be calculated\nto non-idle, and the load will be higher than normal.\n\nThis patch adds the missing call to calc_load_exit_idle().\n\nSigned-off-by: Charles Wang \u003cmuming.wq@taobao.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nLink: http://lkml.kernel.org/r/1345449754-27130-1-git-send-email-muming.wq@gmail.com\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "fd25080998d00a94a87bf7fc9f843291db7250a6",
      "tree": "ea5131b2e070fda20aa647ca9c74b34829958409",
      "parents": [
        "5c8c9e57270fc5f54aa02144f7280f91ee2e3334"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Fri Jul 13 01:21:50 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jul 29 08:04:18 2012 -0700"
      },
      "message": "ntp: Fix STA_INS/DEL clearing bug\n\ncommit 6b1859dba01c7d512b72d77e3fd7da8354235189 upstream.\n\nIn commit 6b43ae8a619d17c4935c3320d2ef9e92bdeed05d, I\nintroduced a bug that kept the STA_INS or STA_DEL bit\nfrom being cleared from time_status via adjtimex()\nwithout forcing STA_PLL first.\n\nUsually once the STA_INS is set, it isn\u0027t cleared\nuntil the leap second is applied, so its unlikely this\naffected anyone. However during testing I noticed it\ntook some effort to cancel a leap second once STA_INS\nwas set.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1342156917-25092-2-git-send-email-john.stultz@linaro.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "3cdeda1e763ccb2287c6ee76ece14145027653a9",
      "tree": "c871a197eb48e9f4cf862e68bfaa43b86bd21007",
      "parents": [
        "6321a0a1a3a9d6c9cbd73d9a4159a97ac3bc0919"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 17 02:39:56 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 19 08:59:00 2012 -0700"
      },
      "message": "timekeeping: Add missing update call in timekeeping_resume()\n\nThis is a backport of 3e997130bd2e8c6f5aaa49d6e3161d4d29b43ab0\n\nThe leap second rework unearthed another issue of inconsistent data.\n\nOn timekeeping_resume() the timekeeper data is updated, but nothing\ncalls timekeeping_update(), so now the update code in the timer\ninterrupt sees stale values.\n\nThis has been the case before those changes, but then the timer\ninterrupt was using stale data as well so this went unnoticed for quite\nsome time.\n\nAdd the missing update call, so all the data is consistent everywhere.\n\nReported-by: Andreas Schwab \u003cschwab@linux-m68k.org\u003e\nReported-and-tested-by: \"Rafael J. Wysocki\" \u003crjw@sisk.pl\u003e\nReported-and-tested-by: Martin Steigerwald \u003cMartin@lichtvoll.de\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@kernel.org\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e,\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "765bdc4d82fadcddfec19222a545e904633c7816",
      "tree": "1086773f08d9e4727c1cb6f90543258372db5673",
      "parents": [
        "dd3cded0f516201d3b72999e588a6d67e00cb82f"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 17 02:39:54 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 19 08:59:00 2012 -0700"
      },
      "message": "timekeeping: Provide hrtimer update function\n\nThis is a backport of f6c06abfb3972ad4914cef57d8348fcb2932bc3b\n\nTo finally fix the infamous leap second issue and other race windows\ncaused by functions which change the offsets between the various time\nbases (CLOCK_MONOTONIC, CLOCK_REALTIME and CLOCK_BOOTTIME) we need a\nfunction which atomically gets the current monotonic time and updates\nthe offsets of CLOCK_REALTIME and CLOCK_BOOTTIME with minimalistic\noverhead. The previous patch which provides ktime_t offsets allows us\nto make this function almost as cheap as ktime_get() which is going to\nbe replaced in hrtimer_interrupt().\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/1341960205-56738-7-git-send-email-johnstul@us.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "7d1f07113b1b32da1eabce0dc74d9f96bbb7b90a",
      "tree": "6bdc4407079c57126f96c0409eda6e031d618695",
      "parents": [
        "2e947d469fba2c2036ff50a2e58a1875ab2ea6b6"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Jul 17 02:39:52 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 19 08:58:59 2012 -0700"
      },
      "message": "timekeeping: Maintain ktime_t based offsets for hrtimers\n\nThis is a backport of 5b9fe759a678e05be4937ddf03d50e950207c1c0\n\nWe need to update the hrtimer clock offsets from the hrtimer interrupt\ncontext. To avoid conversions from timespec to ktime_t maintain a\nktime_t based representation of those offsets in the timekeeper. This\nputs the conversion overhead into the code which updates the\nunderlying offsets and provides fast accessible values in the hrtimer\ninterrupt.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nReviewed-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1341960205-56738-4-git-send-email-johnstul@us.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "2e947d469fba2c2036ff50a2e58a1875ab2ea6b6",
      "tree": "7f9a44c90974ff3c380b8a798c82f55c9215248f",
      "parents": [
        "5e5006e64cae9603841405af9febb67064869d83"
      ],
      "author": {
        "name": "John Stultz",
        "email": "johnstul@us.ibm.com",
        "time": "Tue Jul 17 02:39:51 2012 -0400"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 19 08:58:59 2012 -0700"
      },
      "message": "timekeeping: Fix leapsecond triggered load spike issue\n\nThis is a backport of 4873fa070ae84a4115f0b3c9dfabc224f1bc7c51\n\nThe timekeeping code misses an update of the hrtimer subsystem after a\nleap second happened. Due to that timers based on CLOCK_REALTIME are\neither expiring a second early or late depending on whether a leap\nsecond has been inserted or deleted until an operation is initiated\nwhich causes that update. Unless the update happens by some other\nmeans this discrepancy between the timekeeping and the hrtimer data\nstays forever and timers are expired either early or late.\n\nThe reported immediate workaround - $ data -s \"`date`\" - is causing a\ncall to clock_was_set() which updates the hrtimer data structures.\nSee: http://www.sheeri.com/content/mysql-and-leap-second-high-cpu-and-fix\n\nAdd the missing clock_was_set() call to update_wall_time() in case of\na leap second event. The actual update is deferred to softirq context\nas the necessary smp function call cannot be invoked from hard\ninterrupt context.\n\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nReported-by: Jan Engelhardt \u003cjengelh@inai.de\u003e\nReviewed-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nAcked-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nAcked-by: Prarit Bhargava \u003cprarit@redhat.com\u003e\nLink: http://lkml.kernel.org/r/1341960205-56738-3-git-send-email-johnstul@us.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Prarit Bhargava \u003cprarit@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohnstul@us.ibm.com\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n"
    },
    {
      "commit": "7490d0a4cfefa16f9d8ce636eb5b2e13d2432db3",
      "tree": "70ee2418549bd1af674a7bda391140a45a5e11ce",
      "parents": [
        "667fb5508900340d657645e0bfc9bf210a1fc363"
      ],
      "author": {
        "name": "Peter Zijlstra",
        "email": "a.p.zijlstra@chello.nl",
        "time": "Fri Jun 22 15:52:09 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Thu Jul 19 08:58:56 2012 -0700"
      },
      "message": "sched/nohz: Rewrite and fix load-avg computation -- again\n\ncommit 5167e8d5417bf5c322a703d2927daec727ea40dd upstream.\n\nThanks to Charles Wang for spotting the defects in the current code:\n\n - If we go idle during the sample window -- after sampling, we get a\n   negative bias because we can negate our own sample.\n\n - If we wake up during the sample window we get a positive bias\n   because we push the sample to a known active period.\n\nSo rewrite the entire nohz load-avg muck once again, now adding\ncopious documentation to the code.\n\nReported-and-tested-by: Doug Smythies \u003cdsmythies@telus.net\u003e\nReported-and-tested-by: Charles Wang \u003cmuming.wq@gmail.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Andrew Morton \u003cakpm@linux-foundation.org\u003e\nLink: http://lkml.kernel.org/r/1340373782.18025.74.camel@twins\n[ minor edits ]\nSigned-off-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "c17f648b6e8adb8379b2d2972e24953285332f44",
      "tree": "7b5bf4065b4a8cdeaf3d34bcb86fc621eb5960ea",
      "parents": [
        "e60a87bab7ce339c034b7d7dd365d687bbffd091"
      ],
      "author": {
        "name": "Richard Cochran",
        "email": "richardcochran@gmail.com",
        "time": "Thu Apr 26 14:11:32 2012 +0200"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Fri Jun 22 11:37:16 2012 -0700"
      },
      "message": "ntp: Correct TAI offset during leap second\n\ncommit dd48d708ff3e917f6d6b6c2b696c3f18c019feed upstream.\n\nWhen repeating a UTC time value during a leap second (when the UTC\ntime should be 23:59:60), the TAI timescale should not stop. The kernel\nNTP code increments the TAI offset one second too late. This patch fixes\nthe issue by incrementing the offset during the leap second itself.\n\nSigned-off-by: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "d913c02b0a172d5dca6280da5b17a407d69bbce4",
      "tree": "d1efd41f5bb0214b30f04f29c6b4672c6017d40b",
      "parents": [
        "3410afedcda2f504e8fbe02a7f4c49912ce688c8"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed May 30 10:54:57 2012 -0700"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@linuxfoundation.org",
        "time": "Sun Jun 17 11:21:23 2012 -0700"
      },
      "message": "timekeeping: Fix CLOCK_MONOTONIC inconsistency during leapsecond\n\ncommit fad0c66c4bb836d57a5f125ecd38bed653ca863a upstream.\n\nCommit 6b43ae8a61 (ntp: Fix leap-second hrtimer livelock) broke the\nleapsecond update of CLOCK_MONOTONIC. The missing leapsecond update to\nwall_to_monotonic causes discontinuities in CLOCK_MONOTONIC.\n\nAdjust wall_to_monotonic when NTP inserted a leapsecond.\n\nReported-by: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nTested-by: Richard Cochran \u003crichardcochran@gmail.com\u003e\nLink: http://lkml.kernel.org/r/1338400497-12420-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@linuxfoundation.org\u003e\n\n"
    },
    {
      "commit": "a6371f80230eaaafd7eef7efeedaa9509bdc982d",
      "tree": "bb2d800c95cde553e126c28cb58133189b015a47",
      "parents": [
        "b9a6a23566960d0dd3f51e2e68b472cd61911078"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Wed Apr 18 19:27:39 2012 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 19 21:27:50 2012 +0200"
      },
      "message": "tick: Fix the spurious broadcast timer ticks after resume\n\nDuring resume, tick_resume_broadcast() programs the broadcast timer in\noneshot mode unconditionally. On the platforms where broadcast timer\nis not really required, this will generate spurious broadcast timer\nticks upon resume. For example, on the always running apic timer\nplatforms with HPET, I see spurious hpet tick once every ~5minutes\n(which is the 32-bit hpet counter wraparound time).\n\nSimilar to boot time, during resume make the oneshot mode setting of\nthe broadcast clock event device conditional on the state of active\nbroadcast users.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nTested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nTested-by: svenjoac@gmx.de\nCc: torvalds@linux-foundation.org\nCc: rjw@sisk.pl\nLink: http://lkml.kernel.org/r/1334802459.28674.209.camel@sbsiddha-desk.sc.intel.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b9a6a23566960d0dd3f51e2e68b472cd61911078",
      "tree": "d9da5fb202a21b9036e961a5f4d3190e57343a6c",
      "parents": [
        "b435092f70ec5ebbfb6d075d5bf3c631b49a51de"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Apr 18 17:31:58 2012 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Apr 19 21:27:35 2012 +0200"
      },
      "message": "tick: Ensure that the broadcast device is initialized\n\nSantosh found another trap when we avoid to initialize the broadcast\ndevice in the switch_to_oneshot code. The broadcast device might be\nstill in SHUTDOWN state when we actually need to use it. That\nobviously breaks, as set_next_event() is called on a shutdown\ndevice. This did not break on x86, but Suresh analyzed it:\n\nFrom the review, most likely on Sven\u0027s system we are force enabling\nthe hpet using the pci quirk\u0027s method very late. And in this case,\nhpet_clockevent (which will be global_clock_event) handler can be\nnull, specifically as this platform might not be using deeper c-states\nand using the reliable APIC timer.\n\nPrior to commit \u0027fa4da365bc7772c\u0027, that handler will be set to\n\u0027tick_handle_oneshot_broadcast\u0027 when we switch the broadcast timer to\noneshot mode, even though we don\u0027t use it. Post commit\n\u0027fa4da365bc7772c\u0027, we stopped switching the broadcast mode to oneshot\nas this is not really needed and his platform\u0027s global_clock_event\u0027s\nhandler will remain null. While on my SNB laptop, same is set to\n\u0027clockevents_handle_noop\u0027 because hpet gets enabled very early. (noop\nhandler on my platform set when the early enabled hpet timer gets\nreplaced by the lapic timer).\n\nBut the commit \u0027fa4da365bc7772c\u0027 tracked the broadcast timer mode in\nthe SW as oneshot, even though it didn\u0027t touch the HW timer. During\nresume however, tick_resume_broadcast() saw the SW broadcast mode as\noneshot and actually programmed the broadcast device also into oneshot\nmode. So this triggered the null pointer de-reference after the hpet\nwraps around and depending on what the hpet counter is set to. On the\nnormal platforms where hpet gets enabled early we should be seeing a\nspurious interrupt (in my SNB laptop I see one spurious interrupt\nafter around 5 minutes ;) which is 32-bit hpet counter wraparound\ntime), but that\u0027s a separate issue.\n\nEnforce the mode setting when trying to set an event.\n\nReported-and-tested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: torvalds@linux-foundation.org\nCc: svenjoac@gmx.de\nCc: rjw@sisk.pl\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1204181723350.2542@ionos\n\n"
    },
    {
      "commit": "b435092f70ec5ebbfb6d075d5bf3c631b49a51de",
      "tree": "c9cfd15c405dd218003fd84585196b5bffcc9bbd",
      "parents": [
        "592fe8980688e7cba46897685d014c7fb3018a67"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Apr 18 12:08:23 2012 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Apr 18 14:00:56 2012 +0200"
      },
      "message": "tick: Fix oneshot broadcast setup really\n\nSven Joachim reported, that suspend/resume on rc3 trips over a NULL\npointer dereference. Linus spotted the clockevent handler being NULL.\n\ncommit fa4da365b(clockevents: tTack broadcast device mode change in\ntick_broadcast_switch_to_oneshot()) tried to fix a problem with the\nbroadcast device setup, which was introduced in commit 77b0d60c5(\nclockevents: Leave the broadcast device in shutdown mode when not\nneeded).\n\nThe initial commit avoided to set up the broadcast device when no\nbroadcast request bits were set, but that left the broadcast device\ndisfunctional. In consequence deep idle states which need the\nbroadcast device were not woken up.\n\ncommit fa4da365b tried to fix that by initializing the state of the\nbroadcast facility, but that missed the fact, that nothing initializes\nthe event handler and some other state of the underlying clock event\ndevice.\n\nThe fix is to revert both commits and make only the mode setting of\nthe clock event device conditional on the state of active broadcast\nusers. \n\nThat initializes everything except the low level device mode, but this\nhappens when the broadcast functionality is invoked by deep idle.\n\nReported-and-tested-by: Sven Joachim \u003csvenjoac@gmx.de\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Rafael J. Wysocki \u003crjw@sisk.pl\u003e\nCc: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\nCc: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1204181205540.2542@ionos\n\n"
    },
    {
      "commit": "fa4da365bc7772c2cd6d5405bdf151612455f957",
      "tree": "a688173e5ba7428e934dee1ea2905c2bbe92ef50",
      "parents": [
        "9886f444129171569461d8c39983e16f4871e3b4"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Mon Apr 09 15:41:44 2012 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Apr 10 11:42:07 2012 +0200"
      },
      "message": "clockevents: tTack broadcast device mode change in tick_broadcast_switch_to_oneshot()\n\nIn the commit 77b0d60c5adf39c74039e2142a1d3cd1e4d53799,\n\"clockevents: Leave the broadcast device in shutdown mode when not needed\",\nwe were bailing out too quickly in tick_broadcast_switch_to_oneshot(),\nwith out tracking the broadcast device mode change to \u0027TICKDEV_MODE_ONESHOT\u0027.\n\nThis breaks the platforms which need broadcast device oneshot services during\ndeep idle states. tick_broadcast_oneshot_control() thinks that it is\nin periodic mode and fails to take proper decisions based on the\nCLOCK_EVT_NOTIFY_BROADCAST_[ENTER, EXIT] notifications during deep\nidle entry/exit.\n\nFix this by tracking the broadcast device mode as \u0027TICKDEV_MODE_ONESHOT\u0027,\nbefore leaving the broadcast HW device in shutdown mode if there are no active\nrequests for the moment.\n\nReported-and-tested-by: Santosh Shilimkar \u003csantosh.shilimkar@ti.com\u003e\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: johnstul@us.ibm.com\nLink: http://lkml.kernel.org/r/1334011304.12400.81.camel@sbsiddha-desk.sc.intel.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6f103929f8979d2638e58d7f7fda0beefcb8ee7e",
      "tree": "e1ef3fc388c177e8e8ca4b6daa797fe7f9306d84",
      "parents": [
        "3872c48b14259d8c0a00c9fff06a4a4123f7f4eb"
      ],
      "author": {
        "name": "Neal Cardwell",
        "email": "ncardwell@google.com",
        "time": "Tue Mar 27 15:09:37 2012 -0400"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Apr 06 13:24:17 2012 +0200"
      },
      "message": "nohz: Fix stale jiffies update in tick_nohz_restart()\n\nFix tick_nohz_restart() to not use a stale ktime_t \"now\" value when\ncalling tick_do_update_jiffies64(now).\n\nIf we reach this point in the loop it means that we crossed a tick\nboundary since we grabbed the \"now\" timestamp, so at this point \"now\"\nrefers to a time in the old jiffy, so using the old value for \"now\" is\nincorrect, and is likely to give us a stale jiffies value.\n\nIn particular, the first time through the loop the\ntick_do_update_jiffies64(now) call is always a no-op, since the\ncaller, tick_nohz_restart_sched_tick(), will have already called\ntick_do_update_jiffies64(now) with that \"now\" value.\n\nNote that tick_nohz_stop_sched_tick() already uses the correct\napproach: when we notice we cross a jiffy boundary, grab a new\ntimestamp with ktime_get(), and *then* update jiffies.\n\nSigned-off-by: Neal Cardwell \u003cncardwell@google.com\u003e\nCc: Ben Segall \u003cbsegall@google.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nCc: stable@vger.kernel.org\nLink: http://lkml.kernel.org/r/1332875377-23014-1-git-send-email-ncardwell@google.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "3872c48b14259d8c0a00c9fff06a4a4123f7f4eb",
      "tree": "94e5f5c1898896436e9534aa182d8c3aef255826",
      "parents": [
        "cb85a6ed67e979c59a29b7b4e8217e755b951cf4"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 31 12:45:43 2012 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 31 12:45:43 2012 +0200"
      },
      "message": "tick: Document TICK_ONESHOT config option\n\nThis option has been selected from arch code as it was assumed that\nit\u0027s necessary to support oneshot mode clockevent devices. But it\u0027s\njust a core internal helper to compile tick-oneshot.c if NOHZ or\nHIG_RES_TIMERS are selected.\n\nReported-by: Russell King \u003crmk+kernel@arm.linux.org.uk\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "bcd550745fc54f789c14e7526e0633222c505faa",
      "tree": "c3fe11a6503b7ffdd4406a9fece5c40b3e2a3f6d",
      "parents": [
        "93f378883cecb9dcb2cf5b51d9d24175906659da",
        "646783a389828e76e813f50791f7999429c821bc"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:16:48 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 29 14:16:48 2012 -0700"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\nPull timer core updates from Thomas Gleixner.\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  ia64: vsyscall: Add missing paranthesis\n  alarmtimer: Don\u0027t call rtc_timer_init() when CONFIG_RTC_CLASS\u003dn\n  x86: vdso: Put declaration before code\n  x86-64: Inline vdso clock_gettime helpers\n  x86-64: Simplify and optimize vdso clock_gettime monotonic variants\n  kernel-time: fix s/then/than/ spelling errors\n  time: remove no_sync_cmos_clock\n  time: Avoid scary backtraces when warning of \u003e 11% adj\n  alarmtimer: Make sure we initialize the rtctimer\n  ntp: Fix leap-second hrtimer livelock\n  x86, tsc: Skip refined tsc calibration on systems with reliable TSC\n  rtc: Provide flag for rtc devices that don\u0027t support UIE\n  ia64: vsyscall: Use seqcount instead of seqlock\n  x86: vdso: Use seqcount instead of seqlock\n  x86: vdso: Remove bogus locking in update_vsyscall_tz()\n  time: Remove bogus comments\n  time: Fix change_clocksource locking\n  time: x86: Fix race switching from vsyscall to non-vsyscall clock\n"
    },
    {
      "commit": "c5e14e763046b11dd8bf57b5dc9f3ab444af8e60",
      "tree": "8f3c68218ef4ffadeb5c0620b9d2fe6e1fd17281",
      "parents": [
        "68fe7b23d559763a2e19e5fc1cf7036e4aaecb10"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 24 12:46:23 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sat Mar 24 12:46:23 2012 +0100"
      },
      "message": "alarmtimer: Don\u0027t call rtc_timer_init() when CONFIG_RTC_CLASS\u003dn\n\nrtc_timer_init() is not available when CONFIG_RTC_CLASS\u003dn. Provide a\nproper wrapper in the RTC section of alarmtimer.c\n\nReported-by: Ingo Molnar \u003cmingo@kernel.org\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "88b28adf6fcdd6d10a1cfc7765bb200d7366a265",
      "tree": "2a5e792dbd6e3a8971e8c163dac7f6a85f52f101",
      "parents": [
        "335dd85895abeca1957d5eaa3013dfe8dc60c7d7"
      ],
      "author": {
        "name": "Jim Cromie",
        "email": "jim.cromie@gmail.com",
        "time": "Wed Mar 14 21:28:56 2012 -0600"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Mar 23 16:49:21 2012 -0700"
      },
      "message": "kernel-time: fix s/then/than/ spelling errors\n\nUse than for comparisons, like more than.\n\nCC: John Stultz \u003cjohn.stultz@linaro.org\u003e\nSigned-off-by: Jim Cromie \u003cjim.cromie@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "335dd85895abeca1957d5eaa3013dfe8dc60c7d7",
      "tree": "7ab7ae63376047f6b9fb05b98db6d8ef252c1b5e",
      "parents": [
        "e919cfd42da54d400e7e0385f22cae3672dcf874"
      ],
      "author": {
        "name": "Cesar Eduardo Barros",
        "email": "cesarb@cesarb.net",
        "time": "Sat Feb 11 17:54:59 2012 -0200"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Mar 23 16:25:20 2012 -0700"
      },
      "message": "time: remove no_sync_cmos_clock\n\nCommit 9863c90f682fba34cdc26c3437e8c00da6c83fa4 (x86, vmware: Remove\ndeprecated VMI kernel support) removed the only place which set\nno_sync_cmos_clock. Since that commit, this variable is never set.\n\nSigned-off-by: Cesar Eduardo Barros \u003ccesarb@cesarb.net\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "e919cfd42da54d400e7e0385f22cae3672dcf874",
      "tree": "2fad9b552439188e2e48b0d3b0cacce52dc71b95",
      "parents": [
        "ad30dfa94c5cc23931c822922a50bd163ab293a5"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Mar 22 19:14:46 2012 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Mar 23 16:25:16 2012 -0700"
      },
      "message": "time: Avoid scary backtraces when warning of \u003e 11% adj\n\nFolks have been getting a number of warnings about time\nadjustments \u003e 11%. The WARN_ON leaves a big useless backtrace\nso this patch removes it for a printk_once().\n\nI\u0027m still working to narrow down the cause of the \u003e 11% adjustment.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "ad30dfa94c5cc23931c822922a50bd163ab293a5",
      "tree": "574daa8c88b38161fe6139ba2b3fcda42538f32d",
      "parents": [
        "6b43ae8a619d17c4935c3320d2ef9e92bdeed05d"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Mar 23 15:52:25 2012 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Mar 23 16:23:12 2012 -0700"
      },
      "message": "alarmtimer: Make sure we initialize the rtctimer\n\njonghwan Choi reported seeing warnings with the alarmtimer\ncode at suspend/resume time, and pointed out that the\nrtctimer isn\u0027t being properly initialized.\n\nThis patch corrects this issue.\n\nReported-by: jonghwan Choi \u003cjhbird.choi@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "7bfe0e66d5da32961f0060fc5d96b739b1ed64b9",
      "tree": "6d5dcf77248b574bb0c50930bbf9030aafb99fce",
      "parents": [
        "6a76a6992341faab0ef31e7d97000e0cf336d0ba",
        "10ce3cc919f50c2043b41ca968b43c26a3672600"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:20:18 2012 -0700"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Thu Mar 22 20:20:18 2012 -0700"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input\n\nPull input subsystem updates from Dmitry Torokhov:\n \"- we finally merged driver for USB version of Synaptics touchpads\n    (I guess most commonly found in IBM/Lenovo keyboard/touchpad combo);\n\n   - a bunch of new drivers for embedded platforms (Cypress\n     touchscreens, DA9052 OnKey, MAX8997-haptic, Ilitek ILI210x\n     touchscreens, TI touchscreen);\n\n   - input core allows clients to specify desired clock source for\n     timestamps on input events (EVIOCSCLOCKID ioctl);\n\n   - input core allows querying state of all MT slots for given event\n     code via EVIOCGMTSLOTS ioctl;\n\n   - various driver fixes and improvements.\"\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (45 commits)\n  Input: ili210x - add support for Ilitek ILI210x based touchscreens\n  Input: altera_ps2 - use of_match_ptr()\n  Input: synaptics_usb - switch to module_usb_driver()\n  Input: convert I2C drivers to use module_i2c_driver()\n  Input: convert SPI drivers to use module_spi_driver()\n  Input: omap4-keypad - move platform_data to \u003clinux/platform_data\u003e\n  Input: kxtj9 - who_am_i check value and initial data rate fixes\n  Input: add driver support for MAX8997-haptic\n  Input: tegra-kbc - revise device tree support\n  Input: of_keymap - add device tree bindings for simple key matrices\n  Input: wacom - fix physical size calculation for 3rd-gen Bamboo\n  Input: twl4030-vibra - really switch from #if to #ifdef\n  Input: hp680_ts_input - ensure arguments to request_irq and free_irq are compatible\n  Input: max8925_onkey - avoid accessing input device too early\n  Input: max8925_onkey - allow to be used as a wakeup source\n  Input: atmel-wm97xx - convert to dev_pm_ops\n  Input: atmel-wm97xx - set driver owner\n  Input: add cyttsp touchscreen maintainer entry\n  Input: cyttsp - remove useless checks in cyttsp_probe()\n  Input: usbtouchscreen - add support for Data Modul EasyTouch TP 72037\n  ...\n"
    },
    {
      "commit": "6b43ae8a619d17c4935c3320d2ef9e92bdeed05d",
      "tree": "007df06a9cf0d4d2b72ed7dd8d646e853de80e9b",
      "parents": [
        "57779dc2b3b75bee05ef5d1ada47f615f7a13932"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Mar 15 13:04:03 2012 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Mar 22 19:43:43 2012 -0700"
      },
      "message": "ntp: Fix leap-second hrtimer livelock\n\nSince commit 7dffa3c673fbcf835cd7be80bb4aec8ad3f51168 the ntp\nsubsystem has used an hrtimer for triggering the leapsecond\nadjustment. However, this can cause a potential livelock.\n\nThomas diagnosed this as the following pattern:\nCPU 0                                                    CPU 1\ndo_adjtimex()\n  spin_lock_irq(\u0026ntp_lock);\n    process_adjtimex_modes();\t\t\t\t timer_interrupt()\n      process_adj_status();                                do_timer()\n        ntp_start_leap_timer();                             write_lock(\u0026xtime_lock);\n          hrtimer_start();                                  update_wall_time();\n             hrtimer_reprogram();                            ntp_tick_length()\n               tick_program_event()                            spin_lock(\u0026ntp_lock);\n                 clockevents_program_event()\n\t\t   ktime_get()\n                     seq \u003d req_seqbegin(xtime_lock);\n\nThis patch tries to avoid the problem by reverting back to not using\nan hrtimer to inject leapseconds, and instead we handle the leapsecond\nprocessing in the second_overflow() function.\n\nThe downside to this change is that on systems that support highres\ntimers, the leap second processing will occur on a HZ tick boundary,\n(ie: ~1-10ms, depending on HZ)  after the leap second instead of\npossibly sooner (~34us in my tests w/ x86_64 lapic).\n\nThis patch applies on top of tip/timers/core.\n\nCC: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nReported-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nDiagnoised-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "f695cf94837de53864180400cbac42cfa370426f",
      "tree": "9bb91a9b8c5a1291a083a37e790da00d477b18f8",
      "parents": [
        "a939e817aa7e199d2fff05a67cb745be32dd5c2d"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Mar 14 16:38:15 2012 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Mar 15 18:17:54 2012 -0700"
      },
      "message": "time: Fix change_clocksource locking\n\nchange_clocksource() fails to grab locks or call timekeeping_update(),\nwhich leaves a race window for time inconsistencies.\n\nThis adds proper locking and a call to timekeeping_update() to fix this.\n\nCC: Andy Lutomirski \u003cluto@amacapital.net\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "a078c6d0e6288fad6d83fb6d5edd91ddb7b6ab33",
      "tree": "473eb7484d966e65c51487c72d47502096ab7b99",
      "parents": [
        "f910381a55cdaa097030291f272f6e6e4380c39a"
      ],
      "author": {
        "name": "Sasha Levin",
        "email": "levinsasha928@gmail.com",
        "time": "Thu Mar 15 12:36:14 2012 -0400"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Mar 15 21:41:34 2012 +0100"
      },
      "message": "ntp: Fix integer overflow when setting time\n\n\u0027long secs\u0027 is passed as divisor to div_s64, which accepts a 32bit\ndivisor. On 64bit machines that value is trimmed back from 8 bytes\nback to 4, causing a divide by zero when the number is bigger than\n(1 \u003c\u003c 32) - 1 and all 32 lower bits are 0.\n\nUse div64_long() instead.\n\nSigned-off-by: Sasha Levin \u003clevinsasha928@gmail.com\u003e\nCc: johnstul@us.ibm.com\nLink: http://lkml.kernel.org/r/1331829374-31543-2-git-send-email-levinsasha928@gmail.com\nCc: stable@vger.kernel.org\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "b675b3667f6729dcd1036a2a129b35445947f905",
      "tree": "0d58791e9063d3ca2c352da6f3e7df2bdb876f9d",
      "parents": [
        "104a5f3cad8f2f27cadbdf0029400ecd9e17ccc0",
        "192cfd58774b4d17b2fe8bdc77d89c2ef4e0591d"
      ],
      "author": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Mar 09 10:55:17 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Mar 09 10:55:17 2012 -0800"
      },
      "message": "Merge commit \u0027v3.3-rc6\u0027 into next\n"
    },
    {
      "commit": "97ac984d2feec885d10f900591431088eab42021",
      "tree": "e66e4e2ecb428d6ea45a6495b0675e3531ba23d1",
      "parents": [
        "8682df25ca9afd3aac30f2c72d00bd98de2118e8",
        "cc06268c6a87db156af2daed6e96a936b955cc82"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 15 20:29:18 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 15 20:29:18 2012 +0100"
      },
      "message": "Merge branch \u0027fortglx/3.4/time\u0027 of git://git.linaro.org/people/jstultz/linux into timers/core\n"
    },
    {
      "commit": "15f827be93928890bba965bc175caee50c4406d2",
      "tree": "f858d834563a8f47327fbd4792dcf3b5499901b9",
      "parents": [
        "430ee8819553f66fe00e36f676a45886d76e7e8b"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Tue Jan 24 18:59:43 2012 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 15 15:23:09 2012 +0100"
      },
      "message": "nohz: Remove ts-\u003eEinidle checks before restarting the tick\n\nts-\u003einidle is set by tick_nohz_idle_enter() and unset by\ntick_nohz_idle_exit(). However these two calls are assumed\nto be always paired. This means that by the time we call\ntick_nohz_idle_exit(), ts-\u003einidle is supposed to be always\nset to 1.\n\nRemove the checks for ts-\u003einidle in tick_nohz_idle_exit().\nThis simplifies a bit the code and improves its debuggability\n(ie: ensure the call is paired with a tick_nohz_idle_enter()\ncall).\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nReviewed-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nLink: http://lkml.kernel.org/r/1327427984-23282-2-git-send-email-fweisbec@gmail.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "430ee8819553f66fe00e36f676a45886d76e7e8b",
      "tree": "e45859ba70d207635a21a27fffa438ecb3a60155",
      "parents": [
        "77b0d60c5adf39c74039e2142a1d3cd1e4d53799"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Thu Dec 01 17:00:22 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 15 15:23:09 2012 +0100"
      },
      "message": "nohz: Remove update_ts_time_stat from tick_nohz_start_idle\n\nThere is no reason to call update_ts_time_stat from tick_nohz_start_idle\nanymore (after e0e37c20 sched: Eliminate the ts-\u003eidle_lastupdate field)\nwhen we updated idle_lastupdate unconditionally.\n\nWe haven\u0027t set idle_active yet and do not provide last_update_time so\nthe whole call end up being just 2 wasted branches.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Arjan van de Ven \u003carjan@linux.intel.com\u003e\nLink: http://lkml.kernel.org/r/1322755222-6951-1-git-send-email-mhocko@suse.cz\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "77b0d60c5adf39c74039e2142a1d3cd1e4d53799",
      "tree": "9c009072825bedc6423df543b6b8e12a342cfeb7",
      "parents": [
        "7ada1dd62804ca9ce1cb8666c6e563cd92fa50c1"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Fri Nov 04 17:18:21 2011 -0700"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Feb 15 15:23:09 2012 +0100"
      },
      "message": "clockevents: Leave the broadcast device in shutdown mode when not needed\n\nPlatforms with Always Running APIC Timer doesn\u0027t use the broadcast timer\nbut the kernel is leaving the broadcast timer (HPET in this case)\nin oneshot mode.\n\nOn these platforms, before the switch to oneshot mode, broadcast device is\nactually in shutdown mode. Code checks for empty tick_broadcast_mask and\navoids going into the periodic mode.\n\nDuring switch to oneshot mode, add the same tick_broadcast_mask checks in the\ntick_broadcast_switch_to_oneshot() and avoid the broadcast device going into\nthe oneshot mode.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nCc: venki@google.com\nLink: http://lkml.kernel.org/r/1320452301.15071.16.camel@sbsiddha-desk.sc.intel.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "a80b83b7b8456e9b475346c2e01d7e210883208c",
      "tree": "fb05acce28923e0e62b1b13cd39b9e1eee9bd0ae",
      "parents": [
        "4065d1e7b2164cff4af57b58fac887df2fe75d2a"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Fri Feb 03 00:19:07 2012 -0800"
      },
      "committer": {
        "name": "Dmitry Torokhov",
        "email": "dmitry.torokhov@gmail.com",
        "time": "Fri Feb 03 00:24:58 2012 -0800"
      },
      "message": "Input: add infrastructure for selecting clockid for event time stamps\n\nAs noted by Arve and others, since wall time can jump backwards, it is\ndifficult to use for input because one cannot determine if one event\noccurred before another or for how long a key was pressed.\n\nHowever, the timestamp field is part of the kernel ABI, and cannot be\nchanged without possibly breaking existing users.\n\nThis patch adds a new IOCTL that allows a clockid to be set in the\nevdev_client struct that will specify which time base to use for event\ntimestamps (ie: CLOCK_MONOTONIC instead of CLOCK_REALTIME).\n\nFor now we only support CLOCK_MONOTONIC and CLOCK_REALTIME, but\nin the future we could support other clockids if appropriate.\n\nThe default remains CLOCK_REALTIME, so we don\u0027t change the ABI.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nReviewed-by: Daniel Kurtz \u003cdjkurtz@google.com\u003e\nSigned-off-by: Dmitry Torokhov \u003cdtor@mail.ru\u003e\n"
    },
    {
      "commit": "cc06268c6a87db156af2daed6e96a936b955cc82",
      "tree": "7edfb767cf3a58b82c8ee299d3689943b87d1d3d",
      "parents": [
        "058892e632aa53be8255c2f0a42f9ace7bed66bb"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Nov 13 23:19:49 2011 +0000"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:31 2012 -0800"
      },
      "message": "time: Move common updates to a function\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "058892e632aa53be8255c2f0a42f9ace7bed66bb",
      "tree": "3528cc45b80245fc8d3eba00d3cda80f782d0fe1",
      "parents": [
        "92c1d3ed4dc0b8cfb10e85ed0c9934db41efc027"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Sun Nov 13 23:19:48 2011 +0000"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:29 2012 -0800"
      },
      "message": "time: Reorder so the hot data is together\n\nKeep all the interesting data in a single cache line.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "92c1d3ed4dc0b8cfb10e85ed0c9934db41efc027",
      "tree": "233556d74e7bd062d8e174bc0a33fdc2dc7f95b1",
      "parents": [
        "bd3312681f69207a40431981c1bce1afdc9b7975"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 14 14:05:44 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:27 2012 -0800"
      },
      "message": "time: Remove most of xtime_lock usage in timekeeping.c\n\nNow that ntp.c\u0027s locking is reworked, we can remove most\nof the xtime_lock usage in timekeeping.c\n\nThe remaining xtime_lock presence is really for jiffies access\nand the global load calculation.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "bd3312681f69207a40431981c1bce1afdc9b7975",
      "tree": "ad95aba265a7e6033e81cbc9b3054fac176ab6ce",
      "parents": [
        "ea7cf49a7633c2b70125f59b4e3553d9181cb15d"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 14 13:48:36 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:25 2012 -0800"
      },
      "message": "ntp: Add ntp_lock to replace xtime_locking\n\nUse a ntp_lock spin lock to replace xtime_lock locking in ntp.c\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "ea7cf49a7633c2b70125f59b4e3553d9181cb15d",
      "tree": "877bca59752e387e93fc030079afc28515c86edf",
      "parents": [
        "8357929e6ae3661d5a3a7378a717f29873ea18c6"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 14 13:18:07 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:23 2012 -0800"
      },
      "message": "ntp: Access tick_length variable via ntp_tick_length()\n\nCurrently the NTP managed tick_length value is accessed globally,\nin preparations for locking cleanups, make sure it is accessed via\na function and mark it as static.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "8357929e6ae3661d5a3a7378a717f29873ea18c6",
      "tree": "49cee3ead7619a7a7a8ae2dd01c4a8b1f9e8add9",
      "parents": [
        "70471f2f061d59375e959b4e7d47ee62121babb1"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 14 13:06:21 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:20 2012 -0800"
      },
      "message": "ntp: Cleanup timex.h\n\nMove ntp_sycned to ntp.c and mark time_status as static.\nAlso yank function declaration for non-existant function.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "70471f2f061d59375e959b4e7d47ee62121babb1",
      "tree": "f2799ccaaed2d976748d6ecd8708c0886c142bf5",
      "parents": [
        "8fcce546be16130865550136831f71097d7fc228"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 14 12:48:10 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:18 2012 -0800"
      },
      "message": "time: Add timekeeper lock\n\nNow that all the timekeeping variables are stored in\nthe timekeeper structure, add a new lock to protect the\nstructure.\n\nFor now, this lock nests under the xtime_lock for writes.\n\nFor readers, we don\u0027t need to take xtime_lock anymore.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "8fcce546be16130865550136831f71097d7fc228",
      "tree": "a7670612d8196da348842c7c8d83336aa7922e90",
      "parents": [
        "01f71b47e08f2a062c4e77c94dfa9a7e0ae65fcb"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 14 11:46:39 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:16 2012 -0800"
      },
      "message": "time: Cleanup global variables and move them to the top\n\nMove global xtime_lock and timekeeping_suspended values up\nto the top of timekeeping.c\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "01f71b47e08f2a062c4e77c94dfa9a7e0ae65fcb",
      "tree": "bad9a642d8f55def709d71ecc9affe78ecc59e42",
      "parents": [
        "8ff2cb92dd1afcf23e7b5287c43a900b16f40bad"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 14 11:43:49 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:14 2012 -0800"
      },
      "message": "time: Move raw_time into timekeeper structure\n\nIn preparation for locking cleanups, move raw_time into\ntimekeeper structure.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "8ff2cb92dd1afcf23e7b5287c43a900b16f40bad",
      "tree": "52c3e19533e4f44a491603f5842595c4e2630da0",
      "parents": [
        "d9f7217aac6833cc634741f2f771a87fd1518fee"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 14 11:40:54 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:12 2012 -0800"
      },
      "message": "time: Move xtime into timekeeeper structure\n\nIn preparation for locking cleanups, move xtime into\ntimekeeper structure.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "d9f7217aac6833cc634741f2f771a87fd1518fee",
      "tree": "284a9a1597ec2166a0d2b43d108f1262be1f6b88",
      "parents": [
        "00c5fb774e3fa8c9d082c62eac7e3d178c006f56"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 14 11:29:32 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:09 2012 -0800"
      },
      "message": "time: Move wall_to_monotonic into the timekeeper structure\n\nIn preparation for locking cleanups, move wall_to_monotonic\ninto the timekeeper structure.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "00c5fb774e3fa8c9d082c62eac7e3d178c006f56",
      "tree": "986ae7cd7c10f7668d2c140093ebbc1591999ae1",
      "parents": [
        "a99cbf6b43a7b3b15f6139b2d9ac4ecceccd3c99"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 14 11:23:15 2011 -0800"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jan 26 19:44:07 2012 -0800"
      },
      "message": "time: Move total_sleep_time into the timekeeper structure\n\nMove total_sleep_time into the timekeeper structure in preparation\nfor locking cleanups\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Eric Dumazet \u003ceric.dumazet@gmail.com\u003e\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "98793265b429a3f0b3f1750e74d67cd4d740d162",
      "tree": "b0bd717673f0c21845cf053f3fb6b75d42530af5",
      "parents": [
        "b4a133da2eaccb844a7beaef16ffd9c76a0d21d3",
        "bd1b2a555952d959f47169056fca05acf7eff81f"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sun Jan 08 13:21:22 2012 -0800"
      },
      "message": "Merge branch \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial\n\n* \u0027for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (53 commits)\n  Kconfig: acpi: Fix typo in comment.\n  misc latin1 to utf8 conversions\n  devres: Fix a typo in devm_kfree comment\n  btrfs: free-space-cache.c: remove extra semicolon.\n  fat: Spelling s/obsolate/obsolete/g\n  SCSI, pmcraid: Fix spelling error in a pmcraid_err() call\n  tools/power turbostat: update fields in manpage\n  mac80211: drop spelling fix\n  types.h: fix comment spelling for \u0027architectures\u0027\n  typo fixes: aera -\u003e area, exntension -\u003e extension\n  devices.txt: Fix typo of \u0027VMware\u0027.\n  sis900: Fix enum typo \u0027sis900_rx_bufer_status\u0027\n  decompress_bunzip2: remove invalid vi modeline\n  treewide: Fix comment and string typo \u0027bufer\u0027\n  hyper-v: Update MAINTAINERS\n  treewide: Fix typos in various parts of the kernel, and fix some comments.\n  clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR\n  gpio: Kconfig: drop unknown symbol \u0027CS5535_GPIO\u0027\n  leds: Kconfig: Fix typo \u0027D2NET_V2\u0027\n  sound: Kconfig: drop unknown symbol ARCH_CLPS7500\n  ...\n\nFix up trivial conflicts in arch/powerpc/platforms/40x/Kconfig (some new\nkconfig additions, close to removed commented-out old ones)\n"
    },
    {
      "commit": "7affca3537d74365128e477b40c529d6f2fe86c8",
      "tree": "20be92bd240029182fc89c2c4f25401b7715dcae",
      "parents": [
        "356b95424cfb456e14a59eaa579422ce014c424b",
        "ff4b8a57f0aaa2882d444ca44b2b9b333d22a4df"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 07 12:03:30 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Sat Jan 07 12:03:30 2012 -0800"
      },
      "message": "Merge branch \u0027driver-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core\n\n* \u0027driver-core-next\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (73 commits)\n  arm: fix up some samsung merge sysdev conversion problems\n  firmware: Fix an oops on reading fw_priv-\u003efw in sysfs loading file\n  Drivers:hv: Fix a bug in vmbus_driver_unregister()\n  driver core: remove __must_check from device_create_file\n  debugfs: add missing #ifdef HAS_IOMEM\n  arm: time.h: remove device.h #include\n  driver-core: remove sysdev.h usage.\n  clockevents: remove sysdev.h\n  arm: convert sysdev_class to a regular subsystem\n  arm: leds: convert sysdev_class to a regular subsystem\n  kobject: remove kset_find_obj_hinted()\n  m86k: gpio - convert sysdev_class to a regular subsystem\n  mips: txx9_sram - convert sysdev_class to a regular subsystem\n  mips: 7segled - convert sysdev_class to a regular subsystem\n  sh: dma - convert sysdev_class to a regular subsystem\n  sh: intc - convert sysdev_class to a regular subsystem\n  power: suspend - convert sysdev_class to a regular subsystem\n  power: qe_ic - convert sysdev_class to a regular subsystem\n  power: cmm - convert sysdev_class to a regular subsystem\n  s390: time - convert sysdev_class to a regular subsystem\n  ...\n\nFix up conflicts with \u0027struct sysdev\u0027 removal from various platform\ndrivers that got changed:\n - arch/arm/mach-exynos/cpu.c\n - arch/arm/mach-exynos/irq-eint.c\n - arch/arm/mach-s3c64xx/common.c\n - arch/arm/mach-s3c64xx/cpu.c\n - arch/arm/mach-s5p64x0/cpu.c\n - arch/arm/mach-s5pv210/common.c\n - arch/arm/plat-samsung/include/plat/cpu.h\n - arch/powerpc/kernel/sysfs.c\nand fix up cpu_is_hotpluggable() as per Greg in include/linux/cpu.h\n"
    },
    {
      "commit": "376613e81ddc68f545fd5c87ffc3ad222b7abe5f",
      "tree": "e1cb1cd43d05f57e4584dd5f9ce3eb965d0ddff1",
      "parents": [
        "0db49b72bce26341274b74fd968501489a361ae3",
        "0518469d0a32be1e6dd8850ff274d52d72cdb52d"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 13:57:44 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 13:57:44 2012 -0800"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  x86, tsc: Skip TSC synchronization checks for tsc\u003dreliable\n  clocksource: Convert tcb_clksrc to use clocksource_register_hz/khz\n  clocksource: cris: Convert to clocksource_register_khz\n  clocksource: xtensa: Convert to clocksource_register_hz/khz\n  clocksource: um: Convert to clocksource_register_hz/khz\n  clocksource: parisc: Convert to clocksource_register_hz/khz\n  clocksource: m86k: Convert to clocksource_register_hz/khz\n  time: x86: Replace LATCH with PIT_LATCH in i8253 clocksource driver\n  time: x86: Remove CLOCK_TICK_RATE from acpi_pm clocksource driver\n  time: x86: Remove CLOCK_TICK_RATE from mach_timer.h\n  time: x86: Remove CLOCK_TICK_RATE from tsc code\n  time: Fix spelling mistakes in new comments\n  time: fix bogus comment in timekeeping_get_ns_raw\n"
    },
    {
      "commit": "ff4b8a57f0aaa2882d444ca44b2b9b333d22a4df",
      "tree": "d851c923f85566572112d4c0f884cff388a3cc05",
      "parents": [
        "805a6af8dba5dfdd35ec35dc52ec0122400b2610",
        "ea04018e6bc5ddb2f0466c0e5b986bd4901b7e8e"
      ],
      "author": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Jan 06 11:42:52 2012 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Fri Jan 06 11:42:52 2012 -0800"
      },
      "message": "Merge branch \u0027driver-core-next\u0027 into Linux 3.2\n\nThis resolves the conflict in the arch/arm/mach-s3c64xx/s3c6400.c file,\nand it fixes the build error in the arch/x86/kernel/microcode_core.c\nfile, that the merge did not catch.\n\nThe microcode_core.c patch was provided by Stephen Rothwell\n\u003csfr@canb.auug.org.au\u003e who was invaluable in the merge issues involved\nwith the large sysdev removal process in the driver-core tree.\n\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "0db49b72bce26341274b74fd968501489a361ae3",
      "tree": "cdb076827aefb38d719d4c42f8ef291c36072fa8",
      "parents": [
        "35b740e4662ef386f0c60e1b60aaf5b44db9914c",
        "1ac9bc6943edf7d181b4b1cc734981350d4f6bae"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:33:28 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:44:54 2012 -0800"
      },
      "message": "Merge branch \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027sched-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)\n  sched/tracing: Add a new tracepoint for sleeptime\n  sched: Disable scheduler warnings during oopses\n  sched: Fix cgroup movement of waking process\n  sched: Fix cgroup movement of newly created process\n  sched: Fix cgroup movement of forking process\n  sched: Remove cfs bandwidth period check in tg_set_cfs_period()\n  sched: Fix load-balance lock-breaking\n  sched: Replace all_pinned with a generic flags field\n  sched: Only queue remote wakeups when crossing cache boundaries\n  sched: Add missing rcu_dereference() around -\u003ereal_parent usage\n  [S390] fix cputime overflow in uptime_proc_show\n  [S390] cputime: add sparse checking and cleanup\n  sched: Mark parent and real_parent as __rcu\n  sched, nohz: Fix missing RCU read lock\n  sched, nohz: Set the NOHZ_BALANCE_KICK flag for idle load balancer\n  sched, nohz: Fix the idle cpu check in nohz_idle_balance\n  sched: Use jump_labels for sched_feat\n  sched/accounting: Fix parameter passing in task_group_account_field\n  sched/accounting: Fix user/system tick double accounting\n  sched/accounting: Re-use scheduler statistics for the root cgroup\n  ...\n\nFix up conflicts in\n - arch/ia64/include/asm/cputime.h, include/asm-generic/cputime.h\n\tusecs_to_cputime64() vs the sparse cleanups\n - kernel/sched/fair.c, kernel/time/tick-sched.c\n\tscheduler changes in multiple branches\n"
    },
    {
      "commit": "423d091dfe58d3109d84c408810a7cfa82f6f184",
      "tree": "43c4385d1dc7219582f924d42db1f3e203a577bd",
      "parents": [
        "1483b3823542c9721eddf09a077af1e02ac96b50",
        "919b83452b2e7c1dbced0456015508b4b9585db3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:40 2012 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Jan 06 08:02:40 2012 -0800"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (64 commits)\n  cpu: Export cpu_up()\n  rcu: Apply ACCESS_ONCE() to rcu_boost() return value\n  Revert \"rcu: Permit rt_mutex_unlock() with irqs disabled\"\n  docs: Additional LWN links to RCU API\n  rcu: Augment rcu_batch_end tracing for idle and callback state\n  rcu: Add rcutorture tests for srcu_read_lock_raw()\n  rcu: Make rcutorture test for hotpluggability before offlining CPUs\n  driver-core/cpu: Expose hotpluggability to the rest of the kernel\n  rcu: Remove redundant rcu_cpu_stall_suppress declaration\n  rcu: Adaptive dyntick-idle preparation\n  rcu: Keep invoking callbacks if CPU otherwise idle\n  rcu: Irq nesting is always 0 on rcu_enter_idle_common\n  rcu: Don\u0027t check irq nesting from rcu idle entry/exit\n  rcu: Permit dyntick-idle with callbacks pending\n  rcu: Document same-context read-side constraints\n  rcu: Identify dyntick-idle CPUs on first force_quiescent_state() pass\n  rcu: Remove dynticks false positives and RCU failures\n  rcu: Reduce latency of rcu_prepare_for_idle()\n  rcu: Eliminate RCU_FAST_NO_HZ grace-period hang\n  rcu: Avoid needlessly IPIing CPUs at GP end\n  ...\n"
    },
    {
      "commit": "3b87487ac5008072f138953b07505a7e3493327f",
      "tree": "b70e9422c1abe7ce0e771a52202572dbb0ee25aa",
      "parents": [
        "995b4103a78b9bef0ff834f9ecac42b2b56e01a8"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:24:40 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Fri Dec 30 13:24:40 2011 -0800"
      },
      "message": "Revert \"clockevents: Set noop handler in clockevents_exchange_device()\"\n\nThis reverts commit de28f25e8244c7353abed8de0c7792f5f883588c.\n\nIt results in resume problems for various people. See for example\n\n  http://thread.gmane.org/gmane.linux.kernel/1233033\n  http://thread.gmane.org/gmane.linux.kernel/1233389\n  http://thread.gmane.org/gmane.linux.kernel/1233159\n  http://thread.gmane.org/gmane.linux.kernel/1227868/focus\u003d1230877\n\nand the fedora and ubuntu bug reports\n\n  https://bugzilla.redhat.com/show_bug.cgi?id\u003d767248\n  https://bugs.launchpad.net/ubuntu/+source/linux/+bug/904569\n\nwhich got bisected down to the stable version of this commit.\n\nReported-by: Jonathan Nieder \u003cjrnieder@gmail.com\u003e\nReported-by: Phil Miller \u003cmille121@illinois.edu\u003e\nReported-by: Philip Langdale \u003cphilipl@overt.org\u003e\nReported-by: Tim Gardner \u003ctim.gardner@canonical.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Greg KH \u003cgregkh@suse.de\u003e\nCc: stable@kernel.org    # for stable kernels that applied the original\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n"
    },
    {
      "commit": "7239f65cf364180cdb100a4ed211b2a9f9a72119",
      "tree": "a23b2abe177b890303aa02c58ce964eacf2166df",
      "parents": [
        "4a858cfc9af87cc60b3113c3b7b377a4305eac6a"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Dec 21 16:12:37 2011 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 21 16:12:37 2011 -0800"
      },
      "message": "clockevents: remove sysdev.h\n\nThis isn\u0027t needed in the clockevents.c file, and the header file is\ngoing away soon, so just remove the #include\n\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "b1b73d095084e754562961c443aa8f6587a55f8e",
      "tree": "f2927ab364b329175442b6abece86cba3528f969",
      "parents": [
        "c3b79770e51ab1fd4201f3b54edf30113b9ce74f"
      ],
      "author": {
        "name": "Kusanagi Kouichi",
        "email": "slash@ac.auone-net.jp",
        "time": "Mon Dec 19 18:13:19 2011 +0900"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Mon Dec 19 11:41:40 2011 +0100"
      },
      "message": "time/clocksource: Fix kernel-doc warnings\n\nFix various KernelDoc build warnings.\n\nSigned-off-by: Kusanagi Kouichi \u003cslash@ac.auone-net.jp\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20111219091320.0D5AF6FC03D@msa105.auone-net.jp\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "6a54aebf6978e9f296a4d3da3e40af425163c22e",
      "tree": "8217c7114db02d8b69c22fc44880749426949bc3",
      "parents": [
        "067491b7313c41f49607fce782d29344d1472587",
        "dc47ce90c3a822cd7c9e9339fe4d5f61dcb26b50"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 15 08:21:21 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Thu Dec 15 08:21:30 2011 +0100"
      },
      "message": "Merge commit \u0027v3.2-rc5\u0027 into sched/core\n\nMerge reason: Pick up the latest fixes.\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "d369a5d8fc70710236ae2d06a0e42dce483712df",
      "tree": "5f52ec10e01f46e575e358ec21302b3cc56693e2",
      "parents": [
        "15916a123e59b84d2fdfcccac84c99d1777f2a45"
      ],
      "author": {
        "name": "Kay Sievers",
        "email": "kay.sievers@vrfy.org",
        "time": "Wed Dec 14 15:28:51 2011 -0800"
      },
      "committer": {
        "name": "Greg Kroah-Hartman",
        "email": "gregkh@suse.de",
        "time": "Wed Dec 14 15:28:51 2011 -0800"
      },
      "message": "clocksource: convert sysdev_class to a regular subsystem\n\nAfter all sysdev classes are ported to regular driver core entities, the\nsysdev implementation will be entirely removed from the kernel.\n\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Kay Sievers \u003ckay.sievers@vrfy.org\u003e\nSigned-off-by: Greg Kroah-Hartman \u003cgregkh@suse.de\u003e\n"
    },
    {
      "commit": "1268fbc746ea1cd279886a740dcbad4ba5232225",
      "tree": "dc0ff36b4114992a3f67479e25132f5e99f36b9e",
      "parents": [
        "b58bdccaa8d908e0f71dae396468a0d3f7bb3125"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Thu Nov 17 18:48:14 2011 +0100"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:57 2011 -0800"
      },
      "message": "nohz: Remove tick_nohz_idle_enter_norcu() / tick_nohz_idle_exit_norcu()\n\nThose two APIs were provided to optimize the calls of\ntick_nohz_idle_enter() and rcu_idle_enter() into a single\nirq disabled section. This way no interrupt happening in-between would\nneedlessly process any RCU job.\n\nNow we are talking about an optimization for which benefits\nhave yet to be measured. Let\u0027s start simple and completely decouple\nidle rcu and dyntick idle logics to simplify.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "2bbb6817c0ac1b5f2a68d720f364f98eeb1ac4fd",
      "tree": "05bb5ba54671a8eaeca4fe4406a75e820317e473",
      "parents": [
        "280f06774afedf849f0b34248ed6aff57d0f6908"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Sat Oct 08 16:01:00 2011 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:36 2011 -0800"
      },
      "message": "nohz: Allow rcu extended quiescent state handling seperately from tick stop\n\nIt is assumed that rcu won\u0027t be used once we switch to tickless\nmode and until we restart the tick. However this is not always\ntrue, as in x86-64 where we dereference the idle notifiers after\nthe tick is stopped.\n\nTo prepare for fixing this, add two new APIs:\ntick_nohz_idle_enter_norcu() and tick_nohz_idle_exit_norcu().\n\nIf no use of RCU is made in the idle loop between\ntick_nohz_enter_idle() and tick_nohz_exit_idle() calls, the arch\nmust instead call the new *_norcu() version such that the arch doesn\u0027t\nneed to call rcu_idle_enter() and rcu_idle_exit().\n\nOtherwise the arch must call tick_nohz_enter_idle() and\ntick_nohz_exit_idle() and also call explicitly:\n\n- rcu_idle_enter() after its last use of RCU before the CPU is put\nto sleep.\n- rcu_idle_exit() before the first use of RCU after the CPU is woken\nup.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "280f06774afedf849f0b34248ed6aff57d0f6908",
      "tree": "62ef683226d0569c0e6c3ba34ab2e6d85b2e047f",
      "parents": [
        "867f236bd12f5091df6dc7cc75f94d7fd982d78a"
      ],
      "author": {
        "name": "Frederic Weisbecker",
        "email": "fweisbec@gmail.com",
        "time": "Fri Oct 07 18:22:06 2011 +0200"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:35 2011 -0800"
      },
      "message": "nohz: Separate out irq exit and idle loop dyntick logic\n\nThe tick_nohz_stop_sched_tick() function, which tries to delay\nthe next timer tick as long as possible, can be called from two\nplaces:\n\n- From the idle loop to start the dytick idle mode\n- From interrupt exit if we have interrupted the dyntick\nidle mode, so that we reprogram the next tick event in\ncase the irq changed some internal state that requires this\naction.\n\nThere are only few minor differences between both that\nare handled by that function, driven by the ts-\u003einidle\ncpu variable and the inidle parameter. The whole guarantees\nthat we only update the dyntick mode on irq exit if we actually\ninterrupted the dyntick idle mode, and that we enter in RCU extended\nquiescent state from idle loop entry only.\n\nSplit this function into:\n\n- tick_nohz_idle_enter(), which sets ts-\u003einidle to 1, enters\ndynticks idle mode unconditionally if it can, and enters into RCU\nextended quiescent state.\n\n- tick_nohz_irq_exit() which only updates the dynticks idle mode\nwhen ts-\u003einidle is set (ie: if tick_nohz_idle_enter() has been called).\n\nTo maintain symmetry, tick_nohz_restart_sched_tick() has been renamed\ninto tick_nohz_idle_exit().\n\nThis simplifies the code and micro-optimize the irq exit path (no need\nfor local_irq_save there). This also prepares for the split between\ndynticks and rcu extended quiescent state logics. We\u0027ll need this split to\nfurther fix illegal uses of RCU in extended quiescent states in the idle\nloop.\n\nSigned-off-by: Frederic Weisbecker \u003cfweisbec@gmail.com\u003e\nCc: Mike Frysinger \u003cvapier@gentoo.org\u003e\nCc: Guan Xuetao \u003cgxt@mprc.pku.edu.cn\u003e\nCc: David Miller \u003cdavem@davemloft.net\u003e\nCc: Chris Metcalf \u003ccmetcalf@tilera.com\u003e\nCc: Hans-Christian Egtvedt \u003chans-christian.egtvedt@atmel.com\u003e\nCc: Ralf Baechle \u003cralf@linux-mips.org\u003e\nCc: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nCc: Ingo Molnar \u003cmingo@redhat.com\u003e\nCc: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: H. Peter Anvin \u003chpa@zytor.com\u003e\nCc: Russell King \u003clinux@arm.linux.org.uk\u003e\nCc: Paul Mackerras \u003cpaulus@samba.org\u003e\nCc: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nCc: Paul Mundt \u003clethal@linux-sh.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "9b2e4f1880b789be1f24f9684f7a54b90310b5c0",
      "tree": "1fa922e0616e298837a7079cb49118188a58186c",
      "parents": [
        "b804cb9e91c6c304959c69d4f9daeef4ffdba71c"
      ],
      "author": {
        "name": "Paul E. McKenney",
        "email": "paul.mckenney@linaro.org",
        "time": "Fri Sep 30 12:10:22 2011 -0700"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Sun Dec 11 10:31:24 2011 -0800"
      },
      "message": "rcu: Track idleness independent of idle tasks\n\nEarlier versions of RCU used the scheduling-clock tick to detect idleness\nby checking for the idle task, but handled idleness differently for\nCONFIG_NO_HZ\u003dy.  But there are now a number of uses of RCU read-side\ncritical sections in the idle task, for example, for tracing.  A more\nfine-grained detection of idleness is therefore required.\n\nThis commit presses the old dyntick-idle code into full-time service,\nso that rcu_idle_enter(), previously known as rcu_enter_nohz(), is\nalways invoked at the beginning of an idle loop iteration.  Similarly,\nrcu_idle_exit(), previously known as rcu_exit_nohz(), is always invoked\nat the end of an idle-loop iteration.  This allows the idle task to\nuse RCU everywhere except between consecutive rcu_idle_enter() and\nrcu_idle_exit() calls, in turn allowing architecture maintainers to\nspecify exactly where in the idle loop that RCU may be used.\n\nBecause some of the userspace upcall uses can result in what looks\nto RCU like half of an interrupt, it is not possible to expect that\nthe irq_enter() and irq_exit() hooks will give exact counts.  This\npatch therefore expands the -\u003edynticks_nesting counter to 64 bits\nand uses two separate bitfields to count process/idle transitions\nand interrupt entry/exit transitions.  It is presumed that userspace\nupcalls do not happen in the idle loop or from usermode execution\n(though usermode might do a system call that results in an upcall).\nThe counter is hard-reset on each process/idle transition, which\navoids the interrupt entry/exit error from accumulating.  Overflow\nis avoided by the 64-bitness of the -\u003edyntick_nesting counter.\n\nThis commit also adds warnings if a non-idle task asks RCU to enter\nidle state (and these checks will need some adjustment before applying\nFrederic\u0027s OS-jitter patches (http://lkml.org/lkml/2011/10/7/246).\nIn addition, validation of -\u003edynticks and -\u003edynticks_nesting is added.\n\nSigned-off-by: Paul E. McKenney \u003cpaul.mckenney@linaro.org\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\nReviewed-by: Josh Triplett \u003cjosh@joshtriplett.org\u003e\n"
    },
    {
      "commit": "c9c024b3f3e07d087974db4c0dc46217fff3a6c0",
      "tree": "4dd125eef6c2f332d641876fac0e6f522b1d75c5",
      "parents": [
        "d68fb11c3dae75c8331538dcf083a65e697cc034"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 05 21:20:23 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Dec 06 11:38:32 2011 +0100"
      },
      "message": "alarmtimers: Fix time comparison\n\nThe expiry function compares the timer against current time and does\nnot expire the timer when the expiry time is \u003e\u003d now. That\u0027s wrong. If\nthe timer is set for now, then it must expire.\n\nMake the condition expiry \u003e now for breaking out the loop.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nAcked-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: stable@kernel.org\n"
    },
    {
      "commit": "69e1e811dcc436a6b129dbef273ad9ec22d095ce",
      "tree": "f07179af4989178733727683796927948db9059a",
      "parents": [
        "1c792db7f7957e2e34b9a164f08200e36a25dfd0"
      ],
      "author": {
        "name": "Suresh Siddha",
        "email": "suresh.b.siddha@intel.com",
        "time": "Thu Dec 01 17:07:33 2011 -0800"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Dec 06 09:06:32 2011 +0100"
      },
      "message": "sched, nohz: Track nr_busy_cpus in the sched_group_power\n\nIntroduce nr_busy_cpus in the struct sched_group_power [Not in sched_group\nbecause sched groups are duplicated for the SD_OVERLAP scheduler domain]\nand for each cpu that enters and exits idle, this parameter will\nbe updated in each scheduler group of the scheduler domain that this cpu\nbelongs to.\n\nTo avoid the frequent update of this state as the cpu enters\nand exits idle, the update of the stat during idle exit is\ndelayed to the first timer tick that happens after the cpu becomes busy.\nThis is done using NOHZ_IDLE flag in the struct rq\u0027s nohz_flags.\n\nSigned-off-by: Suresh Siddha \u003csuresh.b.siddha@intel.com\u003e\nSigned-off-by: Peter Zijlstra \u003ca.p.zijlstra@chello.nl\u003e\nCc: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nLink: http://lkml.kernel.org/r/20111202010832.555984323@sbsiddha-desk.sc.intel.com\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "40c043b077c6e377c8440d71563c055d0c4f0f0a",
      "tree": "e0c1d672a1156d7840d3ef650ba1aa963c68e13a",
      "parents": [
        "f14aa871c7e1e58a01bf33a562ac314fae64517c",
        "de28f25e8244c7353abed8de0c7792f5f883588c"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 05 16:53:43 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Dec 05 16:53:43 2011 -0800"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  clockevents: Set noop handler in clockevents_exchange_device()\n  tick-broadcast: Stop active broadcast device when replacing it\n  clocksource: Fix bug with max_deferment margin calculation\n  rtc: Fix some bugs that allowed accumulating time drift in suspend/resume\n  rtc: Disable the alarm in the hardware\n"
    },
    {
      "commit": "0518469d0a32be1e6dd8850ff274d52d72cdb52d",
      "tree": "c13038d099e04208feae565947783cf92ceae9ee",
      "parents": [
        "28a00184be261e3dc152ba0d664a067bbe235b6a",
        "f5a54dd7952e9032785cd1ef0dde72cd61025341"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 05 22:13:49 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Dec 05 22:13:49 2011 +0100"
      },
      "message": "Merge branch \u0027fortglx/3.3/tip/timers/core\u0027 of git://git.linaro.org/people/jstultz/linux into timers/core\n"
    },
    {
      "commit": "de28f25e8244c7353abed8de0c7792f5f883588c",
      "tree": "03f94969b51c454f5da2b52cc311e510c28c2080",
      "parents": [
        "c1be84309c58b1e7c6d626e28fba41a22b364c3d"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Dec 02 16:02:45 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Dec 02 16:07:23 2011 +0100"
      },
      "message": "clockevents: Set noop handler in clockevents_exchange_device()\n\nIf a device is shutdown, then there might be a pending interrupt,\nwhich will be processed after we reenable interrupts, which causes the\noriginal handler to be run. If the old handler is the (broadcast)\nperiodic handler the shutdown state might hang the kernel completely.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "c1be84309c58b1e7c6d626e28fba41a22b364c3d",
      "tree": "4d4db4e9ef8ceb5b762d4c2334e68b73858a1b07",
      "parents": [
        "b1f919664d04a8d0ba29cb76673c7ca3325a2006"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Dec 02 12:34:16 2011 +0100"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Fri Dec 02 16:06:54 2011 +0100"
      },
      "message": "tick-broadcast: Stop active broadcast device when replacing it\n\nWhen a better rated broadcast device is installed, then the current\nactive device is not disabled, which results in two running broadcast\ndevices.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: stable@vger.kernel.org\n"
    },
    {
      "commit": "b1f919664d04a8d0ba29cb76673c7ca3325a2006",
      "tree": "eeaafc566a9023a794eaefcda8a5201ba7ffa9bc",
      "parents": [
        "6a8943d9ec2567572fca25cf69ad45844d0141a3"
      ],
      "author": {
        "name": "Yang Honggang (Joseph)",
        "email": "eagle.rtlinux@gmail.com",
        "time": "Thu Dec 01 22:22:41 2011 -0500"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Dec 01 15:50:00 2011 -0800"
      },
      "message": "clocksource: Fix bug with max_deferment margin calculation\n\nIn order to leave a margin of 12.5% we should \u003e\u003e 3 not \u003e\u003e 5.\n\nCC: stable@kernel.org\nSigned-off-by: Yang Honggang (Joseph) \u003ceagle.rtlinux@gmail.com\u003e\n[jstultz: Modified commit subject]\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "a13b032776379fa6e2bfccf798969ca51e5fb052",
      "tree": "02d1d63341f5864c7515809e38845a60793619b4",
      "parents": [
        "babf000e62b812a602657bef68aeef75625206f2"
      ],
      "author": {
        "name": "Paul Bolle",
        "email": "pebolle@tiscali.nl",
        "time": "Thu Nov 24 12:27:26 2011 +0100"
      },
      "committer": {
        "name": "Jiri Kosina",
        "email": "jkosina@suse.cz",
        "time": "Tue Nov 29 11:56:49 2011 +0100"
      },
      "message": "clockevents: drop unknown Kconfig symbol GENERIC_CLOCKEVENTS_MIGR\n\nThere\u0027s no Kconfig symbol GENERIC_CLOCKEVENTS_MIGR, so the check for it\nwill always fail.\n\nSigned-off-by: Paul Bolle \u003cpebolle@tiscali.nl\u003e\nSigned-off-by: Jiri Kosina \u003cjkosina@suse.cz\u003e\n"
    },
    {
      "commit": "c28800a9c3caaf387d85ac665a25ebe99e480295",
      "tree": "401ba805709a65a9f5c1919b3dc763c70b64b38f",
      "parents": [
        "ce8f55c2a0ff652480c12a4f1f22ff5ce15e3a22",
        "27c9cd7e601632b3794e1c3344d37b86917ffb43"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 28 08:43:52 2011 -0800"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Mon Nov 28 08:43:52 2011 -0800"
      },
      "message": "Merge branch \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027timers-urgent-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:\n  hrtimer: Fix extra wakeups from __remove_hrtimer()\n  timekeeping: add arch_offset hook to ktime_get functions\n  clocksource: Avoid selecting mult values that might overflow when adjusted\n  time: Improve documentation of timekeeeping_adjust()\n"
    },
    {
      "commit": "3f86f28ffc298e168692ce88791c1d64a03b655b",
      "tree": "0b0c8fa3e63e1f3e41f5da857f64d5395eb0d100",
      "parents": [
        "c9fad429d438fdd736ac6816b75d16c4cd626acd"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Oct 27 17:41:17 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 21 19:00:55 2011 -0800"
      },
      "message": "time: Fix spelling mistakes in new comments\n\nFixup spelling issues caught by Richard\n\nCC: Richard Cochran \u003crichardcochran@gmail.com\u003e\nCC: Chen Jie \u003cchenj@lemote.com\u003e\nCC: Steven Rostedt \u003crostedt@goodmis.org\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "c9fad429d438fdd736ac6816b75d16c4cd626acd",
      "tree": "165c5edface9e59d4634ff2a5d0e6dd135d9532a",
      "parents": [
        "367177e50189ab0a983b52f3d3f7eb2a1927db71"
      ],
      "author": {
        "name": "Dan McGee",
        "email": "dpmcgee@gmail.com",
        "time": "Mon Oct 17 13:58:43 2011 -0500"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Nov 21 19:00:46 2011 -0800"
      },
      "message": "time: fix bogus comment in timekeeping_get_ns_raw\n\nThe whole point of this function is to return a value not touched by\nNTP; unfortunately the comment got copied wholesale without adjustment\nfrom the timekeeping_get_ns function above.\n\nSigned-off-by: Dan McGee \u003cdpmcgee@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "d004e024058a0eaca097513ce62cbcf978913e0a",
      "tree": "94191734e099dd46b8998d813125efaa4a8a37d6",
      "parents": [
        "367177e50189ab0a983b52f3d3f7eb2a1927db71"
      ],
      "author": {
        "name": "Hector Palacios",
        "email": "hector.palacios@digi.com",
        "time": "Mon Nov 14 11:15:25 2011 +0100"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Nov 17 14:57:19 2011 -0800"
      },
      "message": "timekeeping: add arch_offset hook to ktime_get functions\n\nktime_get and ktime_get_ts were calling timekeeping_get_ns()\nbut later they were not calling arch_gettimeoffset() so architectures\nusing this mechanism returned 0 ns when calling these functions.\n\nThis happened for example when running Busybox\u0027s ping which calls\nsyscall(__NR_clock_gettime, CLOCK_MONOTONIC, ts) which eventually\ncalls ktime_get. As a result the returned ping travel time was zero.\n\nCC: stable@kernel.org\nSigned-off-by: Hector Palacios \u003chector.palacios@digi.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "367177e50189ab0a983b52f3d3f7eb2a1927db71",
      "tree": "fed5e93eb35d002e21cb3c2fafbfe38062aaa266",
      "parents": [
        "c2bc11113c50449f23c40b724fe410fc2380a8e9",
        "d65670a78cdbfae94f20a9e05ec705871d7cdf2b"
      ],
      "author": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:10:42 2011 +0100"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Nov 11 08:10:42 2011 +0100"
      },
      "message": "Merge branch \u0027formingo/3.2/tip/timers/core\u0027 of git://git.linaro.org/people/jstultz/linux into timers/core\n\nConflicts:\n\tkernel/time/timekeeping.c\n"
    },
    {
      "commit": "d65670a78cdbfae94f20a9e05ec705871d7cdf2b",
      "tree": "3c16dedb75fa5ab6c0fdc072cc8d73df01d43a17",
      "parents": [
        "e35f95b36e43f67a6f806172555a152c11ea0a78"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Mon Oct 31 17:06:35 2011 -0400"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Nov 10 11:27:08 2011 -0800"
      },
      "message": "clocksource: Avoid selecting mult values that might overflow when adjusted\n\nFor some frequencies, the clocks_calc_mult_shift() function will\nunfortunately select mult values very close to 0xffffffff.  This\nhas the potential to overflow when NTP adjusts the clock, adding\nto the mult value.\n\nThis patch adds a clocksource.maxadj value, which provides\nan approximation of an 11% adjustment(NTP limits adjustments to\n500ppm and the tick adjustment is limited to 10%), which could\nbe made to the clocksource.mult value. This is then used to both\ncheck that the current mult value won\u0027t overflow/underflow, as\nwell as warning us if the timekeeping_adjust() code pushes over\nthat 11% boundary.\n\nv2: Fix max_adjustment calculation, and improve WARN_ONCE\nmessages.\n\nv3: Don\u0027t warn before maxadj has actually been set\n\nCC: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nCC: David Daney \u003cddaney.cavm@gmail.com\u003e\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCC: Chen Jie \u003cchenj@lemote.com\u003e\nCC: zhangfx \u003czhangfx@lemote.com\u003e\nCC: stable@kernel.org\nReported-by: Chen Jie \u003cchenj@lemote.com\u003e\nReported-by: zhangfx \u003czhangfx@lemote.com\u003e\nTested-by: Yong Zhang \u003cyong.zhang0@gmail.com\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    },
    {
      "commit": "6e5fdeedca610df600aabc393c4b1f44b128fe49",
      "tree": "52a34c30bef1501f19c691a759b81b6f2603cd32",
      "parents": [
        "bdfa97bf7263657b83bc5b68567a3a60dde84c5b"
      ],
      "author": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Thu May 26 16:00:52 2011 -0400"
      },
      "committer": {
        "name": "Paul Gortmaker",
        "email": "paul.gortmaker@windriver.com",
        "time": "Mon Oct 31 19:30:05 2011 -0400"
      },
      "message": "kernel: Fix files explicitly needing EXPORT_SYMBOL infrastructure\n\nThese files were getting \u003clinux/module.h\u003e via an implicit non-obvious\npath, but we want to crush those out of existence since they cost\ntime during compiles of processing thousands of lines of headers\nfor no reason.  Give them the lightweight header that just contains\nthe EXPORT_SYMBOL infrastructure.\n\nSigned-off-by: Paul Gortmaker \u003cpaul.gortmaker@windriver.com\u003e\n"
    },
    {
      "commit": "c2bc11113c50449f23c40b724fe410fc2380a8e9",
      "tree": "f5a6a5f9c199d6b3ed7a973dfb7556ad2af2bf5a",
      "parents": [
        "e35f95b36e43f67a6f806172555a152c11ea0a78"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Oct 27 18:12:42 2011 -0700"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Fri Oct 28 08:57:38 2011 +0200"
      },
      "message": "time: Improve documentation of timekeeeping_adjust()\n\nAfter getting a number of questions in private emails about the\nmath around admittedly very complex timekeeping_adjust() and\ntimekeeping_big_adjust(), I figure the code needs some better\ncomments.\n\nHopefully the explanations are clear enough and don\u0027t muddy the\nwater any worse.\n\nStill needs documentation for ntp_error, but I couldn\u0027t recall\nexactly the full explanation behind the code that\u0027s there\n(although I do recall once working it out when Roman first\nproposed it). Given a bit more time I can probably work it out,\nbut I don\u0027t want to hold back this documentation until then.\n\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\nCc: Chen Jie \u003cchenj@lemote.com\u003e\nCc: Steven Rostedt \u003crostedt@goodmis.org\u003e\nLink: http://lkml.kernel.org/r/1319764362-32367-1-git-send-email-john.stultz@linaro.org\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "39adff5f69d6849ca22353a88058c9f8630528c0",
      "tree": "b0c2d2de77ebc5c97fd19c29b81eeb03549553f8",
      "parents": [
        "8a4a8918ed6e4a361f4df19f199bbc2d0a89a46c",
        "e35f95b36e43f67a6f806172555a152c11ea0a78"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:15:03 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 17:15:03 2011 +0200"
      },
      "message": "Merge branch \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027timers-core-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (23 commits)\n  time, s390: Get rid of compile warning\n  dw_apb_timer: constify clocksource name\n  time: Cleanup old CONFIG_GENERIC_TIME references that snuck in\n  time: Change jiffies_to_clock_t() argument type to unsigned long\n  alarmtimers: Fix error handling\n  clocksource: Make watchdog reset lockless\n  posix-cpu-timers: Cure SMP accounting oddities\n  s390: Use direct ktime path for s390 clockevent device\n  clockevents: Add direct ktime programming function\n  clockevents: Make minimum delay adjustments configurable\n  nohz: Remove \"Switched to NOHz mode\" debugging messages\n  proc: Consider NO_HZ when printing idle and iowait times\n  nohz: Make idle/iowait counter update conditional\n  nohz: Fix update_ts_time_stat idle accounting\n  cputime: Clean up cputime_to_usecs and usecs_to_cputime macros\n  alarmtimers: Rework RTC device selection using class interface\n  alarmtimers: Add try_to_cancel functionality\n  alarmtimers: Add more refined alarm state tracking\n  alarmtimers: Remove period from alarm structure\n  alarmtimers: Remove interval cap limit hack\n  ...\n"
    },
    {
      "commit": "19b4a8d520a6e0176dd52aaa429261ad4fcaa545",
      "tree": "6dcf5a780718fc50b9cd79cc803daa7c7e080a02",
      "parents": [
        "3cfef9524677a4ecb392d6fbffe6ebce6302f1d4",
        "048b718029033af117870d3da47da12995be14a3"
      ],
      "author": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:26:53 2011 +0200"
      },
      "committer": {
        "name": "Linus Torvalds",
        "email": "torvalds@linux-foundation.org",
        "time": "Wed Oct 26 16:26:53 2011 +0200"
      },
      "message": "Merge branch \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip\n\n* \u0027core-rcu-for-linus\u0027 of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (45 commits)\n  rcu: Move propagation of -\u003ecompleted from rcu_start_gp() to rcu_report_qs_rsp()\n  rcu: Remove rcu_needs_cpu_flush() to avoid false quiescent states\n  rcu: Wire up RCU_BOOST_PRIO for rcutree\n  rcu: Make rcu_torture_boost() exit loops at end of test\n  rcu: Make rcu_torture_fqs() exit loops at end of test\n  rcu: Permit rt_mutex_unlock() with irqs disabled\n  rcu: Avoid having just-onlined CPU resched itself when RCU is idle\n  rcu: Suppress NMI backtraces when stall ends before dump\n  rcu: Prohibit grace periods during early boot\n  rcu: Simplify unboosting checks\n  rcu: Prevent early boot set_need_resched() from __rcu_pending()\n  rcu: Dump local stack if cannot dump all CPUs\u0027 stacks\n  rcu: Move __rcu_read_unlock()\u0027s barrier() within if-statement\n  rcu: Improve rcu_assign_pointer() and RCU_INIT_POINTER() documentation\n  rcu: Make rcu_assign_pointer() unconditionally insert a memory barrier\n  rcu: Make rcu_implicit_dynticks_qs() locals be correct size\n  rcu: Eliminate in_irq() checks in rcu_enter_nohz()\n  nohz: Remove nohz_cpu_mask\n  rcu: Document interpretation of RCU-lockdep splats\n  rcu: Allow rcutorture\u0027s stat_interval parameter to be changed at runtime\n  ...\n"
    },
    {
      "commit": "fc0763f53e3ff6a6bfa66934662a3446b9ca6f16",
      "tree": "2671d3f6275c9707a620032658ecb05025e4e9fa",
      "parents": [
        "d7bd2d68aa2ee2738a10c8ad9346b805e4ab2e1c"
      ],
      "author": {
        "name": "Shi, Alex",
        "email": "alex.shi@intel.com",
        "time": "Thu Jul 28 14:56:12 2011 +0800"
      },
      "committer": {
        "name": "Paul E. McKenney",
        "email": "paulmck@linux.vnet.ibm.com",
        "time": "Wed Sep 28 21:38:29 2011 -0700"
      },
      "message": "nohz: Remove nohz_cpu_mask\n\nRCU no longer uses this global variable, nor does anyone else.  This\ncommit therefore removes this variable.  This reduces memory footprint\nand also removes some atomic instructions and memory barriers from\nthe dyntick-idle path.\n\nSigned-off-by: Alex Shi \u003calex.shi@intel.com\u003e\nSigned-off-by: Paul E. McKenney \u003cpaulmck@linux.vnet.ibm.com\u003e\n"
    },
    {
      "commit": "4523f6ada86853750565c68e17126af2e3df9b8a",
      "tree": "cf43d425a52ef79b73abbeff07524b77cee48364",
      "parents": [
        "9fb60336253edf73dedc527b2aa2bf32eae0d6da"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Sep 14 10:54:29 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Sep 14 10:54:29 2011 +0200"
      },
      "message": "alarmtimers: Fix error handling\n\ncommit 8bc0daf (alarmtimers: Rework RTC device selection using class\ninterface) did not implement required error checks. Add them.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "2737c49f29a29f3d3645ba0778aa7a8798f32249",
      "tree": "28a56a7f4b31abe2ef79ff535755677781a70c3a",
      "parents": [
        "ddb6c9b58a19edcfac93ac670b066c836ff729f1"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Wed Jun 16 16:58:34 2010 +0200"
      },
      "committer": {
        "name": "Ingo Molnar",
        "email": "mingo@elte.hu",
        "time": "Tue Sep 13 11:12:00 2011 +0200"
      },
      "message": "locking, timer_stats: Annotate table_lock as raw\n\nThe table_lock lock can be taken in atomic context and therefore\ncannot be preempted on -rt - annotate it.\n\nIn mainline this change documents the low level nature of\nthe lock - otherwise there\u0027s no functional difference. Lockdep\nand Sparse checking will work as usual.\n\nReported-by: Andreas Sundebo \u003ckernel@sundebo.dk\u003e\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nTested-by: Andreas Sundebo \u003ckernel@sundebo.dk\u003e\n\nSigned-off-by: Ingo Molnar \u003cmingo@elte.hu\u003e\n"
    },
    {
      "commit": "9fb60336253edf73dedc527b2aa2bf32eae0d6da",
      "tree": "926cb7ca98eaacea06c8b951ee8b3a1330522c82",
      "parents": [
        "e8abccb719377af63cb0f1fed289db405e3def16"
      ],
      "author": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Mon Sep 12 13:32:23 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Tue Sep 13 09:58:29 2011 +0200"
      },
      "message": "clocksource: Make watchdog reset lockless\n\nKGDB needs to trylock watchdog_lock when trying to reset the\nclocksource watchdog after the system has been stopped to avoid a\npotential deadlock. When the trylock fails TSC usually becomes\nunstable.\n\nWe can be more clever by using an atomic counter and checking it in\nthe clocksource_watchdog callback. We restart the watchdog whenever\nthe counter is \u003e 0 and only decrement the counter when we ran through\na full update cycle.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nCc: John Stultz \u003cjohnstul@us.ibm.com\u003e\nAcked-by: Jason Wessel \u003cjason.wessel@windriver.com\u003e\nCc: Peter Zijlstra \u003cpeterz@infradead.org\u003e\nLink: http://lkml.kernel.org/r/alpine.LFD.2.02.1109121326280.2723@ionos\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "65516f8a7c2028381f0dae4c16ddb621c96158cc",
      "tree": "1f6192832c77e25499331b074398e165c1220197",
      "parents": [
        "d1748302f70be7469809809283fe164156a34231"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Aug 23 15:29:43 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:56 2011 +0200"
      },
      "message": "clockevents: Add direct ktime programming function\n\nThere is at least one architecture (s390) with a sane clockevent device\nthat can be programmed with the equivalent of a ktime. No need to create\na delta against the current time, the ktime can be used directly.\n\nA new clock device function \u0027set_next_ktime\u0027 is introduced that is called\nwith the unmodified ktime for the timer if the clock event device has the \nCLOCK_EVT_FEAT_KTIME bit set.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110823133142.815350967@de.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "d1748302f70be7469809809283fe164156a34231",
      "tree": "c81137f4126f2fe1451c28441415c1cd0fa0f7cd",
      "parents": [
        "29c158e81c733ac7d6a75c5ee929f34fb9f92983"
      ],
      "author": {
        "name": "Martin Schwidefsky",
        "email": "schwidefsky@de.ibm.com",
        "time": "Tue Aug 23 15:29:42 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:56 2011 +0200"
      },
      "message": "clockevents: Make minimum delay adjustments configurable\n\nThe automatic increase of the min_delta_ns of a clockevents device\nshould be done in the clockevents code as the minimum delay is an\nattribute of the clockevents device.\n\nIn addition not all architectures want the automatic adjustment, on a\nmassively virtualized system it can happen that the programming of a\nclock event fails several times in a row because the virtual cpu has\nbeen rescheduled quickly enough. In that case the minimum delay will\nerroneously be increased with no way back. The new config symbol\nGENERIC_CLOCKEVENTS_MIN_ADJUST is used to enable the automatic\nadjustment. The config option is selected only for x86.\n\nSigned-off-by: Martin Schwidefsky \u003cschwidefsky@de.ibm.com\u003e\nCc: john stultz \u003cjohnstul@us.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110823133142.494157493@de.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "29c158e81c733ac7d6a75c5ee929f34fb9f92983",
      "tree": "ba15b52ae3474f2451b3c2301413da05606ccdaf",
      "parents": [
        "a25cac5198d4ff2842ccca63b423962848ad24b2"
      ],
      "author": {
        "name": "Heiko Carstens",
        "email": "heiko.carstens@de.ibm.com",
        "time": "Tue Aug 23 13:20:46 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:55 2011 +0200"
      },
      "message": "nohz: Remove \"Switched to NOHz mode\" debugging messages\n\nWhen performing cpu hotplug tests the kernel printk log buffer gets flooded\nwith pointless \"Switched to NOHz mode...\" messages. Especially when afterwards\nanalyzing a dump this might have removed more interesting stuff out of the\nbuffer.\nAssuming that switching to NOHz mode simply works just remove the printk.\n\nSigned-off-by: Heiko Carstens \u003cheiko.carstens@de.ibm.com\u003e\nLink: http://lkml.kernel.org/r/20110823112046.GB2540@osiris.boeblingen.de.ibm.com\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "09a1d34f8535ecf9a347ea76f7597730c2bc0c8d",
      "tree": "5de69591f64e995737a62cf26d8bb3a927b27d79",
      "parents": [
        "6beea0cda8ce71c01354e688e5735c47e331e84f"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Aug 24 09:39:30 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:55 2011 +0200"
      },
      "message": "nohz: Make idle/iowait counter update conditional\n\nget_cpu_{idle,iowait}_time_us update idle/iowait counters\nunconditionally if the given CPU is in the idle loop.\n\nThis doesn\u0027t work well outside of CPU governors which are singletons\nso nobody (except for IRQ) can race with them.\n\nWe will need to use both functions from /proc/stat handler to properly\nhandle nohz idle/iowait times.\n\nMake the update depend on a non NULL last_update_time argument.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nLink: http://lkml.kernel.org/r/11f23179472635ce52e78921d47a20216b872f23.1314172057.git.mhocko@suse.cz\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "6beea0cda8ce71c01354e688e5735c47e331e84f",
      "tree": "7556787053d608134184d98413cce744d54507fc",
      "parents": [
        "ef0e0f5ed9bde6d1e3376169785a463ad2160e6d"
      ],
      "author": {
        "name": "Michal Hocko",
        "email": "mhocko@suse.cz",
        "time": "Wed Aug 24 09:37:48 2011 +0200"
      },
      "committer": {
        "name": "Thomas Gleixner",
        "email": "tglx@linutronix.de",
        "time": "Thu Sep 08 11:10:55 2011 +0200"
      },
      "message": "nohz: Fix update_ts_time_stat idle accounting\n\nupdate_ts_time_stat currently updates idle time even if we are in\niowait loop at the moment. The only real users of the idle counter\n(via get_cpu_idle_time_us) are CPU governors and they expect to get\ncumulative time for both idle and iowait times.\nThe value (idle_sleeptime) is also printed to userspace by print_cpu\nbut it prints both idle and iowait times so the idle part is misleading.\n\nLet\u0027s clean this up and fix update_ts_time_stat to account both counters\nproperly and update consumers of idle to consider iowait time as well.\nIf we do this we might use get_cpu_{idle,iowait}_time_us from other\ncontexts as well and we will get expected values.\n\nSigned-off-by: Michal Hocko \u003cmhocko@suse.cz\u003e\nCc: Dave Jones \u003cdavej@redhat.com\u003e\nCc: Arnd Bergmann \u003carnd@arndb.de\u003e\nCc: Alexey Dobriyan \u003cadobriyan@gmail.com\u003e\nLink: http://lkml.kernel.org/r/e9c909c221a8da402c4da07e4cd968c3218f8eb1.1314172057.git.mhocko@suse.cz\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\n"
    },
    {
      "commit": "8bc0dafb5cf38a19484dfb16e2c6d29e85820046",
      "tree": "af2f0000b9cc95567cc4bab5966ef6fd887c6f1f",
      "parents": [
        "9082c465a5403f4a98734193e078552991a2e283"
      ],
      "author": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Thu Jul 14 18:35:13 2011 -0700"
      },
      "committer": {
        "name": "John Stultz",
        "email": "john.stultz@linaro.org",
        "time": "Wed Aug 10 14:55:30 2011 -0700"
      },
      "message": "alarmtimers: Rework RTC device selection using class interface\n\nThis allows cleaner detection of the RTC device being registered, rather\nthen probing any time someone calls alarmtimer_get_rtcdev.\n\nCC: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: John Stultz \u003cjohn.stultz@linaro.org\u003e\n"
    }
  ],
  "next": "9082c465a5403f4a98734193e078552991a2e283"
}
