Received: by 2002:a25:1506:0:0:0:0:0 with SMTP id 6csp3982572ybv; Sun, 16 Feb 2020 10:33:39 -0800 (PST) X-Google-Smtp-Source: APXvYqyuTbzTDEbT5vFESWTdirMHtCu17RdLdYP2vJF+Kk9LUMIFuFgjb7ZprDMY9+8HQPIBDzWS X-Received: by 2002:aca:dc04:: with SMTP id t4mr7599991oig.51.1581878019099; Sun, 16 Feb 2020 10:33:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1581878019; cv=none; d=google.com; s=arc-20160816; b=LH4Yhj6RevNWFNr2hAkv76+pjfXAqUztBgnZKdTU8WvjP27V/7pR7y27lBTRmLdvVw FMAA2gFTQM3nFrn9KT9rEs8b4zmILIIkVDwWGbAbDiVtoWbjuAapaxuavPQT26rLtTy3 TY2bPf1mwtZlyaOPZ4E/nE4xnAf1AnE2+fC11wSNiZVjGc3cL0yU0lbiDEGxH4rUIuw8 v1kzMtjmHlGwtH5+v0Osmct6FKfwjBYrjbnGMvJu7YUjtxzMUKZEtdv3bMCLhgvZFlHi /QLlAgNVj9Jt13K9CVItkPJZQoWDB/5TXp5mQfz2dGftmUMT1GW79cHgtkQJvd5TLzqC QYaw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=brZvi/jtuF0K1kPfMUsSIKSeMHPlRCqF7O48wNhYfi4=; b=YIWxpk7bwD/5EHPjUrhoAq3HVmBToXfovTYlDVh9gXV/615BaHqq5GfKvaAXXxvhNv 4R8xVAyZZeW8u+kcfVaXvXc2S/EXnmRXAWQgzrk6KZy1Sm7YWhfXI8RDXeKY2JCEJdBO QSvBwbgyINPjAJR4EsDreybXKvns06M9p5n2U8n8qovXDy3fmKMTWqf+fK7S66oedDOu suzY67bpV4qc5+goBX/HokUH8jQHUIaPGJMXcraQojoP3ETaZED6uLyfVLlJBKaMmYR7 dMNVzNV3BcVoBr830XXni/rgx/dy7fL7YRZdbSkSsYSGRCVUo8zaCad8C5QmzksDnA6x 6jZA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=KzopiJlk; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id r22si5607855oic.93.2020.02.16.10.33.24; Sun, 16 Feb 2020 10:33:39 -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; dkim=pass header.i=@kernel.org header.s=default header.b=KzopiJlk; 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=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726043AbgBPScM (ORCPT + 99 others); Sun, 16 Feb 2020 13:32:12 -0500 Received: from mail.kernel.org ([198.145.29.99]:36260 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726009AbgBPScM (ORCPT ); Sun, 16 Feb 2020 13:32:12 -0500 Received: from mail-wm1-f49.google.com (mail-wm1-f49.google.com [209.85.128.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 38827206D6 for ; Sun, 16 Feb 2020 18:32:11 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1581877931; bh=EDzR1SWoeTP3PS53iYm+v8llO5Y8uiP2GNaxmMQ4++U=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=KzopiJlktkgo2BlJO3vgl9MaBGiKPsegU24YVDwiGiNOx04Jx3efc0f1wclBd3Bhn qNwAuE/6o4lvolmI2A1RjPmwU2me/Dpa28WarONn07FACnuW/Dh868BsbeNOBMXQaO T+iKtMs189lciumH3sR2ZYGPWH+hzmUcib4g5lr0= Received: by mail-wm1-f49.google.com with SMTP id s144so5802695wme.1 for ; Sun, 16 Feb 2020 10:32:11 -0800 (PST) X-Gm-Message-State: APjAAAWuAG3dwO5X2xOasn+89VeKDWWSolJ7oV+WpGpWFGI/aDgIvsDG 4SI4ocHQeVo8oBiGAxYDtPwZnoc/iSOlfTbU2+OcqA== X-Received: by 2002:a7b:c4cc:: with SMTP id g12mr18463603wmk.68.1581877929530; Sun, 16 Feb 2020 10:32:09 -0800 (PST) MIME-Version: 1.0 References: <20200216182334.8121-1-ardb@kernel.org> In-Reply-To: <20200216182334.8121-1-ardb@kernel.org> From: Ard Biesheuvel Date: Sun, 16 Feb 2020 19:31:58 +0100 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH 00/18] efi: clean up contents of struct efi To: linux-efi , Tony Luck , "Yu, Fenghua" Cc: linux-arm-kernel , Linux Kernel Mailing List , Arvind Sankar , "the arch/x86 maintainers" Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org (+ Tony and Fenghua) On Sun, 16 Feb 2020 at 19:23, Ard Biesheuvel wrote: > > The generic r/w singleton object 'struct efi efi' is currently being used > as a dumping ground for memory addresses of firmware tables that only have > significance for a single architecture, or only at boot time [whereas > struct efi is an object with indefinite lifetime, and which is exported > to modules] > > Since we're expecting a new arrival that does affect all architectures, > which will need to be added to struct efi as well, let's do a cleanup > pass, and move out all the per-arch pieces and other stuff that does not > need to live in a global r/w struct. > > As a side effect, I ran into some other things that can be refactored > so that more code is shared between architectures, or made x86 specific > if it is something that should maybe not have existed in the first place, > and x86 is the only architecture where we cannot remove it for compatibility > reasons. > > Finally, we get rid of the struct efi::systab member, which we only need > at runtime to get at the 'runtime' pointer, so let's store that instead. > This allows us to drop some ugly handling of the remapped systab address, > which we cannot discover as easily as the remapped 'runtime' pointer. > > Cc: nivedita@alum.mit.edu > Cc: x86@kernel.org > Apologies to the IA64 maintainers for forgetting to cc you. The whole series can be found at https://lore.kernel.org/linux-efi/20200216182334.8121-1-ardb@kernel.org/ Please let me know if you need me to resend with the missing cc's added. > Ard Biesheuvel (18): > efi: drop handling of 'boot_info' configuration table > efi/ia64: move HCDP and MPS table handling into IA64 arch code > efi: move UGA and PROP table handling to x86 code > efi: make rng_seed table handling local to efi.c > efi: move mem_attr_table out of struct efi > efi: make memreserve table handling local to efi.c > efi: merge EFI system table revision and vendor checks > efi/ia64: use existing helpers to locate ESI table > efi/ia64: use local variable for EFI system table address > efi/ia64: switch to efi_config_parse_tables() > efi: make efi_config_init() x86 only > efi: clean up config_parse_tables() > efi/x86: remove runtime table address from kexec EFI setup data > efi/x86: make fw_vendor, config_table and runtime sysfs nodes x86 > specific > efi/x86: merge assignments of efi.runtime_version > efi: add 'runtime' pointer to struct efi > efi/arm: drop unnecessary references to efi.systab > efi/x86: drop 'systab' member from struct efi > > arch/ia64/kernel/efi.c | 55 ++-- > arch/ia64/kernel/esi.c | 21 +- > arch/x86/include/asm/efi.h | 6 +- > arch/x86/kernel/asm-offsets_32.c | 5 + > arch/x86/kernel/kexec-bzimage64.c | 5 +- > arch/x86/platform/efi/efi.c | 262 ++++++++++---------- > arch/x86/platform/efi/efi_32.c | 13 +- > arch/x86/platform/efi/efi_64.c | 14 +- > arch/x86/platform/efi/efi_stub_32.S | 21 +- > arch/x86/platform/efi/quirks.c | 2 +- > drivers/firmware/efi/arm-init.c | 68 ++--- > drivers/firmware/efi/arm-runtime.c | 18 -- > drivers/firmware/efi/efi.c | 237 ++++++++---------- > drivers/firmware/efi/memattr.c | 13 +- > drivers/firmware/efi/runtime-wrappers.c | 4 +- > drivers/firmware/pcdp.c | 8 +- > include/linux/efi.h | 76 +++--- > 17 files changed, 379 insertions(+), 449 deletions(-) > > -- > 2.17.1 >