On (10/04/17 12:40), Petr Mladek wrote:
quoted
+unsigned long dereference_module_function_descriptor(struct module *mod,
+ unsigned long addr)
+{
+ unsigned long start_opd = (Elf64_Addr)mod->core_layout.base +
+ mod->arch.fdesc_offset;
+ unsigned long end_opd = start_opd +
+ mod->arch.fdesc_count * sizeof(Elf64_Fdesc);
I know that this is used in rather slow paths. But it still might
make sense to have these section borders pre-computed and
stored in struct mod_arch_specific. I mean to do similar
thing that we do on powerpc.
Well, we could do this in a followup patch if parisc people
wanted it.
quoted
+ if (addr < start_opd || addr >= end_opd)
+ return addr;
+
+ return dereference_function_descriptor(addr);
+}
+#endif
Otherwise the patch looks fine to me.
Reviewed-by: Petr Mladek <pmladek@suse.com>
let's do it later, if need be.
-ss