1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-06-30 21:52:36 +02:00

tree/: Replace NULL-case of programmer_delay() with internal_delay

Replace `programmer_delay(NULL, [..])` calls with direct
`internal_delay([..])` dispatches explicitly. Custom driver
delays remain hooked as well as core flashrom logic. The
NULL base case of 'programmer_delay()' then becomes a condition
to validate for layering violations or invalid flash contexts.

Change-Id: I1da230804d5e8f47a6e281feb66f381514dc6861
Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/68434
Reviewed-by: Anastasia Klimchuk <aklm@chromium.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
Edward O'Callaghan
2022-10-17 12:31:59 +11:00
committed by Edward O'Callaghan
parent 78e421bdf7
commit 1e01eefcba
12 changed files with 44 additions and 32 deletions

View File

@ -259,8 +259,20 @@ void programmer_delay(const struct flashctx *flash, unsigned int usecs)
if (usecs == 0)
return;
if (!flash)
/**
* Drivers should either use internal_delay() directly or their
* own custom delay. Only core flashrom logic calls programmer_delay()
* which should always have a valid flash context. A NULL context
* more than likely indicates a layering violation or BUG however
* for now dispatch a internal_delay() as a safe default for the NULL
* base case.
*/
if (!flash) {
msg_perr("%s called with NULL flash context. "
"Please report a bug at flashrom@flashrom.org\n",
__func__);
return internal_delay(usecs);
}
if (flash->mst->buses_supported & BUS_SPI) {
if (flash->mst->spi.delay)