)]}'
{
  "commit": "c61c25eb02757ecf697015ef4ae3675c5e114e2e",
  "tree": "db955b3bcd10a69dbb68366203ee0d6b64cbfe3d",
  "parents": [
    "aefa8b6bf48fdcc904de4f166e59ab37fb750dec"
  ],
  "author": {
    "name": "Kyle McMartin",
    "email": "kyle@mcmartin.ca",
    "time": "Sat Dec 20 02:29:06 2008 +0000"
  },
  "committer": {
    "name": "Kyle McMartin",
    "email": "kyle@mcmartin.ca",
    "time": "Mon Jan 05 19:16:46 2009 +0000"
  },
  "message": "parisc: fix kernel crash (protection id trap) when compiling ruby1.9\n\nOn Wed, Dec 17, 2008 at 11:46:05PM +0100, Helge Deller wrote:\n\u003e\n\nHonestly, I can\u0027t decide whether to apply this. It really should never\nhappen in the kernel, since the kernel can guarantee it won\u0027t get the\naccess rights failure (highest privilege level, and can set %sr and\n%protid to whatever it wants.)\n\nIt really genuinely is a bug that probably should panic the kernel. The\nonly precedent I can easily see is x86 fixing up a bad iret with a\ngeneral protection fault, which is more or less analogous to code 27\nhere.\n\nOn the other hand, taking the exception on a userspace access really\nisn\u0027t all that critical, and there\u0027s fundamentally little reason for the\nkernel not to SIGSEGV the process, and continue...\n\nArgh.\n\n(btw, I\u0027ve instrumented my do_sys_poll with a pile of assertions that\n %cr8 \u003c\u003c 1 \u003d\u003d %sr3 \u003d\u003d current-\u003emm.context... let\u0027s see if where we\u0027re\n getting corrupted is deterministic, though, I would guess that it won\u0027t\n be.)\n\nSigned-off-by: Kyle McMartin \u003ckyle@mcmartin.ca\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "4878b9501f245ec77bb826a800d2878e34c7cc0e",
      "old_mode": 33188,
      "old_path": "arch/parisc/include/asm/uaccess.h",
      "new_id": "1c6dbb6f6e5663988ed5def13f4a776f51dd3e62",
      "new_mode": 33188,
      "new_path": "arch/parisc/include/asm/uaccess.h"
    },
    {
      "type": "modify",
      "old_id": "4c771cd580ecf9abbc4e6d9238accbb0a99bd0d8",
      "old_mode": 33188,
      "old_path": "arch/parisc/kernel/traps.c",
      "new_id": "548ba0c654d2f15412d99e1843bcd62a27bf93e7",
      "new_mode": 33188,
      "new_path": "arch/parisc/kernel/traps.c"
    },
    {
      "type": "modify",
      "old_id": "b2e3e9a8cecefce049d43ef1a5d36d61403cc9b9",
      "old_mode": 33188,
      "old_path": "arch/parisc/mm/fault.c",
      "new_id": "92c7fa4ecc3f4a27ac6ac79f31f1acda964f967e",
      "new_mode": 33188,
      "new_path": "arch/parisc/mm/fault.c"
    }
  ]
}
