^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0 */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) #if IS_ENABLED(CONFIG_NET_DEVLINK)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) #undef TRACE_SYSTEM
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5) #define TRACE_SYSTEM devlink
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #if !defined(_TRACE_DEVLINK_H) || defined(TRACE_HEADER_MULTI_READ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define _TRACE_DEVLINK_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) #include <linux/device.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #include <net/devlink.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #include <linux/tracepoint.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) * Tracepoint for devlink hardware message:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) TRACE_EVENT(devlink_hwmsg,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) TP_PROTO(const struct devlink *devlink, bool incoming,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) unsigned long type, const u8 *buf, size_t len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) TP_ARGS(devlink, incoming, type, buf, len),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) __string(bus_name, devlink->dev->bus->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) __string(dev_name, dev_name(devlink->dev))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) __string(driver_name, devlink->dev->driver->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) __field(bool, incoming)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) __field(unsigned long, type)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) __dynamic_array(u8, buf, len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) __field(size_t, len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) __assign_str(bus_name, devlink->dev->bus->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) __assign_str(dev_name, dev_name(devlink->dev));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) __assign_str(driver_name, devlink->dev->driver->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) __entry->incoming = incoming;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) __entry->type = type;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) memcpy(__get_dynamic_array(buf), buf, len);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) __entry->len = len;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) TP_printk("bus_name=%s dev_name=%s driver_name=%s incoming=%d type=%lu buf=0x[%*phD] len=%zu",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) __get_str(bus_name), __get_str(dev_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) __get_str(driver_name), __entry->incoming, __entry->type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46) (int) __entry->len, __get_dynamic_array(buf), __entry->len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) * Tracepoint for devlink hardware error:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) TRACE_EVENT(devlink_hwerr,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) TP_PROTO(const struct devlink *devlink, int err, const char *msg),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) TP_ARGS(devlink, err, msg),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) __string(bus_name, devlink->dev->bus->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) __string(dev_name, dev_name(devlink->dev))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) __string(driver_name, devlink->dev->driver->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) __field(int, err)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) __string(msg, msg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) __assign_str(bus_name, devlink->dev->bus->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) __assign_str(dev_name, dev_name(devlink->dev));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) __assign_str(driver_name, devlink->dev->driver->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) __entry->err = err;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) __assign_str(msg, msg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) TP_printk("bus_name=%s dev_name=%s driver_name=%s err=%d %s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74) __get_str(bus_name), __get_str(dev_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) __get_str(driver_name), __entry->err, __get_str(msg))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 76) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 77)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 78) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 79) * Tracepoint for devlink health message:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 80) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 81) TRACE_EVENT(devlink_health_report,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 82) TP_PROTO(const struct devlink *devlink, const char *reporter_name,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 83) const char *msg),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 84)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 85) TP_ARGS(devlink, reporter_name, msg),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 86)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 87) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 88) __string(bus_name, devlink->dev->bus->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 89) __string(dev_name, dev_name(devlink->dev))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 90) __string(driver_name, devlink->dev->driver->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 91) __string(reporter_name, msg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 92) __string(msg, msg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 93) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 94)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 95) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 96) __assign_str(bus_name, devlink->dev->bus->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 97) __assign_str(dev_name, dev_name(devlink->dev));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 98) __assign_str(driver_name, devlink->dev->driver->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 99) __assign_str(reporter_name, reporter_name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 100) __assign_str(msg, msg);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 101) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 102)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 103) TP_printk("bus_name=%s dev_name=%s driver_name=%s reporter_name=%s: %s",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 104) __get_str(bus_name), __get_str(dev_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 105) __get_str(driver_name), __get_str(reporter_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 106) __get_str(msg))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 107) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 108)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 109) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 110) * Tracepoint for devlink health recover aborted message:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 111) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 112) TRACE_EVENT(devlink_health_recover_aborted,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 113) TP_PROTO(const struct devlink *devlink, const char *reporter_name,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 114) bool health_state, u64 time_since_last_recover),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 115)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 116) TP_ARGS(devlink, reporter_name, health_state, time_since_last_recover),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 117)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 118) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 119) __string(bus_name, devlink->dev->bus->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 120) __string(dev_name, dev_name(devlink->dev))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 121) __string(driver_name, devlink->dev->driver->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 122) __string(reporter_name, reporter_name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 123) __field(bool, health_state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 124) __field(u64, time_since_last_recover)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 125) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 126)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 127) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 128) __assign_str(bus_name, devlink->dev->bus->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 129) __assign_str(dev_name, dev_name(devlink->dev));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 130) __assign_str(driver_name, devlink->dev->driver->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 131) __assign_str(reporter_name, reporter_name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 132) __entry->health_state = health_state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 133) __entry->time_since_last_recover = time_since_last_recover;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 134) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 135)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 136) TP_printk("bus_name=%s dev_name=%s driver_name=%s reporter_name=%s: health_state=%d time_since_last_recover=%llu recover aborted",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 137) __get_str(bus_name), __get_str(dev_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 138) __get_str(driver_name), __get_str(reporter_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 139) __entry->health_state,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 140) __entry->time_since_last_recover)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 141) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 142)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 143) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 144) * Tracepoint for devlink health reporter state update:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 145) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 146) TRACE_EVENT(devlink_health_reporter_state_update,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 147) TP_PROTO(const struct devlink *devlink, const char *reporter_name,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 148) bool new_state),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 149)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 150) TP_ARGS(devlink, reporter_name, new_state),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 151)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 152) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 153) __string(bus_name, devlink->dev->bus->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 154) __string(dev_name, dev_name(devlink->dev))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 155) __string(driver_name, devlink->dev->driver->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 156) __string(reporter_name, reporter_name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 157) __field(u8, new_state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 158) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 159)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 160) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 161) __assign_str(bus_name, devlink->dev->bus->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 162) __assign_str(dev_name, dev_name(devlink->dev));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 163) __assign_str(driver_name, devlink->dev->driver->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 164) __assign_str(reporter_name, reporter_name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 165) __entry->new_state = new_state;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 166) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 167)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 168) TP_printk("bus_name=%s dev_name=%s driver_name=%s reporter_name=%s: new_state=%d",
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 169) __get_str(bus_name), __get_str(dev_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 170) __get_str(driver_name), __get_str(reporter_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 171) __entry->new_state)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 172) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 173)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 174) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 175) * Tracepoint for devlink packet trap:
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 176) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 177) TRACE_EVENT(devlink_trap_report,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 178) TP_PROTO(const struct devlink *devlink, struct sk_buff *skb,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 179) const struct devlink_trap_metadata *metadata),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 180)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 181) TP_ARGS(devlink, skb, metadata),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 182)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 183) TP_STRUCT__entry(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 184) __string(bus_name, devlink->dev->bus->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 185) __string(dev_name, dev_name(devlink->dev))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 186) __string(driver_name, devlink->dev->driver->name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 187) __string(trap_name, metadata->trap_name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 188) __string(trap_group_name, metadata->trap_group_name)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 189) __dynamic_array(char, input_dev_name, IFNAMSIZ)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 190) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 191)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 192) TP_fast_assign(
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 193) struct net_device *input_dev = metadata->input_dev;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 194)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 195) __assign_str(bus_name, devlink->dev->bus->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 196) __assign_str(dev_name, dev_name(devlink->dev));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 197) __assign_str(driver_name, devlink->dev->driver->name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 198) __assign_str(trap_name, metadata->trap_name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 199) __assign_str(trap_group_name, metadata->trap_group_name);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 200) __assign_str(input_dev_name,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 201) (input_dev ? input_dev->name : "NULL"));
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 202) ),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 203)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 204) TP_printk("bus_name=%s dev_name=%s driver_name=%s trap_name=%s "
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 205) "trap_group_name=%s input_dev_name=%s", __get_str(bus_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 206) __get_str(dev_name), __get_str(driver_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 207) __get_str(trap_name), __get_str(trap_group_name),
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 208) __get_str(input_dev_name))
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 209) );
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 210)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 211) #endif /* _TRACE_DEVLINK_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 212)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 213) /* This part must be outside protection */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 214) #include <trace/define_trace.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 215)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 216) #else /* CONFIG_NET_DEVLINK */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 217)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 218) #if !defined(_TRACE_DEVLINK_H)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 219) #define _TRACE_DEVLINK_H
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 220)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 221) #include <net/devlink.h>
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 222)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 223) static inline void trace_devlink_hwmsg(const struct devlink *devlink,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 224) bool incoming, unsigned long type,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 225) const u8 *buf, size_t len)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 226) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 227) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 228)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 229) static inline void trace_devlink_hwerr(const struct devlink *devlink,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 230) int err, const char *msg)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 231) {
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 232) }
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 233) #endif /* _TRACE_DEVLINK_H */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 234)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 235) #endif