On Mon, 14 Jul 2025 09:54:33 +0200 Thorsten Blum <thorsten.b...@linux.dev> wrote:
> diff --git a/include/trace/events/fib6.h b/include/trace/events/fib6.h > index 8d22b2e98d48..903a18836bc6 100644 > --- a/include/trace/events/fib6.h > +++ b/include/trace/events/fib6.h > @@ -64,11 +64,9 @@ TRACE_EVENT(fib6_table_lookup, > __entry->dport = 0; > } > > - if (res->nh && res->nh->fib_nh_dev) { > - strscpy(__entry->name, res->nh->fib_nh_dev->name, > IFNAMSIZ); > - } else { > - strcpy(__entry->name, "-"); > - } > + strscpy(__entry->name, res->nh && res->nh->fib_nh_dev ? > + res->nh->fib_nh_dev->name : "-"); > + > if (res->f6i == net->ipv6.fib6_null_entry) { > in6 = (struct in6_addr *)__entry->gw; > *in6 = in6addr_any; Hmm, why is that string hard coded to 16 bytes and doesn't use the dynamic string facility? Perhaps something like this? [ I didn't even compile the below, so it may have a syntax error ] -- Steve diff --git a/include/trace/events/fib6.h b/include/trace/events/fib6.h index 8d22b2e98d48..98d2edb02431 100644 --- a/include/trace/events/fib6.h +++ b/include/trace/events/fib6.h @@ -32,7 +32,8 @@ TRACE_EVENT(fib6_table_lookup, __field( u16, dport ) __field( u8, proto ) __field( u8, rt_type ) - __array( char, name, IFNAMSIZ ) + __string( name, res->nh && res->nh->fib_nh_dev ? + res->nh->fib_nh_dev->name : "-") __array( __u8, gw, 16 ) ), @@ -64,11 +65,7 @@ TRACE_EVENT(fib6_table_lookup, __entry->dport = 0; } - if (res->nh && res->nh->fib_nh_dev) { - strscpy(__entry->name, res->nh->fib_nh_dev->name, IFNAMSIZ); - } else { - strcpy(__entry->name, "-"); - } + __assign_str(name); if (res->f6i == net->ipv6.fib6_null_entry) { in6 = (struct in6_addr *)__entry->gw; *in6 = in6addr_any; @@ -82,7 +79,7 @@ TRACE_EVENT(fib6_table_lookup, __entry->tb_id, __entry->oif, __entry->iif, __entry->proto, __entry->src, __entry->sport, __entry->dst, __entry->dport, __entry->flowlabel, __entry->tos, __entry->scope, - __entry->flags, __entry->name, __entry->gw, __entry->err) + __entry->flags, __get_str(name), __entry->gw, __entry->err) ); #endif /* _TRACE_FIB6_H */