[PATCH] vsprintf: Use %p4chR instead of %p4cn for reading data in reversed host ordering

Aditya Garg gargaditya08 at live.com
Tue Apr 29 13:53:25 UTC 2025



Hi Petr

> The generic FourCC format always prints the data using the big endian
> order. It is generic because it allows to read the data using a custom
> ordering.
> 
> The current code uses "n" for reading data in the reverse host ordering.
> It makes the 4 variants [hnbl] consistent with the generic printing
> of IPv4 addresses.
> 
> Unfortunately, it creates confusion on big endian systems. For example,
> it shows the data &(u32)0x67503030 as
> 
> 	%p4cn	00Pg (0x30305067)
> 
> But people expect that the ordering stays the same. The network ordering
> is a big-endian ordering.
> 
> The problem is that the semantic is not the same. The modifiers affect
> the output ordering of IPv4 addresses while they affect the reading order
> in case of FourCC code.
> 
> Avoid the confusion by replacing the "n" modifier with "hR", aka
> reverse host ordering. It is inspired by the existing %p[mM]R printf
> format.
> 
> Reported-by: Geert Uytterhoeven <geert at linux-m68k.org>
> Closes: https://lore.kernel.org/r/CAMuHMdV9tX=TG7E_CrSF=2PY206tXf+_yYRuacG48EWEtJLo-Q@mail.gmail.com
> Signed-off-by: Petr Mladek <pmladek at suse.com>
> ---

I just realised you forgot to fix checkpatch.pl with your update:

https://gitlab.freedesktop.org/drm/misc/kernel/-/blob/1938479b2720ebc05aab349c7dc0a53921ff7c87/scripts/checkpatch.pl#L6894


More information about the dri-devel mailing list