@@ -280,8 +280,8 @@ static int smart_set_thresh(struct ndctl_dimm *dimm)
goto out;
}
- rc = ndctl_cmd_submit(st_cmd);
- if (rc) {
+ rc = ndctl_cmd_submit_xlat(st_cmd);
+ if (rc < 0) {
error("%s: smart threshold command failed: %s (%d)\n",
name, strerror(abs(rc)), rc);
goto out;
@@ -320,8 +320,8 @@ static int smart_set_thresh(struct ndctl_dimm *dimm)
ndctl_cmd_smart_threshold_set_alarm_control(sst_cmd, alarm);
}
- rc = ndctl_cmd_submit(sst_cmd);
- if (rc)
+ rc = ndctl_cmd_submit_xlat(sst_cmd);
+ if (rc < 0)
error("%s: smart set threshold command failed: %s (%d)\n",
name, strerror(abs(rc)), rc);
@@ -351,8 +351,8 @@ out:
if (sctx.err_continue == false) \
goto out; \
} \
- rc = ndctl_cmd_submit(si_cmd); \
- if (rc) { \
+ rc = ndctl_cmd_submit_xlat(si_cmd); \
+ if (rc < 0) { \
error("%s: smart inject %s command failed: %s (%d)\n", \
name, #arg, strerror(abs(rc)), rc); \
if (sctx.err_continue == false) \
@@ -382,8 +382,8 @@ out:
if (sctx.err_continue == false) \
goto out; \
} \
- rc = ndctl_cmd_submit(si_cmd); \
- if (rc) { \
+ rc = ndctl_cmd_submit_xlat(si_cmd); \
+ if (rc < 0) { \
error("%s: smart inject %s command failed: %s (%d)\n", \
name, #arg, strerror(abs(rc)), rc); \
if (sctx.err_continue == false) \
@@ -30,8 +30,8 @@ static void smart_threshold_to_json(struct ndctl_dimm *dimm,
if (!cmd)
return;
- rc = ndctl_cmd_submit(cmd);
- if (rc || ndctl_cmd_get_firmware_status(cmd))
+ rc = ndctl_cmd_submit_xlat(cmd);
+ if (rc < 0)
goto out;
alarm_control = ndctl_cmd_smart_threshold_get_alarm_control(cmd);
@@ -115,8 +115,8 @@ struct json_object *util_dimm_health_to_json(struct ndctl_dimm *dimm)
if (!cmd)
goto err;
- rc = ndctl_cmd_submit(cmd);
- if (rc || ndctl_cmd_get_firmware_status(cmd)) {
+ rc = ndctl_cmd_submit_xlat(cmd);
+ if (rc < 0) {
jobj = json_object_new_string("unknown");
if (jobj)
json_object_object_add(jhealth, "health_state", jobj);
The ndctl inject-smart command was neglecting to check the 'firmware_status' field that is set by the platform firmware to indicate failure. Use the new ndctl_cmd_submit_xlat facility to include the firmware_status check as part of the command submission. Reported-by: Ami Pathak <ami.g.pathak@intel.com> Cc: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Vishal Verma <vishal.l.verma@intel.com> --- ndctl/inject-smart.c | 16 ++++++++-------- ndctl/util/json-smart.c | 8 ++++---- 2 files changed, 12 insertions(+), 12 deletions(-)