From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3E79BC433DB for ; Fri, 19 Feb 2021 18:45:55 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id BCA3A64E4B for ; Fri, 19 Feb 2021 18:45:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org BCA3A64E4B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linux.microsoft.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=Hy40EtcB56zUPs5k+A+URWXHa1X/nYtRDPJKsBxmWlM=; b=BUkefDBh48ukdgLcJVbKJeias 8QQLiVrPkYRNOamgJzDYHqKXNBHpzUvyqZXXaKtu30FZT/dGW3NGaMrG4bepbYlAPR4jLj5oZ4X+L 9FwOI5V6HTW++4Fk2rE2xwxCSMbHrRuReUA2ZNRVypAUpGhjpr9gR+K/RbKnk3tO3i9pbmbUouPLC A7dftOCjKCar8er+t+2o6cquSLGfe4ZxsqG+Mx2zcKi3pMXoin8YrY4NEq7DNYAo1Oct3MnZmAZOT raY1hlz8+9D11zmy2047/Tenq6l49mWyxtu1laG/QtRfrxq3NrPAk1i0z35uF5wRYNSmCxBUmfVBb YljJuRKUw==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lDAkp-0002gf-6B; Fri, 19 Feb 2021 18:43:51 +0000 Received: from linux.microsoft.com ([13.77.154.182]) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lDAkm-0002fw-3k for linux-arm-kernel@lists.infradead.org; Fri, 19 Feb 2021 18:43:50 +0000 Received: from [192.168.0.104] (c-73-42-176-67.hsd1.wa.comcast.net [73.42.176.67]) by linux.microsoft.com (Postfix) with ESMTPSA id E64C320B6C40; Fri, 19 Feb 2021 10:43:43 -0800 (PST) DKIM-Filter: OpenDKIM Filter v2.11.0 linux.microsoft.com E64C320B6C40 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com; s=default; t=1613760224; bh=RpoWA2PbFDErkfUWKl6VSFbD3TUWfdKkFK+7BkYE/ys=; h=Subject:To:Cc:References:From:Date:In-Reply-To:From; b=FlbyhI2Xx5mSUqc+dtPCr1ZNHjpTO6Tn25jhljruSYMaU/5beEb3QGpF/DTglDlmI wyLj1wEGIGBXSeFWRo4d74jYBlp7L96wnIZoy2aKaM3fVfYCQe0V06BYJO1kd51IOO DL8EvziJi44wvruN+qwLNb1clHef+A/MMP5m7XCg= Subject: Re: [PATCH] of: error: 'const struct kimage' has no member named 'arch' To: Thiago Jung Bauermann , Mimi Zohar References: <20210218223305.2044-1-nramas@linux.microsoft.com> <8b8c0b70-c7ab-33f3-b66c-9ea03388497b@linux.microsoft.com> <87k0r4yi4s.fsf@manicouagan.localdomain> <3ca0aa87-ca83-8024-4067-c2382a360db9@linux.microsoft.com> <98a061d1-05ea-eff2-5c5c-a59f491fe924@linux.microsoft.com> <6a197963deb8e44c71384ea9b89d7f3f13c947bf.camel@linux.ibm.com> <87blcgx72l.fsf@manicouagan.localdomain> From: Lakshmi Ramasubramanian Message-ID: Date: Fri, 19 Feb 2021 10:43:43 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: <87blcgx72l.fsf@manicouagan.localdomain> Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210219_134349_472519_819658D3 X-CRM114-Status: GOOD ( 33.59 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Sasha Levin , Rob Herring , Benjamin Herrenschmidt , Stephen Rothwell , Greg Kroah-Hartman , linuxppc-dev , "linux-kernel@vger.kernel.org" , "AKASHI, Takahiro" , devicetree@vger.kernel.org, James Morse , Michael Ellerman , Catalin Marinas , Joe Perches , linux-integrity@vger.kernel.org, Will Deacon , linux-arm-kernel Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 2/19/21 10:09 AM, Thiago Jung Bauermann wrote: > > Mimi Zohar writes: > >> On Fri, 2021-02-19 at 11:43 -0600, Rob Herring wrote: >>> On Fri, Feb 19, 2021 at 10:57 AM Lakshmi Ramasubramanian >>> wrote: >>>> >>>> On 2/19/21 6:16 AM, Rob Herring wrote: >>>>> On Thu, Feb 18, 2021 at 8:53 PM Lakshmi Ramasubramanian >>>>> wrote: >>>>>> >>>>>> On 2/18/21 5:13 PM, Thiago Jung Bauermann wrote: >>>>>>> >>>>>>> Lakshmi Ramasubramanian writes: >>>>>>> >>>>>>>> On 2/18/21 4:07 PM, Mimi Zohar wrote: >>>>>>>> >>>>>>>> Hi Mimi, >>>>>>>> >>>>>>>>> On Thu, 2021-02-18 at 14:33 -0800, Lakshmi Ramasubramanian wrote: >>>>>>>>>> of_kexec_alloc_and_setup_fdt() defined in drivers/of/kexec.c builds >>>>>>>>>> a new device tree object that includes architecture specific data >>>>>>>>>> for kexec system call. This should be defined only if the architecture >>>>>>>>>> being built defines kexec architecture structure "struct kimage_arch". >>>>>>>>>> >>>>>>>>>> Define a new boolean config OF_KEXEC that is enabled if >>>>>>>>>> CONFIG_KEXEC_FILE and CONFIG_OF_FLATTREE are enabled, and >>>>>>>>>> the architecture is arm64 or powerpc64. Build drivers/of/kexec.c >>>>>>>>>> if CONFIG_OF_KEXEC is enabled. >>>>>>>>>> >>>>>>>>>> Signed-off-by: Lakshmi Ramasubramanian >>>>>>>>>> Fixes: 33488dc4d61f ("of: Add a common kexec FDT setup function") >>>>>>>>>> Reported-by: kernel test robot >>>>>>>>>> --- >>>>>>>>>> drivers/of/Kconfig | 6 ++++++ >>>>>>>>>> drivers/of/Makefile | 7 +------ >>>>>>>>>> 2 files changed, 7 insertions(+), 6 deletions(-) >>>>>>>>>> >>>>>>>>>> diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig >>>>>>>>>> index 18450437d5d5..f2e8fa54862a 100644 >>>>>>>>>> --- a/drivers/of/Kconfig >>>>>>>>>> +++ b/drivers/of/Kconfig >>>>>>>>>> @@ -100,4 +100,10 @@ config OF_DMA_DEFAULT_COHERENT >>>>>>>>>> # arches should select this if DMA is coherent by default for OF devices >>>>>>>>>> bool >>>>>>>>>> +config OF_KEXEC >>>>>>>>>> + bool >>>>>>>>>> + depends on KEXEC_FILE >>>>>>>>>> + depends on OF_FLATTREE >>>>>>>>>> + default y if ARM64 || PPC64 >>>>>>>>>> + >>>>>>>>>> endif # OF >>>>>>>>>> diff --git a/drivers/of/Makefile b/drivers/of/Makefile >>>>>>>>>> index c13b982084a3..287579dd1695 100644 >>>>>>>>>> --- a/drivers/of/Makefile >>>>>>>>>> +++ b/drivers/of/Makefile >>>>>>>>>> @@ -13,11 +13,6 @@ obj-$(CONFIG_OF_RESERVED_MEM) += of_reserved_mem.o >>>>>>>>>> obj-$(CONFIG_OF_RESOLVE) += resolver.o >>>>>>>>>> obj-$(CONFIG_OF_OVERLAY) += overlay.o >>>>>>>>>> obj-$(CONFIG_OF_NUMA) += of_numa.o >>>>>>>>>> - >>>>>>>>>> -ifdef CONFIG_KEXEC_FILE >>>>>>>>>> -ifdef CONFIG_OF_FLATTREE >>>>>>>>>> -obj-y += kexec.o >>>>>>>>>> -endif >>>>>>>>>> -endif >>>>>>>>>> +obj-$(CONFIG_OF_KEXEC) += kexec.o >>>>>>>>>> obj-$(CONFIG_OF_UNITTEST) += unittest-data/ >>>>>>>>> Is it possible to reuse CONFIG_HAVE_IMA_KEXEC here? >>>>>>>>> >>>>>>>> >>>>>>>> For ppc64 CONFIG_HAVE_IMA_KEXEC is selected when CONFIG_KEXEC_FILE is enabled. >>>>>>>> So I don't see a problem in reusing CONFIG_HAVE_IMA_KEXEC for ppc. >>>>>>>> >>>>>>>> But for arm64, CONFIG_HAVE_IMA_KEXEC is enabled in the final patch in the patch >>>>>>>> set (the one for carrying forward IMA log across kexec for arm64). arm64 calls >>>>>>>> of_kexec_alloc_and_setup_fdt() prior to enabling CONFIG_HAVE_IMA_KEXEC and hence >>>>>>>> breaks the build for arm64. >>>>>>> >>>>>>> One problem is that I believe that this patch won't placate the robot, >>>>>>> because IIUC it generates config files at random and this change still >>>>>>> allows hppa and s390 to enable CONFIG_OF_KEXEC. >>>>>> >>>>>> I enabled CONFIG_OF_KEXEC for s390. With my patch applied, >>>>>> CONFIG_OF_KEXEC is removed. So I think the robot enabling this config >>>>>> would not be a problem. >>>>>> >>>>>>> >>>>>>> Perhaps a new CONFIG_HAVE_KIMAGE_ARCH option? Not having that option >>>>>>> would still allow building kexec.o, but would be used inside kexec.c to >>>>>>> avoid accessing kimage.arch members. >>>>>>> >>>>>> >>>>>> I think this is a good idea - a new CONFIG_HAVE_KIMAGE_ARCH, which will >>>>>> be selected by arm64 and ppc for now. I tried this, and it fixes the >>>>>> build issue. >>>>>> >>>>>> Although, the name for the new config can be misleading since PARISC, >>>>>> for instance, also defines "struct kimage_arch". Perhaps, >>>>>> CONFIG_HAVE_ELF_KIMAGE_ARCH since of_kexec_alloc_and_setup_fdt() is >>>>>> accessing ELF specific fields in "struct kimage_arch"? >>>>>> >>>>>> Rob/Mimi - please let us know which approach you think is better. >>>>> >>>>> I'd just move the fields to kimage. >>>>> >>>> >>>> I think Mimi's suggestion to use CONFIG_HAVE_IMA_KEXEC for building >>>> drivers/of/kexec.c would work and also avoid the bisect issue if we do >>>> the following: >>> >>> That seems wrong given only a portion of the file depends on IMA. And >>> it reduces our compile coverage. >> >> I agree with you this is the wrong solution. Lakshmi's patch >> introduced a new option to prevent other arch's from including kexec.o, >> which is the same functionality as CONFIG_HAVE_IMA_KEXEC. I'm just not >> sure what the right solution would be. > > I think Rob's suggestion of just moving the elf_load_addr, > elf_headers_sz fields (and for consistency, elf_headers as well even though it > isn't used in tihs file) from kimage_arch to kimage. > > The downside is that these fields will go unused on a number of > architectures, but it's not worth complicating the code just because of > it. > > The patch to do that would have to go before "of: Add a common kexec FDT > setup function". That should be enough to preserve bisectability for all arches. > Agreed. I'll make this change and update. -lakshmi _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel