On Fri, 2022-07-15 at 17:24 -0400, Steven Rostedt wrote: > On Fri, 15 Jul 2022 18:01:44 +0800 > Chunfeng Yun <chunfeng.yun@xxxxxxxxxxxx> wrote: > > > irq/254-1120100-137 [000] d..1. 266.629662: mtu3_log: > > 11201000.usb: ep0_state SETUPr-speed > > > > "r-speed" seems the remain of last log; > > I found an off-by-one bug in the vstring patch. I'll rebase, test and > try > again. > > In the mean time, care to add this on top to make sure it's fixed? > > Thanks! > > -- Steve > > diff --git a/include/linux/trace_events.h > b/include/linux/trace_events.h > index e6f8ba52a958..b18759a673c6 100644 > --- a/include/linux/trace_events.h > +++ b/include/linux/trace_events.h > @@ -922,16 +922,16 @@ perf_trace_buf_submit(void *raw_data, int size, > int rctx, u16 type, > * gcc warns that you can not use a va_list in an inlined > * function. But lets me make it into a macro :-/ > */ > -#define __trace_event_vstr_len(fmt, va) \ > -({ \ > - va_list __ap; \ > - int __ret; \ > - \ > - va_copy(__ap, *(va)); \ > - __ret = vsnprintf(NULL, 0, fmt, __ap); \ > - va_end(__ap); \ > - \ > - min(__ret, TRACE_EVENT_STR_MAX); \ > +#define __trace_event_vstr_len(fmt, va) \ > +({ \ > + va_list __ap; \ > + int __ret; \ > + \ > + va_copy(__ap, *(va)); \ > + __ret = vsnprintf(NULL, 0, fmt, __ap) + 1; \ It works fine now, thanks a lot > + va_end(__ap); \ > + \ > + min(__ret, TRACE_EVENT_STR_MAX); \ > }) > > #endif /* _LINUX_TRACE_EVENT_H */