On 20/04/2020 18.32, Joe Perches wrote: > On Mon, 2020-04-20 at 16:29 +0100, Alan Maguire wrote: >>>> struct sk_buff *skb = alloc_skb(64, GFP_KERNEL); >>>> >>>> pr_info("%pTN<struct sk_buff>", skb); >>> >>> why follow "TN" convention? >>> I think "%p<struct sk_buff>" is much more obvious, unambiguous, and >>> equally easy to parse. >>> >> >> That was my first choice, but the first character >> after the 'p' in the '%p' specifier signifies the >> pointer format specifier. If we use '<', and have >> '%p<', where do we put the modifiers? '%p<xYz struct foo>' >> seems clunky to me. There's also the issue that %p followed by alnum has been understood to be reserved/specially handled by the kernel's printf implementation for a decade, while other characters have so far been treated as "OK, this was just a normal %p". A quick grep for %p< only gives a hit in drivers/scsi/dc395x.c, but there could be others (with field width modifier between % and p), and in any case I think it's a bad idea to extend the set of characters that cannot follow %p. Rasmus