On (09/07/17 18:36), Sergey Senozhatsky wrote: [..] > > I can look into adding such check-code, but even then the warning will > > only show up if you run on ia64, ppc64 and parisc64.
sorry, not sure I understand the "warning" part. what I'm thinking about is: - every platform that needs descriptor dereference defines its own function. otherwise dereference_descriptor(p) is just (p). - so it's something like arch/platform_abc/include/asm/sections.h #undef dereference_function_descriptor static inline void *dereference_function_descriptor(void *ptr) { if (not_a_function_descriptor(ptr)) return ptr; if (!probe_kernel_address(....)) return function_ip; return ptr; } - so then in lib/vsprintf.c we can do unconditionally case F: case f: case S: case s: case B: ptr = dereference_function_descriptor(ptr); return symbol_string(....); because platforms will take care of proper descriptor dereference, when needed. - and ideally we even can drop %pF-%pf. because there won't be any difference between `S' and `F'. something like this. let's see if this is possible. any thoughts? -ss