[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Sun, 5 May 2019 17:42:12 +0200
From: Jiri Pirko <jiri@...nulli.us>
To: Saeed Mahameed <saeedm@...lanox.com>
Cc: "David S. Miller" <davem@...emloft.net>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
Jiri Pirko <jiri@...lanox.com>,
Moshe Shemesh <moshe@...lanox.com>,
Eran Ben Elisha <eranbe@...lanox.com>
Subject: Re: [net-next 09/15] net/mlx5: Create FW devlink health reporter
Sun, May 05, 2019 at 02:33:23AM CEST, saeedm@...lanox.com wrote:
>From: Moshe Shemesh <moshe@...lanox.com>
>
>Create mlx5_devlink_health_reporter for FW reporter. The FW reporter
>implements devlink_health_reporter diagnose callback.
>
>The fw reporter diagnose command can be triggered any time by the user
>to check current fw status.
>In healthy status, it will return clear syndrome. Otherwise it will dump
>the health info buffer.
>
>Command example and output on healthy status:
>$ devlink health diagnose pci/0000:82:00.0 reporter fw
>Syndrome: 0
>
>Command example and output on non healthy status:
>$ devlink health diagnose pci/0000:82:00.0 reporter fw
>diagnose data:
>assert_var[0] 0xfc3fc043
>assert_var[1] 0x0001b41c
>assert_var[2] 0x00000000
>assert_var[3] 0x00000000
>assert_var[4] 0x00000000
>assert_exit_ptr 0x008033b4
>assert_callra 0x0080365c
>fw_ver 16.24.1000
>hw_id 0x0000020d
>irisc_index 0
>synd 0x8: unrecoverable hardware error
>ext_synd 0x003d
>raw fw_ver 0x101803e8
>
>Signed-off-by: Moshe Shemesh <moshe@...lanox.com>
>Signed-off-by: Eran Ben Elisha <eranbe@...lanox.com>
>Signed-off-by: Saeed Mahameed <saeedm@...lanox.com>
[...]
>+static int
>+mlx5_fw_reporter_diagnose(struct devlink_health_reporter *reporter,
>+ struct devlink_fmsg *fmsg)
>+{
>+ struct mlx5_core_dev *dev = devlink_health_reporter_priv(reporter);
>+ struct mlx5_core_health *health = &dev->priv.health;
>+ u8 synd;
>+ int err;
>+
>+ mutex_lock(&health->info_buf_lock);
>+ mlx5_get_health_info(dev, &synd);
>+
>+ if (!synd) {
>+ mutex_unlock(&health->info_buf_lock);
>+ return devlink_fmsg_u8_pair_put(fmsg, "Syndrome", synd);
>+ }
>+
>+ err = devlink_fmsg_string_pair_put(fmsg, "diagnose data",
>+ health->info_buf);
No! This is wrong! You are sneaking in text blob. Please put the info in
structured form using proper fmsg helpers.
Powered by blists - more mailing lists