qed: use devlink logic to report errors
Use devlink_health_report to push error indications. We implement this in qede via callback function to make it possible to reuse the same for other drivers sitting on top of qed in future. Signed-off-by: Igor Russkikh <irusskikh@marvell.com> Signed-off-by: Alexander Lobakin <alobakin@marvell.com> Signed-off-by: Michal Kalderon <michal.kalderon@marvell.com> Acked-by: Jakub Kicinski <kuba@kernel.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

vanhempi
9524067b9a
commit
4f5a8db27e
@@ -14,6 +14,24 @@ enum qed_devlink_param_id {
|
||||
QED_DEVLINK_PARAM_ID_IWARP_CMT,
|
||||
};
|
||||
|
||||
struct qed_fw_fatal_ctx {
|
||||
enum qed_hw_err_type err_type;
|
||||
};
|
||||
|
||||
int qed_report_fatal_error(struct devlink *devlink, enum qed_hw_err_type err_type)
|
||||
{
|
||||
struct qed_devlink *qdl = devlink_priv(devlink);
|
||||
struct qed_fw_fatal_ctx fw_fatal_ctx = {
|
||||
.err_type = err_type,
|
||||
};
|
||||
|
||||
if (qdl->fw_reporter)
|
||||
devlink_health_report(qdl->fw_reporter,
|
||||
"Fatal error occurred", &fw_fatal_ctx);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const struct devlink_health_reporter_ops qed_fw_fatal_reporter_ops = {
|
||||
.name = "fw_fatal",
|
||||
};
|
||||
|
@@ -15,4 +15,6 @@ void qed_devlink_unregister(struct devlink *devlink);
|
||||
void qed_fw_reporters_create(struct devlink *devlink);
|
||||
void qed_fw_reporters_destroy(struct devlink *devlink);
|
||||
|
||||
int qed_report_fatal_error(struct devlink *dl, enum qed_hw_err_type err_type);
|
||||
|
||||
#endif
|
||||
|
@@ -3007,6 +3007,7 @@ const struct qed_common_ops qed_common_ops_pass = {
|
||||
.update_msglvl = &qed_init_dp,
|
||||
.devlink_register = qed_devlink_register,
|
||||
.devlink_unregister = qed_devlink_unregister,
|
||||
.report_fatal_error = qed_report_fatal_error,
|
||||
.dbg_all_data = &qed_dbg_all_data,
|
||||
.dbg_all_data_size = &qed_dbg_all_data_size,
|
||||
.chain_alloc = &qed_chain_alloc,
|
||||
|
Viittaa uudesa ongelmassa
Block a user