summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnastasia Klimchuk <aklm@chromium.org>2021-04-21 15:19:24 +1000
committerNico Huber <nico.h@gmx.de>2021-04-27 10:27:19 +0000
commit914aa7e60eff94864acc892d6228023e261524a8 (patch)
tree5e8df595c80ff56ff3c7dd06ee2d8a42076ded83
parent62fb7649c89463ca045a7c4a376a096f7d4c2d63 (diff)
downloadflashrom-914aa7e60eff94864acc892d6228023e261524a8.tar.gz
flashrom-914aa7e60eff94864acc892d6228023e261524a8.tar.bz2
flashrom-914aa7e60eff94864acc892d6228023e261524a8.zip
mec1308.c: Extract params check into a function
This allows char *p to become a local variable in check_params, and it is allocated and freed within check_params function. Which means init function does not need char *p anymore, in particular does not need to free it - and this makes cleanup after failed init easier. As a good side effect, init function becomes easier to read. TEST=builds and ninja test from 51487 BUG=b:185191942 Change-Id: If5be7709e93233a2e7ea9133de50382d2524a55f Signed-off-by: Anastasia Klimchuk <aklm@chromium.org> Reviewed-on: https://review.coreboot.org/c/flashrom/+/52595 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Angel Pons <th3fanbus@gmail.com> Reviewed-by: Nico Huber <nico.h@gmx.de>
-rw-r--r--mec1308.c21
1 files changed, 16 insertions, 5 deletions
diff --git a/mec1308.c b/mec1308.c
index c4b34f571..682e7a96e 100644
--- a/mec1308.c
+++ b/mec1308.c
@@ -406,13 +406,27 @@ static struct spi_master spi_master_mec1308 = {
.write_256 = default_spi_write_256,
};
+static int check_params(void)
+{
+ int ret = 0;
+ char *p = NULL;
+
+ p = extract_programmer_param("type");
+ if (p && strcmp(p, "ec")) {
+ msg_pdbg("mec1308 only supports \"ec\" type devices\n");
+ ret = 1;
+ }
+
+ free(p);
+ return ret;
+}
+
int mec1308_init(void)
{
uint16_t sio_port;
uint8_t device_id;
uint8_t tmp8;
int ret = 0;
- char *p = NULL;
mec1308_data_t *ctx_data = NULL;
msg_pdbg("%s(): entered\n", __func__);
@@ -423,9 +437,7 @@ int mec1308_init(void)
return 1;
}
- p = extract_programmer_param("type");
- if (p && strcmp(p, "ec")) {
- msg_pdbg("mec1308 only supports \"ec\" type devices\n");
+ if (check_params()) {
ret = 1;
goto mec1308_init_exit;
}
@@ -515,7 +527,6 @@ int mec1308_init(void)
msg_pdbg("%s(): successfully initialized mec1308\n", __func__);
mec1308_init_exit:
- free(p);
if (ret)
free(ctx_data);
return ret;