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

Sergey Senozhatsky sergey.senozhatsky.work at gmail.com
Thu Oct 19 17:44:25 AEDT 2017


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 at suse.com>

let's do it later, if need be.

	-ss


More information about the Linuxppc-dev mailing list