)]}'
{
  "commit": "cd05a1f818073a623455a58e756c5b419fc98db9",
  "tree": "4e148e96f00fe07b0c53a379e812344733e8484a",
  "parents": [
    "24c4ac070adffe4a21f3a8daf4aee7c98fa6c4f9"
  ],
  "author": {
    "name": "Thomas Gleixner",
    "email": "tglx@linutronix.de",
    "time": "Sat Mar 17 00:25:52 2007 +0100"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@woody.linux-foundation.org",
    "time": "Fri Mar 16 19:35:25 2007 -0700"
  },
  "message": "[PATCH] clockevents: Fix suspend/resume to disk hangs\n\nI finally found a dual core box, which survives suspend/resume without\ncrashing in the middle of nowhere. Sigh, I never figured out from the\ncode and the bug reports what\u0027s going on.\n\nThe observed hangs are caused by a stale state transition of the clock\nevent devices, which keeps the RCU synchronization away from completion,\nwhen the non boot CPU is brought back up.\n\nThe suspend/resume in oneshot mode needs the similar care as the\nperiodic mode during suspend to RAM. My assumption that the state\ntransitions during the different shutdown/bringups of s2disk would go\nthrough the periodic boot phase and then switch over to highres resp.\nnohz mode were simply wrong.\n\nAdd the appropriate suspend / resume handling for the non periodic\nmodes.\n\nSigned-off-by: Thomas Gleixner \u003ctglx@linutronix.de\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5567745470f7121a284401beec86c1868ed026ae",
      "old_mode": 33188,
      "old_path": "kernel/time/tick-broadcast.c",
      "new_id": "eadfce2fff74c89f30849f1af213cde5a88dee14",
      "new_mode": 33188,
      "new_path": "kernel/time/tick-broadcast.c"
    },
    {
      "type": "modify",
      "old_id": "43ba1bdec14cac3f6b4aa2aff26f4b268572915a",
      "old_mode": 33188,
      "old_path": "kernel/time/tick-common.c",
      "new_id": "bfda3f7f0716a9ad4915dd2191390f8bbf59ddd8",
      "new_mode": 33188,
      "new_path": "kernel/time/tick-common.c"
    },
    {
      "type": "modify",
      "old_id": "75890efd24ff315245562b8ca0c9aef796bc6628",
      "old_mode": 33188,
      "old_path": "kernel/time/tick-internal.h",
      "new_id": "c9d203bde5182a116260819b440768d69b31da2e",
      "new_mode": 33188,
      "new_path": "kernel/time/tick-internal.h"
    },
    {
      "type": "modify",
      "old_id": "2e8b7ff863cc3396387e0e6b790074d5b53ad381",
      "old_mode": 33188,
      "old_path": "kernel/time/tick-oneshot.c",
      "new_id": "f6997ab0c3c9c1101c9df8c9bd433e4126cc4a40",
      "new_mode": 33188,
      "new_path": "kernel/time/tick-oneshot.c"
    }
  ]
}
