From: Jiri Pirko <[email protected]>

In preparation to dev-less devlinks, add devlink_dev_driver_name()
that returns the driver name stored in devlink struct, and use it in
all trace events.

Signed-off-by: Jiri Pirko <[email protected]>
---
v2->v3:
- using stored devlink->dev_driver
v1->v2:
- added missing symbol export
---
 include/net/devlink.h          |  1 +
 include/trace/events/devlink.h | 12 ++++++------
 net/devlink/core.c             |  6 ++++++
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/include/net/devlink.h b/include/net/devlink.h
index 0afb0958b910..45dec7067a8e 100644
--- a/include/net/devlink.h
+++ b/include/net/devlink.h
@@ -1613,6 +1613,7 @@ struct devlink *priv_to_devlink(void *priv);
 struct device *devlink_to_dev(const struct devlink *devlink);
 const char *devlink_bus_name(const struct devlink *devlink);
 const char *devlink_dev_name(const struct devlink *devlink);
+const char *devlink_dev_driver_name(const struct devlink *devlink);
 
 /* Devlink instance explicit locking */
 void devl_lock(struct devlink *devlink);
diff --git a/include/trace/events/devlink.h b/include/trace/events/devlink.h
index 32304ce9ad15..4f8edf77dfbe 100644
--- a/include/trace/events/devlink.h
+++ b/include/trace/events/devlink.h
@@ -23,7 +23,7 @@ TRACE_EVENT(devlink_hwmsg,
        TP_STRUCT__entry(
                __string(bus_name, devlink_bus_name(devlink))
                __string(dev_name, devlink_dev_name(devlink))
-               __string(driver_name, devlink_to_dev(devlink)->driver->name)
+               __string(driver_name, devlink_dev_driver_name(devlink))
                __field(bool, incoming)
                __field(unsigned long, type)
                __dynamic_array(u8, buf, len)
@@ -57,7 +57,7 @@ TRACE_EVENT(devlink_hwerr,
        TP_STRUCT__entry(
                __string(bus_name, devlink_bus_name(devlink))
                __string(dev_name, devlink_dev_name(devlink))
-               __string(driver_name, devlink_to_dev(devlink)->driver->name)
+               __string(driver_name, devlink_dev_driver_name(devlink))
                __field(int, err)
                __string(msg, msg)
                ),
@@ -87,7 +87,7 @@ TRACE_EVENT(devlink_health_report,
        TP_STRUCT__entry(
                __string(bus_name, devlink_bus_name(devlink))
                __string(dev_name, devlink_dev_name(devlink))
-               __string(driver_name, devlink_to_dev(devlink)->driver->name)
+               __string(driver_name, devlink_dev_driver_name(devlink))
                __string(reporter_name, reporter_name)
                __string(msg, msg)
        ),
@@ -118,7 +118,7 @@ TRACE_EVENT(devlink_health_recover_aborted,
        TP_STRUCT__entry(
                __string(bus_name, devlink_bus_name(devlink))
                __string(dev_name, devlink_dev_name(devlink))
-               __string(driver_name, devlink_to_dev(devlink)->driver->name)
+               __string(driver_name, devlink_dev_driver_name(devlink))
                __string(reporter_name, reporter_name)
                __field(bool, health_state)
                __field(u64, time_since_last_recover)
@@ -152,7 +152,7 @@ TRACE_EVENT(devlink_health_reporter_state_update,
        TP_STRUCT__entry(
                __string(bus_name, devlink_bus_name(devlink))
                __string(dev_name, devlink_dev_name(devlink))
-               __string(driver_name, devlink_to_dev(devlink)->driver->name)
+               __string(driver_name, devlink_dev_driver_name(devlink))
                __string(reporter_name, reporter_name)
                __field(u8, new_state)
        ),
@@ -183,7 +183,7 @@ TRACE_EVENT(devlink_trap_report,
        TP_STRUCT__entry(
                __string(bus_name, devlink_bus_name(devlink))
                __string(dev_name, devlink_dev_name(devlink))
-               __string(driver_name, devlink_to_dev(devlink)->driver->name)
+               __string(driver_name, devlink_dev_driver_name(devlink))
                __string(trap_name, metadata->trap_name)
                __string(trap_group_name, metadata->trap_group_name)
                __array(char, input_dev_name, IFNAMSIZ)
diff --git a/net/devlink/core.c b/net/devlink/core.c
index fcb73d3e56aa..34eb06d88544 100644
--- a/net/devlink/core.c
+++ b/net/devlink/core.c
@@ -260,6 +260,12 @@ const char *devlink_dev_name(const struct devlink *devlink)
 }
 EXPORT_SYMBOL_GPL(devlink_dev_name);
 
+const char *devlink_dev_driver_name(const struct devlink *devlink)
+{
+       return devlink->dev_driver->name;
+}
+EXPORT_SYMBOL_GPL(devlink_dev_driver_name);
+
 struct net *devlink_net(const struct devlink *devlink)
 {
        return read_pnet(&devlink->_net);
-- 
2.51.1


Reply via email to