)]}'
{
  "commit": "fa9fc821f8892590211a9aa9e855eb83152b9870",
  "tree": "8fece0e8803418f5c23b1861ec49b205fd02ee49",
  "parents": [
    "ff33f1821259d00d3fd85d86f59783e2ca3c9ee1"
  ],
  "author": {
    "name": "Julia Lawall",
    "email": "julia@diku.dk",
    "time": "Sun Aug 29 21:47:18 2010 +0200"
  },
  "committer": {
    "name": "Kumar Gala",
    "email": "galak@kernel.crashing.org",
    "time": "Tue Aug 31 16:38:47 2010 -0500"
  },
  "message": "arch/powerpc/platforms/83xx/mpc837x_mds.c: Add missing iounmap\n\nThe function of_iomap returns the result of calling ioremap, so iounmap\nshould be called on the result in the error handling code, as done in the\nnormal exit of the function.\n\nThe sematic match that finds this problem is as follows:\n(http://coccinelle.lip6.fr/)\n\n// \u003csmpl\u003e\n@r exists@\nlocal idexpression x;\nexpression E,E1;\nidentifier l;\nstatement S;\n@@\n\n*x \u003d of_iomap(...);\n...  when !\u003d iounmap(x)\n     when !\u003d if (...) { ... iounmap(x); ... }\n     when !\u003d E \u003d x\n     when any\n(\nif (x \u003d\u003d NULL) S\n|\nif (...) {\n  ... when !\u003d iounmap(x)\n      when !\u003d if (...) { ... iounmap(x); ... }\n(\n  return \u003c+...x...+\u003e;\n|\n*  return ...;\n)\n}\n)\n... when !\u003d x \u003d E1\n    when any\niounmap(x);\n// \u003c/smpl\u003e\n\nSigned-off-by: Julia Lawall \u003cjulia@diku.dk\u003e\nSigned-off-by: Kumar Gala \u003cgalak@kernel.crashing.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f9751c8905be5db684a25555975a60b3b574d881",
      "old_mode": 33188,
      "old_path": "arch/powerpc/platforms/83xx/mpc837x_mds.c",
      "new_id": "83068322abd154004325093e1db9a7b24b9da8d7",
      "new_mode": 33188,
      "new_path": "arch/powerpc/platforms/83xx/mpc837x_mds.c"
    }
  ]
}
