1
0
mirror of https://review.coreboot.org/flashrom.git synced 2025-07-01 22:21:16 +02:00

internal.c: Pass programmer_cfg to try_mtd()

Programmer params are now passed via the `programmer_cfg` struct, but
the internal programmer did not pass them to the `try_mtd()` function
which was still using `NULL`. This problem resulted in a segmentation
fault when trying to use the internal programmer.

TEST=Make sure internal programmer does not segfault on Haswell ULT.

Change-Id: I9e74bd68a1f9509a201dc518dbff96c27d68a3c3
Signed-off-by: Angel Pons <th3fanbus@gmail.com>
Reviewed-on: https://review.coreboot.org/c/flashrom/+/67752
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Thomas Heijligen <src@posteo.de>
Reviewed-by: Felix Singer <felixsinger@posteo.net>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
This commit is contained in:
Angel Pons
2022-09-21 09:45:47 +02:00
committed by Felix Singer
parent 5363f35fa0
commit 496331a672
2 changed files with 7 additions and 4 deletions

View File

@ -375,12 +375,15 @@ void exit_conf_mode_ite(uint16_t port);
void probe_superio_ite(void); void probe_superio_ite(void);
int init_superio_ite(const struct programmer_cfg *cfg); int init_superio_ite(const struct programmer_cfg *cfg);
#if CONFIG_LINUX_MTD == 1
/* trivial wrapper to avoid cluttering internal_init() with #if */ /* trivial wrapper to avoid cluttering internal_init() with #if */
static inline int try_mtd(void) { return programmer_linux_mtd.init(NULL); }; static inline int try_mtd(const struct programmer_cfg *cfg)
{
#if CONFIG_LINUX_MTD == 1
return programmer_linux_mtd.init(cfg);
#else #else
static inline int try_mtd(void) { return 1; }; return 1;
#endif #endif
}
/* mcp6x_spi.c */ /* mcp6x_spi.c */
int mcp6x_spi_init(int want_spi); int mcp6x_spi_init(int want_spi);

View File

@ -215,7 +215,7 @@ static int internal_init(const struct programmer_cfg *cfg)
*/ */
internal_buses_supported = BUS_NONSPI; internal_buses_supported = BUS_NONSPI;
if (try_mtd() == 0) { if (try_mtd(cfg) == 0) {
ret = 0; ret = 0;
goto internal_init_exit; goto internal_init_exit;
} }