From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751628AbdJSGob (ORCPT ); Thu, 19 Oct 2017 02:44:31 -0400 Received: from mail-pf0-f196.google.com ([209.85.192.196]:53838 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751472AbdJSGo3 (ORCPT ); Thu, 19 Oct 2017 02:44:29 -0400 X-Google-Smtp-Source: ABhQp+SRjWqzJTWkCsk/E78TIOF4fTXKDMryk7Lmi7z/ZxQFMra8XTMJyZ9FX4rDLNUmokEDoaWmhA== Date: Thu, 19 Oct 2017 15:44:25 +0900 From: Sergey Senozhatsky To: Petr Mladek Cc: Sergey Senozhatsky , Steven Rostedt , Tony Luck , Fenghua Yu , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , James Bottomley , Helge Deller , Andrew Morton , Jessica Yu , Alexei Starovoitov , linux-ia64@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org Subject: Re: [PATCHv3 5/7] parisc64: Add .opd based function descriptor dereference Message-ID: <20171019064425.GC449@jagdpanzerIV> References: <20170930025319.987-1-sergey.senozhatsky@gmail.com> <20170930025319.987-6-sergey.senozhatsky@gmail.com> <20171004104016.GG20084@pathway.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20171004104016.GG20084@pathway.suse.cz> User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 let's do it later, if need be. -ss