Received: by 10.223.185.116 with SMTP id b49csp6132565wrg; Wed, 28 Feb 2018 04:39:47 -0800 (PST) X-Google-Smtp-Source: AH8x224LsRNSedLKz4ADLDcmmFzBZegh93t5iwHhG5nWSXEtK3ZDhpreYwrG6NHiXCbttKtNvXTt X-Received: by 10.98.159.209 with SMTP id v78mr17381920pfk.49.1519821587416; Wed, 28 Feb 2018 04:39:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519821587; cv=none; d=google.com; s=arc-20160816; b=Lci9jZEjwQ5WDYVIZM4Ph4y17ujcksQOqUHtHZNl8B3kuKLmxFumHQTglr1qSdEOVJ q1/zhh7v9V33GiXRko7k94lol9AFPp7RvGNqKYrKdjC1PZPJYyWZKroZQxvYpCCRZXfl GufvAk3w5jhmYK/Tunjzr6/iWFy0ir1BX1TXJdShu7lwBydaHEkiX1YGHaq+5wyRoOKC upjE3aHMl+VKHuQ3obtfPbAOtQV20fjW1h9Gy4Zc1uJ1ROEzMxUkgcz9TsQaGBzfFGZ1 gohFW5njiuSz5Z89ntuL+olgo9BhWiY1szo6CrpXtHRmqhXL91SPTc7XhBPJY8luSOBP 3huQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-disposition:mime-version:references:message-id:subject:to :from:date:arc-authentication-results; bh=hTR7or70P05OJJqLB/ukSwjxuGKjYEvwOqcAYvq1jIM=; b=TqgKUnLEWXWewy4P+vc44sQsWMyn0WMJED6b/H60j0Z1TaaWpERpMabPuPtmGSEhpU P4YC7aF8XZpJGtTN8Ol/pnXetCwJlty+Z1K8rqP9lL24BhMLd8N/9mR4L4bz4DaN3/SV Bsyr0+BNuzhRZ54lKjSip6MGjILfDYD+bF8tbJ9h82IOw+rwGtsIVMVQx0sYAFRTVtEY eBLA17N3WcHVFknWTAQxkwjt6w+WwxYvBKy52mHI5BweMukVZaS28N0Cgqjh7/rd44pM +3XBA4uud96KQMKHsfYp3VPQZzAXJOy3D6uY0vDFuNSDnE65zIdFGcj/5bN9t4DsvGZ/ 7bag== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id b12-v6si1231760plx.355.2018.02.28.04.39.31; Wed, 28 Feb 2018 04:39:47 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932082AbeB1MiM (ORCPT + 99 others); Wed, 28 Feb 2018 07:38:12 -0500 Received: from mx3-rdu2.redhat.com ([66.187.233.73]:39732 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752206AbeB1MiL (ORCPT ); Wed, 28 Feb 2018 07:38:11 -0500 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id F29088D744; Wed, 28 Feb 2018 12:38:10 +0000 (UTC) Received: from dhcp-128-65.nay.redhat.com (ovpn-12-41.pek2.redhat.com [10.72.12.41]) by smtp.corp.redhat.com (Postfix) with ESMTPS id E36D69C042; Wed, 28 Feb 2018 12:38:04 +0000 (UTC) Date: Wed, 28 Feb 2018 20:38:00 +0800 From: Dave Young To: AKASHI Takahiro , catalin.marinas@arm.com, will.deacon@arm.com, bauerman@linux.vnet.ibm.com, dhowells@redhat.com, vgoyal@redhat.com, herbert@gondor.apana.org.au, davem@davemloft.net, akpm@linux-foundation.org, mpe@ellerman.id.au, bhe@redhat.com, arnd@arndb.de, ard.biesheuvel@linaro.org, julien.thierry@arm.com, kexec@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v8 03/13] kexec_file,x86,powerpc: factor out kexec_file_ops functions Message-ID: <20180228123800.GC2228@dhcp-128-65.nay.redhat.com> References: <20180222111732.23051-1-takahiro.akashi@linaro.org> <20180222111732.23051-4-takahiro.akashi@linaro.org> <20180223092459.GC4433@dhcp-128-65.nay.redhat.com> <20180226100138.GC6019@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20180226100138.GC6019@linaro.org> User-Agent: Mutt/1.9.1 (2017-09-22) X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Wed, 28 Feb 2018 12:38:11 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.2]); Wed, 28 Feb 2018 12:38:11 +0000 (UTC) for IP:'10.11.54.5' DOMAIN:'int-mx05.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'dyoung@redhat.com' RCPT:'' Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 02/26/18 at 07:01pm, AKASHI Takahiro wrote: > On Fri, Feb 23, 2018 at 05:24:59PM +0800, Dave Young wrote: > > Hi AKASHI, > > > > On 02/22/18 at 08:17pm, AKASHI Takahiro wrote: > > > As arch_kexec_kernel_*_{probe,load}(), arch_kimage_file_post_load_cleanup() > > > and arch_kexec_kernel_verify_sg can be parameterized with a kexec_file_ops > > > array and now duplicated among some architectures, let's factor them out. > > > > > > Signed-off-by: AKASHI Takahiro > > > Cc: Dave Young > > > Cc: Vivek Goyal > > > Cc: Baoquan He > > > Cc: Michael Ellerman > > > Cc: Thiago Jung Bauermann > > > --- > > > arch/powerpc/include/asm/kexec.h | 2 +- > > > arch/powerpc/kernel/kexec_elf_64.c | 2 +- > > > arch/powerpc/kernel/machine_kexec_file_64.c | 39 ++------------------ > > > arch/x86/include/asm/kexec-bzimage64.h | 2 +- > > > arch/x86/kernel/kexec-bzimage64.c | 2 +- > > > arch/x86/kernel/machine_kexec_64.c | 45 +---------------------- > > > include/linux/kexec.h | 15 ++++---- > > > kernel/kexec_file.c | 57 +++++++++++++++++++++++++++-- > > > 8 files changed, 70 insertions(+), 94 deletions(-) > > > > > > > [snip] > > > > > diff --git a/kernel/kexec_file.c b/kernel/kexec_file.c > > > index 990adae52151..a6d14a768b3e 100644 > > > --- a/kernel/kexec_file.c > > > +++ b/kernel/kexec_file.c > > > @@ -26,34 +26,83 @@ > > > #include > > > #include "kexec_internal.h" > > > > > > +const __weak struct kexec_file_ops * const kexec_file_loaders[] = {NULL}; > > > + > > > #ifdef CONFIG_ARCH_HAS_KEXEC_PURGATORY > > > static int kexec_calculate_store_digests(struct kimage *image); > > > #else > > > static int kexec_calculate_store_digests(struct kimage *image) { return 0; }; > > > #endif > > > > > > +int _kexec_kernel_image_probe(struct kimage *image, void *buf, > > > + unsigned long buf_len) > > > +{ > > > + const struct kexec_file_ops * const *fops; > > > + int ret = -ENOEXEC; > > > + > > > + for (fops = &kexec_file_loaders[0]; *fops && (*fops)->probe; ++fops) { > > > + ret = (*fops)->probe(buf, buf_len); > > > + if (!ret) { > > > + image->fops = *fops; > > > + return ret; > > > + } > > > + } > > > + > > > + return ret; > > > +} > > > + > > > /* Architectures can provide this probe function */ > > > int __weak arch_kexec_kernel_image_probe(struct kimage *image, void *buf, > > > unsigned long buf_len) > > > { > > > - return -ENOEXEC; > > > + return _kexec_kernel_image_probe(image, buf, buf_len); > > > > > > I vaguely remember previously I suggest split the _kexec_kernel_image_probe > > because arch code can call them, and common code also use it like above. > > But in your new series I do not find where else calls this function > > except the common code arch_kexec_kernel_image_probe. If nobody use > > them then it is not worth to split them out, it is better to just embed > > them in the __weak functions. > > Powerpc's arch_kexec_kernel_image_probe() uses > _kexec_kekrnel_image_probe() as it needs an extra check to rule out > crash dump for now. Oops, I missed that, but what about other similar functions? Such as: _kexec_kernel_image_load _kimage_file_post_load_cleanup _kexec_kernel_verify_sig > > Thanks, > -Takahiro AKASHI > > > > Ditto for other similar functions. > > > > [snip] > > > > Thanks > > Dave Thanks Dave