Re: [PATCHv3 5/7] parisc64: Add .opd based function descriptor dereference

From: Sergey Senozhatsky
Date: Thu Oct 19 2017 - 02:44:36 EST


On (10/04/17 12:40), Petr Mladek wrote:
> > +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.
>
>
> > + 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@xxxxxxxx>

let's do it later, if need be.

-ss