)]}'
{
  "commit": "d6bb828b017eaf89d5a4c52803ebc0029725383b",
  "tree": "722abce67e8d8864158ec9261405461a28e313b0",
  "parents": [
    "0b9af36772b655f4de118ddb296207b6ca49cb58"
  ],
  "author": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Sat Jul 21 17:27:08 2012 +0000"
  },
  "committer": {
    "name": "Carl-Daniel Hailfinger",
    "email": "c-d.hailfinger.devel.2006@gmx.net",
    "time": "Sat Jul 21 17:27:08 2012 +0000"
  },
  "message": "Automatically release I/O permissions on shutdown\n\nGet_io_perms() is renamed to rget_io_perms() and automatically registers\na function to release I/O permissions on shutdown.\n\nActually release I/O permissions on Solaris and iopl()-supporting\noperating systems like Linux.\n\nThis patch fixes quite a few programmers which forgot to release I/O\npermissions on shutdown, and it simplifies the shutdown and error\nhandling code for all others.\n\nDo not call exit(1) if I/O permissions are denied and return an error\ninstead. This part of the patch was written by Niklas Söderlund.\n\nCorresponding to flashrom svn r1551.\n\nSigned-off-by: Carl-Daniel Hailfinger \u003cc-d.hailfinger.devel.2006@gmx.net\u003e\nSigned-off-by: Niklas Söderlund \u003cniso@kth.se\u003e\nAcked-by: Michael Karcher \u003cflashrom@mkarcher.dialup.fu-berlin.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "41a82cb70fab0bbe42eb914ba643c7691f52160f",
      "old_mode": 33188,
      "old_path": "atahpt.c",
      "new_id": "f410fe40c3501a2d8903c46decfcb8598f8d3452",
      "new_mode": 33188,
      "new_path": "atahpt.c"
    },
    {
      "type": "modify",
      "old_id": "a3844b82aac925acdcfe990f05bbb2a08737348f",
      "old_mode": 33188,
      "old_path": "drkaiser.c",
      "new_id": "259530a5d94f7c9156fb8add4c5300ab385dab45",
      "new_mode": 33188,
      "new_path": "drkaiser.c"
    },
    {
      "type": "modify",
      "old_id": "ddf82e70301ee029e004506651403c1de02d5d83",
      "old_mode": 33188,
      "old_path": "gfxnvidia.c",
      "new_id": "782d69238b6f15ea5af28cc351bdcf08b36c12a2",
      "new_mode": 33188,
      "new_path": "gfxnvidia.c"
    },
    {
      "type": "modify",
      "old_id": "e1821679797d646231b7ff824ab163bcba67d57e",
      "old_mode": 33188,
      "old_path": "hwaccess.c",
      "new_id": "c18a1104bb9d61e82d89945a5e07ccf68932c78c",
      "new_mode": 33188,
      "new_path": "hwaccess.c"
    },
    {
      "type": "modify",
      "old_id": "c99ca1fb365af23f29504f41c276578cc6fd9007",
      "old_mode": 33188,
      "old_path": "internal.c",
      "new_id": "bf1ca8cdbea36371d4e45aa71ed96c319fdec025",
      "new_mode": 33188,
      "new_path": "internal.c"
    },
    {
      "type": "modify",
      "old_id": "a137c6468a3b44b45747060babeafc859b10f440",
      "old_mode": 33188,
      "old_path": "nic3com.c",
      "new_id": "f4fb6feb9469db59f8c161cfc3e0c941ada5f317",
      "new_mode": 33188,
      "new_path": "nic3com.c"
    },
    {
      "type": "modify",
      "old_id": "813049c130bd9a4c2576f03ff63d6e044f5eaee8",
      "old_mode": 33188,
      "old_path": "nicintel.c",
      "new_id": "1c6d4098d0f92a4b4d9209196574624e325c7bb2",
      "new_mode": 33188,
      "new_path": "nicintel.c"
    },
    {
      "type": "modify",
      "old_id": "7a02cdae91e8093a4b60696e8f7bbbb53258b866",
      "old_mode": 33188,
      "old_path": "nicintel_spi.c",
      "new_id": "531576c14eeb6d01f40fdba6ed09c8f0c3d18176",
      "new_mode": 33188,
      "new_path": "nicintel_spi.c"
    },
    {
      "type": "modify",
      "old_id": "46468671197dd8bd8268c3ea5b6cc28422d587ad",
      "old_mode": 33188,
      "old_path": "nicnatsemi.c",
      "new_id": "7cdd2fe95863ee84186c85e49af3d35aca45b103",
      "new_mode": 33188,
      "new_path": "nicnatsemi.c"
    },
    {
      "type": "modify",
      "old_id": "61e07d803e10e406a14a7725a31e66f2f333457c",
      "old_mode": 33188,
      "old_path": "nicrealtek.c",
      "new_id": "afc3d0f64e996614fd2e2e4c42d07fd64dec3452",
      "new_mode": 33188,
      "new_path": "nicrealtek.c"
    },
    {
      "type": "modify",
      "old_id": "29660249edba479475da6bfb7f6b3ac993bb4ff0",
      "old_mode": 33188,
      "old_path": "ogp_spi.c",
      "new_id": "13091b4aa514dc6085234e23424d17fc1871325e",
      "new_mode": 33188,
      "new_path": "ogp_spi.c"
    },
    {
      "type": "modify",
      "old_id": "6f07dd0a9e9a9a125a33646dcde29ce523002313",
      "old_mode": 33188,
      "old_path": "programmer.h",
      "new_id": "f511c718c04fe5f554da3e974339dd7f8a0816ae",
      "new_mode": 33188,
      "new_path": "programmer.h"
    },
    {
      "type": "modify",
      "old_id": "584a6a0650174774428987ccf4523f9542dc34c8",
      "old_mode": 33188,
      "old_path": "rayer_spi.c",
      "new_id": "8e48e6ef0c695faa5c3cb403f167c2d9c1b54bec",
      "new_mode": 33188,
      "new_path": "rayer_spi.c"
    },
    {
      "type": "modify",
      "old_id": "70deb06ffeb765e4774a5d6ee55fd9155b96063e",
      "old_mode": 33188,
      "old_path": "satamv.c",
      "new_id": "afcabaf5a01dffc1101feb76fa27a046abe1d4f9",
      "new_mode": 33188,
      "new_path": "satamv.c"
    },
    {
      "type": "modify",
      "old_id": "aae76f3260f1f91f0bd9f9af24e556088ce0c676",
      "old_mode": 33188,
      "old_path": "satasii.c",
      "new_id": "0bea94269f1928ffc9ac1f441f282dd187e0f29c",
      "new_mode": 33188,
      "new_path": "satasii.c"
    }
  ]
}
