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

Reply via email to