TP_PROTO(struct va_format *vaf),
        TP_ARGS(vaf),
        TP_STRUCT__entry(
-               __dynamic_array(char, msg, MAX_MSG_LEN)
+               __vstring(msg, vaf->fmt, vaf->va)
        ),
        TP_fast_assign(
-               WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg),
-                                      MAX_MSG_LEN, vaf->fmt,
-                                      *vaf->va) >= MAX_MSG_LEN);
+               __assign_vstr(msg, vaf->fmt, vaf->va);
        ),
        TP_printk("%s", __get_str(msg))
 );
        TP_STRUCT__entry(
                __field(u32, level)
                __string(function, function)
-               __dynamic_array(char, msg, MAX_MSG_LEN)
+               __vstring(msg, vaf->fmt, vaf->va)
        ),
        TP_fast_assign(
                __entry->level = level;
                __assign_str(function, function);
-               WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg),
-                                      MAX_MSG_LEN, vaf->fmt,
-                                      *vaf->va) >= MAX_MSG_LEN);
+               __assign_vstr(msg, vaf->fmt, vaf->va);
        ),
        TP_printk("%s", __get_str(msg))
 );