Re: [PATCH 00/18] efi: clean up contents of struct efi

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(+ Tony and Fenghua)

On Sun, 16 Feb 2020 at 19:23, Ard Biesheuvel <ardb@xxxxxxxxxx> 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@xxxxxxxxxxxx
> Cc: x86@xxxxxxxxxx
>

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@xxxxxxxxxx/

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
>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux