)]}'
{
  "commit": "82da65dab5f438ac7df28eeb43e2f5b742aa00ef",
  "tree": "0b2a579d9385c516f6fbb3e2689f6611c9228aa7",
  "parents": [
    "a1e4891fd48d298870b704c6eb48cba0da5ed6b1"
  ],
  "author": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sun May 22 21:37:01 2011 -0700"
  },
  "committer": {
    "name": "Linus Torvalds",
    "email": "torvalds@linux-foundation.org",
    "time": "Sun May 22 21:44:13 2011 -0700"
  },
  "message": "x86: setup_smep needs to be __cpuinit\n\nThe setup_smep function gets calle at resume time too, and is thus not a\npure __init function.  When marked as __init, it gets thrown out after\nthe kernel has initialized, and when the kernel is suspended and\nresumed, the code will no longer be around, and we\u0027ll get a nice \"kernel\ntried to execute NX-protected page\" oops because the page is no longer\nmarked executable.\n\nReported-and-tested-by: Parag Warudkar \u003cparag.lkml@gmail.com\u003e\nCc: Fenghua Yu \u003cfenghua.yu@intel.com\u003e\nCc: \"H. Peter Anvin\" \u003chpa@linux.intel.com\u003e\nCc: Ingo Molnar \u003cmingo@elte.hu\u003e\nSigned-off-by: Linus Torvalds \u003ctorvalds@linux-foundation.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cbc70a27430ce3dc7010fbf07909ed886674c5e0",
      "old_mode": 33188,
      "old_path": "arch/x86/kernel/cpu/common.c",
      "new_id": "c8b41623377f14462a248b245ffab97792e9409c",
      "new_mode": 33188,
      "new_path": "arch/x86/kernel/cpu/common.c"
    }
  ]
}
