)]}'
{
  "commit": "13fe24f37df20e580a5a364e67ec8cf3219d8f8c",
  "tree": "c790da8a840c6fdc3e6f5eacccadede92e329d7c",
  "parents": [
    "f53e86760e10abbe7ee98a5b3cb270fa6426fcdb"
  ],
  "author": {
    "name": "Robin Getz",
    "email": "robin.getz@analog.com",
    "time": "Sun Jan 27 15:38:56 2008 +0800"
  },
  "committer": {
    "name": "Bryan Wu",
    "email": "bryan.wu@analog.com",
    "time": "Sun Jan 27 15:38:56 2008 +0800"
  },
  "message": "[Blackfin] arch: fix bug - trap_tests fails to recover on some tests.\n\nhttp://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action\u003dTrackerItemEdit\u0026tracker_item_id\u003d3719\n\nWhen the CPLBs get a miss, we do:\n  - find a victim in the HW table\n  - remove the victim\n  - find the replacement in the software table\n  - put it into the HW table.\n\nIf we can\u0027t find a replacement in the software table, we accidently\nleave a duplicate in the HW table. This patch ensures that duplicate\nis marked as not valid.\n\nWhat we should do is find the replacement in the software table, before\nwe find a victim in the HW table - but its too late in the release cycle\nto do that much restructuring of this code.\n\nRather that duplicate code, connect Hardware Errors (irq5) into trap_c,\nso user space processes get killed properly.\n\nThe rest of irq_panic() can be moved into traps.c (later)\n\nThere is still a small corner case that causes problems when a\npheriperal interrupt goes off a single cycle before a user space\nhardware error. This causes a kernel panic, rather than the user\nspace process being killed.\n\nBut, this checkin makes things work in 99.9% of the cases, and is a vast\nimprovement from what is there today (which fails 100% of the time).\n\nSigned-off-by: Robin Getz \u003crobin.getz@analog.com\u003e\nSigned-off-by: Bryan Wu \u003cbryan.wu@analog.com\u003e\n\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "21a55ef19cbd3d89fe8213a6f1ba442156584178",
      "old_mode": 33188,
      "old_path": "arch/blackfin/kernel/traps.c",
      "new_id": "4be5ff0be60f75ce6679481563ee1e12173cf48b",
      "new_mode": 33188,
      "new_path": "arch/blackfin/kernel/traps.c"
    },
    {
      "type": "modify",
      "old_id": "faca1ab344d2069399e7c50cf657c8090cb0dcbe",
      "old_mode": 33188,
      "old_path": "arch/blackfin/mach-common/cplbmgr.S",
      "new_id": "f5cf3accef378fadae792b6660edf13eb76c284b",
      "new_mode": 33188,
      "new_path": "arch/blackfin/mach-common/cplbmgr.S"
    },
    {
      "type": "modify",
      "old_id": "4de376418a18650d2e956c5337a351384e2fe977",
      "old_mode": 33188,
      "old_path": "arch/blackfin/mach-common/interrupt.S",
      "new_id": "f983ac7ea3520040e64eddba86b6587ad2eddc5b",
      "new_mode": 33188,
      "new_path": "arch/blackfin/mach-common/interrupt.S"
    },
    {
      "type": "modify",
      "old_id": "b22959b197e5c3e3d0643c19653092fa93238072",
      "old_mode": 33188,
      "old_path": "arch/blackfin/mach-common/irqpanic.c",
      "new_id": "606ded9ff4e1963babcdec88999ef5767628451a",
      "new_mode": 33188,
      "new_path": "arch/blackfin/mach-common/irqpanic.c"
    },
    {
      "type": "modify",
      "old_id": "ee1cbf73a9ab2a8993eb8eec90531a7e90b70baf",
      "old_mode": 33188,
      "old_path": "include/asm-blackfin/traps.h",
      "new_id": "f0e5f940d9cae503d55be15fb74982c15be47a2a",
      "new_mode": 33188,
      "new_path": "include/asm-blackfin/traps.h"
    }
  ]
}
