Messages in this thread | | | Date | Tue, 24 Jun 2008 19:58:36 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: [PATCH 4/5 v2] x86 boot: show pfn addresses in hex not decimal in some kernel info printks |
| |
On Tue, 24 Jun 2008, H. Peter Anvin wrote: > > What we really should have is %p produce this format. For some odd reason, > right now %p produces numbers without the 0x prefix.
Actually, I'd like to make %p produce the format that you right now have to jump through insane hoops for: symbolic addresses.
Right now you have to do something insane like
print_symbol(KERN_WARNING "address: %s\n", ptr);
to print a symbolic version, and it sucks because it's actually just able to print symbols, you cannot mix any other types in there.
I think it would be much easier to use if "%p" just did the symbolic version (if it's relevant) automatically. If you _just_ want the hex representation, you can already always just use %#lx and a cast.
(Of course, then for things that we can't make into symbolic names, we'd have to fall back to just the hex representation, and whether that one then includes the 0x or not I don't have strong opinions on.)
And yes, to avoid messing with current users, maybe we should only do that with %#p (which I don't think anybody uses right now, although I suspect it actually adds the '0x' you'd like). The '#' thing is, of course, all about 'alternate forms'. But I worry that gcc warns about undefined formatting behavior.
Linus
| |