Felix Singer submitted this change.

View Change


Approvals: build bot (Jenkins): Verified Felix Singer: Looks good to me, approved Thomas Heijligen: Looks good to me, approved Edward O'Callaghan: Looks good to me, approved
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>
---
M include/programmer.h
M internal.c
2 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/include/programmer.h b/include/programmer.h
index a7cea5e..17abfd2 100644
--- a/include/programmer.h
+++ b/include/programmer.h
@@ -375,12 +375,15 @@
void probe_superio_ite(void);
int init_superio_ite(const struct programmer_cfg *cfg);

-#if CONFIG_LINUX_MTD == 1
/* 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
-static inline int try_mtd(void) { return 1; };
+ return 1;
#endif
+}

/* mcp6x_spi.c */
int mcp6x_spi_init(int want_spi);
diff --git a/internal.c b/internal.c
index 43aa51b..6a8db5e 100644
--- a/internal.c
+++ b/internal.c
@@ -215,7 +215,7 @@
*/
internal_buses_supported = BUS_NONSPI;

- if (try_mtd() == 0) {
+ if (try_mtd(cfg) == 0) {
ret = 0;
goto internal_init_exit;
}

To view, visit change 67752. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-Change-Id: I9e74bd68a1f9509a201dc518dbff96c27d68a3c3
Gerrit-Change-Number: 67752
Gerrit-PatchSet: 2
Gerrit-Owner: Angel Pons <th3fanbus@gmail.com>
Gerrit-Reviewer: Anastasia Klimchuk <aklm@chromium.org>
Gerrit-Reviewer: Edward O'Callaghan <quasisec@chromium.org>
Gerrit-Reviewer: Felix Singer <felixsinger@posteo.net>
Gerrit-Reviewer: Nico Huber <nico.h@gmx.de>
Gerrit-Reviewer: Thomas Heijligen <src@posteo.de>
Gerrit-Reviewer: build bot (Jenkins) <no-reply@coreboot.org>
Gerrit-MessageType: merged