| Subject | Re: [PATCH 18/22] usb: gadget: serial: %pF is only for function pointers | From | Scott Wood <> | Date | Thu, 12 Mar 2015 11:40:26 -0500 |
| |
On Thu, 2015-03-12 at 12:51 -0300, Fabio Estevam wrote: > On Thu, Mar 12, 2015 at 12:13 AM, Scott Wood <scottwood@freescale.com> wrote: > > Use %pS for actual addresses, otherwise you'll get bad output > > on arches like ppc64 where %pF expects a function descriptor. > > From Documentation/printk-formats.txt: > > "On ia64, ppc64 and parisc64 architectures function pointers are > actually function descriptors which must first be resolved. The 'F' and > 'f' specifiers perform this resolution and then provide the same > functionality as the 'S' and 's' specifiers." > > ,so current code should work fine on ppc64, right?
No. __builtin_return_address() returns a pointer to an instruction, not a function pointer descriptor. If you use %pF on the former, it'll print instruction opcodes as if they were the address.
-Scott
|