Anastasia Klimchuk has uploaded this change for review. ( https://review.coreboot.org/c/flashrom/+/52684 )
Change subject: ene_lpc.c: Extract params check into a function ......................................................................
ene_lpc.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.
BUG=b:185191942 TEST=builds
Change-Id: I7c3b6dea0edbc7547f0b307a0508c7d2b2a6d370 Signed-off-by: Anastasia Klimchuk aklm@chromium.org --- M ene_lpc.c 1 file changed, 16 insertions(+), 5 deletions(-)
git pull ssh://review.coreboot.org:29418/flashrom refs/changes/84/52684/1
diff --git a/ene_lpc.c b/ene_lpc.c index 1d045b8..560743c 100644 --- a/ene_lpc.c +++ b/ene_lpc.c @@ -513,11 +513,25 @@ .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("ene_lpc only supports "ec" type devices\n"); + ret = 1; + } + + free(p); + return ret; +} + int ene_lpc_init() { uint8_t hwver, ediid, i; int ret = 0; - char *p = NULL; ene_lpc_data_t *ctx_data = NULL;
msg_pdbg("%s\n", __func__); @@ -529,9 +543,7 @@ } ctx_data->ec_state = EC_STATE_NORMAL;
- p = extract_programmer_param("type"); - if (p && strcmp(p, "ec")) { - msg_pdbg("ene_lpc only supports "ec" type devices\n"); + if (check_params()) { ret = 1; goto ene_probe_spi_flash_exit; } @@ -572,7 +584,6 @@ msg_pdbg("%s: successfully initialized ene\n", __func__);
ene_probe_spi_flash_exit: - free(p); if (ret) free(ctx_data); return ret;