)]}'
{
  "commit": "83db3dde2604d48e30a468c82da163dd1a8602b3",
  "tree": "6955ecdc6b0901da808686a2e9e07a3646008aac",
  "parents": [
    "b6f35b4966e0ae59cec45e5292b100698d12dc5f"
  ],
  "author": {
    "name": "Ananth N Mavinakayanahalli",
    "email": "ananth@in.ibm.com",
    "time": "Fri Aug 11 17:01:34 2006 +0530"
  },
  "committer": {
    "name": "Paul Mackerras",
    "email": "paulus@samba.org",
    "time": "Thu Aug 17 16:41:10 2006 +1000"
  },
  "message": "[POWERPC] kprobes: Fix possible system crash during out-of-line single-stepping\n\n- On archs that have no-exec support, we vmalloc() a executable scratch\narea of PAGE_SIZE and divide it up into an array of slots of maximum\ninstruction size for that arch\n- On a kprobe registration, the original instruction is copied to the\nfirst available free slot, so if multiple kprobes are registered, chances\nare, they get contiguous slots\n- On POWER4, due to not having coherent icaches, we could hit a situation\nwhere a probe that is registered on one processor, is hit immediately on\nanother. This second processor could have fetched the stream of text from\nthe out-of-line single-stepping area *before* the probe registration\ncompleted, possibly due to an earlier (and a different) kprobe hit and\nhence would see stale data at the slot.\n\nExecuting such an arbitrary instruction lead to a problem as reported\nin LTC bugzilla 23555.\n\nThe correct solution is to call flush_icache_range() as soon as the\ninstruction is copied for out-of-line single-stepping, so the correct\ninstruction is seen on all processors.\n\nThanks to Will Schmidt who tracked this down.\n\nSigned-off-by: Ananth N Mavinakayanahalli \u003cananth@in.ibm.com\u003e\nAcked-by: Will Schmidt \u003cwill_schmidt@vnet.ibm.com\u003e\nSigned-off-by: Paul Mackerras \u003cpaulus@samba.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9f0898c897592d41760817b396adeff3b15b3784",
      "old_mode": 33188,
      "old_path": "arch/powerpc/kernel/kprobes.c",
      "new_id": "cd65c367b8b6d5c9abcc23fe7cbf595931814a5d",
      "new_mode": 33188,
      "new_path": "arch/powerpc/kernel/kprobes.c"
    }
  ]
}
