)]}'
{
  "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",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3526038f28361b7e4241818cafb8a9a978310e0c",
      "old_mode": 33188,
      "old_path": "kernel/time/tick-sched.c",
      "new_id": "6a3a5b9ff56176c2951256edf7ef9601a0f49106",
      "new_mode": 33188,
      "new_path": "kernel/time/tick-sched.c"
    }
  ]
}
