)]}'
{
  "commit": "c6ff17bc79f7d6019295c1e3ec5973d2f53f8009",
  "tree": "046085819074716e50b364eea081ac59d485c221",
  "parents": [
    "b131342f07e526e35cac4bae8f0c5c7c6dffdcf8"
  ],
  "author": {
    "name": "Anastasia Klimchuk",
    "email": "aklm@chromium.org",
    "time": "Mon May 24 09:55:03 2021 +1000"
  },
  "committer": {
    "name": "Nico Huber",
    "email": "nico.h@gmx.de",
    "time": "Sun Jan 29 12:29:02 2023 +0000"
  },
  "message": "serprog.c: Separate shutdown from failed init cleanup\n\nShutdown function was covering two different jobs here: 1) the actual\nshutdown which is run at the end of the driver\u0027s lifecycle and\n2) cleanup in cases when initialisation failed. Now, shutdown is only\ndoing its main job (#1), and the driver itself is doing cleanup\nwhen init fails (#2).\n\nThe good thing is that now resources are released/closed immediately\nin cases when init fails (vs shutdown function which was run at some\npoint later), and the driver leaves clean space after itself if init\nfails.\n\nAnd very importantly this unlocks API change which plans to move\nregister_shutdown inside register master API, see\nhttps://review.coreboot.org/c/flashrom/+/51761\n\nChange-Id: Idf4ed62c19667e18cc807913180c48cb8c978805\nSigned-off-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/54861\nOriginal-Reviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nOriginal-Reviewed-by: Edward O\u0027Callaghan \u003cquasisec@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/72207\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ab559bb1ae449ebc5e8d05a2b6dcada701173c75",
      "old_mode": 33188,
      "old_path": "serprog.c",
      "new_id": "21176426b7a6b3338697d81309a7288d0e107e89",
      "new_mode": 33188,
      "new_path": "serprog.c"
    }
  ]
}
