Messages in this thread | | | Date | Thu, 12 Mar 2015 10:43:51 -0400 | From | John David Anglin <> | Subject | Re: [PATCH 14/22] parisc: %pF is only for function pointers |
| |
On 2015-03-12 8:11 AM, James Bottomley wrote: > On Wed, 2015-03-11 at 22:13 -0500, Scott Wood wrote: >> Use %pS for actual addresses, otherwise you'll get bad output >> on arches like ppc64 where %pF expects a function descriptor. Even on >> other architectures, refrain from setting a bad example that people >> copy. > Are you sure about this? Parisc64 is a function description > architecture. There may be a misunderstanding about what > __builtin_return_address(0) is supposed to return, but I'm certain the > person who added the code thought it returned a function pointer, which > on parisc64 would be a descriptor.
__builtin_return_address(0) returns the return address in the calling procedure ignoring import/export stubs. There are no function descriptors for return addresses. Thus, it can't return a function pointer.
There are no function descriptors in 32-bit parisc when the -mfast-indirect-calls compiler option is used.
This option used to be used for 64-bit kernel builds but this broke when the -mfast-indirect-calls was fixed for user space (gcl uses it). I worked a bit on trying to eliminate function descriptors from the 64-bit kernel for performance but I don't have a working change.
Dave
-- John David Anglin dave.anglin@bell.net
| |