Make sure that xlat_status is unconditionally called. Signed-off-by: Dave Jiang <dave.ji...@intel.com> --- drivers/acpi/nfit/core.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-)
diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c index 662036b..e7b05df 100644 --- a/drivers/acpi/nfit/core.c +++ b/drivers/acpi/nfit/core.c @@ -199,7 +199,7 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc, struct nvdimm *nvdimm, acpi_handle handle; unsigned int func; const u8 *uuid; - int rc, i; + int rc = 0, xlat_rc, i; func = cmd; if (cmd == ND_CMD_CALL) { @@ -343,21 +343,20 @@ int acpi_nfit_ctl(struct nvdimm_bus_descriptor *nd_desc, struct nvdimm *nvdimm, * unfilled in the output buffer */ rc = buf_len - offset - in_buf.buffer.length; - if (cmd_rc) - *cmd_rc = xlat_status(nvdimm, buf, cmd, - fw_status); } else { dev_err(dev, "%s:%s underrun cmd: %s buf_len: %d out_len: %d\n", __func__, dimm_name, cmd_name, buf_len, offset); rc = -ENXIO; + goto out; } - } else { - rc = 0; - if (cmd_rc) - *cmd_rc = xlat_status(nvdimm, buf, cmd, fw_status); } + xlat_rc = xlat_status(nvdimm, buf, cmd, fw_status); + + if (cmd_rc) + *cmd_rc = xlat_rc; + out: ACPI_FREE(out_obj); _______________________________________________ Linux-nvdimm mailing list Linux-nvdimm@lists.01.org https://lists.01.org/mailman/listinfo/linux-nvdimm