Skip to content

Commit b38a75d

Browse files
jpirkodavem330
authored andcommitted
mlxsw: core: Trace EMAD messages
Trace EMAD messages going down to HW and up from HW. Devlink needs to be registered before EMAD init so the trace function can be called with valid devlink handle. Signed-off-by: Jiri Pirko <[email protected]> v1->v2: - Use trace_devlink_hwmsg directly Signed-off-by: David S. Miller <[email protected]>
1 parent e5224f0 commit b38a75d

File tree

1 file changed

+13
-5
lines changed
  • drivers/net/ethernet/mellanox/mlxsw

1 file changed

+13
-5
lines changed

drivers/net/ethernet/mellanox/mlxsw/core.c

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
#include <linux/workqueue.h>
5959
#include <asm/byteorder.h>
6060
#include <net/devlink.h>
61+
#include <trace/events/devlink.h>
6162

6263
#include "core.h"
6364
#include "item.h"
@@ -447,6 +448,10 @@ static int mlxsw_emad_transmit(struct mlxsw_core *mlxsw_core,
447448
if (!skb)
448449
return -ENOMEM;
449450

451+
trace_devlink_hwmsg(priv_to_devlink(mlxsw_core), false, 0,
452+
skb->data + mlxsw_core->driver->txhdr_len,
453+
skb->len - mlxsw_core->driver->txhdr_len);
454+
450455
atomic_set(&trans->active, 1);
451456
err = mlxsw_core_skb_transmit(mlxsw_core, skb, &trans->tx_info);
452457
if (err) {
@@ -529,6 +534,9 @@ static void mlxsw_emad_rx_listener_func(struct sk_buff *skb, u8 local_port,
529534
struct mlxsw_core *mlxsw_core = priv;
530535
struct mlxsw_reg_trans *trans;
531536

537+
trace_devlink_hwmsg(priv_to_devlink(mlxsw_core), true, 0,
538+
skb->data, skb->len);
539+
532540
if (!mlxsw_emad_is_resp(skb))
533541
goto free_skb;
534542

@@ -1110,14 +1118,14 @@ int mlxsw_core_bus_device_register(const struct mlxsw_bus_info *mlxsw_bus_info,
11101118
if (err)
11111119
goto err_emad_init;
11121120

1113-
err = mlxsw_hwmon_init(mlxsw_core, mlxsw_bus_info, &mlxsw_core->hwmon);
1114-
if (err)
1115-
goto err_hwmon_init;
1116-
11171121
err = devlink_register(devlink, mlxsw_bus_info->dev);
11181122
if (err)
11191123
goto err_devlink_register;
11201124

1125+
err = mlxsw_hwmon_init(mlxsw_core, mlxsw_bus_info, &mlxsw_core->hwmon);
1126+
if (err)
1127+
goto err_hwmon_init;
1128+
11211129
err = mlxsw_driver->init(mlxsw_core, mlxsw_bus_info);
11221130
if (err)
11231131
goto err_driver_init;
@@ -1131,9 +1139,9 @@ int mlxsw_core_bus_device_register(const struct mlxsw_bus_info *mlxsw_bus_info,
11311139
err_debugfs_init:
11321140
mlxsw_core->driver->fini(mlxsw_core);
11331141
err_driver_init:
1142+
err_hwmon_init:
11341143
devlink_unregister(devlink);
11351144
err_devlink_register:
1136-
err_hwmon_init:
11371145
mlxsw_emad_fini(mlxsw_core);
11381146
err_emad_init:
11391147
mlxsw_bus->fini(bus_priv);

0 commit comments

Comments
 (0)