mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-12-25 21:19:04 +00:00
bnxt_en: devlink health: use retained error fmsg API
Drop unneeded error checking. devlink_fmsg_*() family of functions is now retaining errors, so there is no need to check for them after each call. Reviewed-by: Jesse Brandeburg <jesse.brandeburg@intel.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Signed-off-by: Przemek Kitszel <przemyslaw.kitszel@intel.com> Reviewed-by: Simon Horman <horms@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
47957bb3f7
commit
074e1b4221
@ -104,20 +104,21 @@ static int bnxt_fw_diagnose(struct devlink_health_reporter *reporter,
|
||||
struct bnxt *bp = devlink_health_reporter_priv(reporter);
|
||||
struct bnxt_fw_health *h = bp->fw_health;
|
||||
u32 fw_status, fw_resets;
|
||||
int rc;
|
||||
|
||||
if (test_bit(BNXT_STATE_IN_FW_RESET, &bp->state))
|
||||
return devlink_fmsg_string_pair_put(fmsg, "Status", "recovering");
|
||||
if (test_bit(BNXT_STATE_IN_FW_RESET, &bp->state)) {
|
||||
devlink_fmsg_string_pair_put(fmsg, "Status", "recovering");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!h->status_reliable)
|
||||
return devlink_fmsg_string_pair_put(fmsg, "Status", "unknown");
|
||||
if (!h->status_reliable) {
|
||||
devlink_fmsg_string_pair_put(fmsg, "Status", "unknown");
|
||||
return 0;
|
||||
}
|
||||
|
||||
mutex_lock(&h->lock);
|
||||
fw_status = bnxt_fw_health_readl(bp, BNXT_FW_HEALTH_REG);
|
||||
if (BNXT_FW_IS_BOOTING(fw_status)) {
|
||||
rc = devlink_fmsg_string_pair_put(fmsg, "Status", "initializing");
|
||||
if (rc)
|
||||
goto unlock;
|
||||
devlink_fmsg_string_pair_put(fmsg, "Status", "initializing");
|
||||
} else if (h->severity || fw_status != BNXT_FW_STATUS_HEALTHY) {
|
||||
if (!h->severity) {
|
||||
h->severity = SEVERITY_FATAL;
|
||||
@ -126,58 +127,35 @@ static int bnxt_fw_diagnose(struct devlink_health_reporter *reporter,
|
||||
devlink_health_report(h->fw_reporter,
|
||||
"FW error diagnosed", h);
|
||||
}
|
||||
rc = devlink_fmsg_string_pair_put(fmsg, "Status", "error");
|
||||
if (rc)
|
||||
goto unlock;
|
||||
rc = devlink_fmsg_u32_pair_put(fmsg, "Syndrome", fw_status);
|
||||
if (rc)
|
||||
goto unlock;
|
||||
devlink_fmsg_string_pair_put(fmsg, "Status", "error");
|
||||
devlink_fmsg_u32_pair_put(fmsg, "Syndrome", fw_status);
|
||||
} else {
|
||||
rc = devlink_fmsg_string_pair_put(fmsg, "Status", "healthy");
|
||||
if (rc)
|
||||
goto unlock;
|
||||
devlink_fmsg_string_pair_put(fmsg, "Status", "healthy");
|
||||
}
|
||||
|
||||
rc = devlink_fmsg_string_pair_put(fmsg, "Severity",
|
||||
bnxt_health_severity_str(h->severity));
|
||||
if (rc)
|
||||
goto unlock;
|
||||
devlink_fmsg_string_pair_put(fmsg, "Severity",
|
||||
bnxt_health_severity_str(h->severity));
|
||||
|
||||
if (h->severity) {
|
||||
rc = devlink_fmsg_string_pair_put(fmsg, "Remedy",
|
||||
bnxt_health_remedy_str(h->remedy));
|
||||
if (rc)
|
||||
goto unlock;
|
||||
if (h->remedy == REMEDY_DEVLINK_RECOVER) {
|
||||
rc = devlink_fmsg_string_pair_put(fmsg, "Impact",
|
||||
"traffic+ntuple_cfg");
|
||||
if (rc)
|
||||
goto unlock;
|
||||
}
|
||||
devlink_fmsg_string_pair_put(fmsg, "Remedy",
|
||||
bnxt_health_remedy_str(h->remedy));
|
||||
if (h->remedy == REMEDY_DEVLINK_RECOVER)
|
||||
devlink_fmsg_string_pair_put(fmsg, "Impact",
|
||||
"traffic+ntuple_cfg");
|
||||
}
|
||||
|
||||
unlock:
|
||||
mutex_unlock(&h->lock);
|
||||
if (rc || !h->resets_reliable)
|
||||
return rc;
|
||||
if (!h->resets_reliable)
|
||||
return 0;
|
||||
|
||||
fw_resets = bnxt_fw_health_readl(bp, BNXT_FW_RESET_CNT_REG);
|
||||
rc = devlink_fmsg_u32_pair_put(fmsg, "Resets", fw_resets);
|
||||
if (rc)
|
||||
return rc;
|
||||
rc = devlink_fmsg_u32_pair_put(fmsg, "Arrests", h->arrests);
|
||||
if (rc)
|
||||
return rc;
|
||||
rc = devlink_fmsg_u32_pair_put(fmsg, "Survivals", h->survivals);
|
||||
if (rc)
|
||||
return rc;
|
||||
rc = devlink_fmsg_u32_pair_put(fmsg, "Discoveries", h->discoveries);
|
||||
if (rc)
|
||||
return rc;
|
||||
rc = devlink_fmsg_u32_pair_put(fmsg, "Fatalities", h->fatalities);
|
||||
if (rc)
|
||||
return rc;
|
||||
return devlink_fmsg_u32_pair_put(fmsg, "Diagnoses", h->diagnoses);
|
||||
devlink_fmsg_u32_pair_put(fmsg, "Resets", fw_resets);
|
||||
devlink_fmsg_u32_pair_put(fmsg, "Arrests", h->arrests);
|
||||
devlink_fmsg_u32_pair_put(fmsg, "Survivals", h->survivals);
|
||||
devlink_fmsg_u32_pair_put(fmsg, "Discoveries", h->discoveries);
|
||||
devlink_fmsg_u32_pair_put(fmsg, "Fatalities", h->fatalities);
|
||||
devlink_fmsg_u32_pair_put(fmsg, "Diagnoses", h->diagnoses);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int bnxt_fw_dump(struct devlink_health_reporter *reporter,
|
||||
@ -203,19 +181,12 @@ static int bnxt_fw_dump(struct devlink_health_reporter *reporter,
|
||||
|
||||
rc = bnxt_get_coredump(bp, BNXT_DUMP_LIVE, data, &dump_len);
|
||||
if (!rc) {
|
||||
rc = devlink_fmsg_pair_nest_start(fmsg, "core");
|
||||
if (rc)
|
||||
goto exit;
|
||||
rc = devlink_fmsg_binary_pair_put(fmsg, "data", data, dump_len);
|
||||
if (rc)
|
||||
goto exit;
|
||||
rc = devlink_fmsg_u32_pair_put(fmsg, "size", dump_len);
|
||||
if (rc)
|
||||
goto exit;
|
||||
rc = devlink_fmsg_pair_nest_end(fmsg);
|
||||
devlink_fmsg_pair_nest_start(fmsg, "core");
|
||||
devlink_fmsg_binary_pair_put(fmsg, "data", data, dump_len);
|
||||
devlink_fmsg_u32_pair_put(fmsg, "size", dump_len);
|
||||
devlink_fmsg_pair_nest_end(fmsg);
|
||||
}
|
||||
|
||||
exit:
|
||||
vfree(data);
|
||||
return rc;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user