Anastasia Klimchuk has uploaded this change for review.

View Change

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;

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

Gerrit-Project: flashrom
Gerrit-Branch: master
Gerrit-Change-Id: I7c3b6dea0edbc7547f0b307a0508c7d2b2a6d370
Gerrit-Change-Number: 52684
Gerrit-PatchSet: 1
Gerrit-Owner: Anastasia Klimchuk <aklm@chromium.org>
Gerrit-MessageType: newchange