)]}'
{
  "commit": "bd27581be60e7c59b3d0f814467260196c261281",
  "tree": "b444aee0a4bed45d7276377c89d57ddf852e16e3",
  "parents": [
    "7db7059e0ebe1b655c352dec8cf99fe31cc3876b"
  ],
  "author": {
    "name": "Edward O\u0027Callaghan",
    "email": "quasisec@google.com",
    "time": "Mon Nov 28 11:20:44 2022 +1100"
  },
  "committer": {
    "name": "Nico Huber",
    "email": "nico.h@gmx.de",
    "time": "Thu Jan 05 16:35:01 2023 +0000"
  },
  "message": "internal.c: laptop_ok global state can become stale\n\nCraask and similar DUT\u0027s are erroneously probing random second chips.\n\n```\nFound chipset \"Intel Alder Lake-N\".\nEnabling flash write... SPI Configuration is locked down.\nFREG0: Flash Descriptor region (0x00000000-0x00000fff) is read-write.\nFREG1: BIOS region (0x003a0000-0x00ffffff) is read-write.\nFREG2: Management Engine region (0x00001000-0x0039ffff) is read-write.\nOK.\nFound Winbond flash chip \"W25Q128.V..M\" (16384 kB, Programmer-specific) on host.\nWarning: Setting BIOS Control at 0xdc from 0x8b to 0x89 failed.\nNew value is 0x8b.\nFound MoselVitelic flash chip \"V29C51000T\" (64 kB, Parallel) mapped at physical address 0x00000000ffff0000.\n```\n\nThis seems to be due to `laptop_ok` becoming a stale global state\nafter the first operation leading to probing on unrelated buses.\n\nTherefore unconditionally reset the global state upon entry into\nthe internal driver.\n\nTested: Craask reportly no longer finds duplicate chip.\n\nChange-Id: I2c00c351904307eeb1488c5dfaffc91d6468ee25\nSigned-off-by: Edward O\u0027Callaghan \u003cquasisec@google.com\u003e\nOriginal-Reviewed-on: https://review.coreboot.org/c/flashrom/+/70026\nOriginal-Reviewed-by: Sam McNally \u003csammc@google.com\u003e\nOriginal-Reviewed-by: Anastasia Klimchuk \u003caklm@chromium.org\u003e\nReviewed-on: https://review.coreboot.org/c/flashrom-stable/+/71496\nReviewed-by: Angel Pons \u003cth3fanbus@gmail.com\u003e\nTested-by: build bot (Jenkins) \u003cno-reply@coreboot.org\u003e\nReviewed-by: Nico Huber \u003cnico.h@gmx.de\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ca43550e411f1c37b1bc08823e063c421b111fc0",
      "old_mode": 33188,
      "old_path": "internal.c",
      "new_id": "ef1921eccde9e74370fa3fb360f441af7055089d",
      "new_mode": 33188,
      "new_path": "internal.c"
    }
  ]
}
