lkml.org 
[lkml]   [2020]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.9 24/24] efi: Make it possible to disable efivar_ssdt entirely
    Date
    From: Peter Jones <pjones@redhat.com>

    commit 435d1a471598752446a72ad1201b3c980526d869 upstream.

    In most cases, such as CONFIG_ACPI_CUSTOM_DSDT and
    CONFIG_ACPI_TABLE_UPGRADE, boot-time modifications to firmware tables
    are tied to specific Kconfig options. Currently this is not the case
    for modifying the ACPI SSDT via the efivar_ssdt kernel command line
    option and associated EFI variable.

    This patch adds CONFIG_EFI_CUSTOM_SSDT_OVERLAYS, which defaults
    disabled, in order to allow enabling or disabling that feature during
    the build.

    Cc: <stable@vger.kernel.org>
    Signed-off-by: Peter Jones <pjones@redhat.com>
    Link: https://lore.kernel.org/r/20200615202408.2242614-1-pjones@redhat.com
    Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/firmware/efi/Kconfig | 11 +++++++++++
    drivers/firmware/efi/efi.c | 2 +-
    2 files changed, 12 insertions(+), 1 deletion(-)

    --- a/drivers/firmware/efi/Kconfig
    +++ b/drivers/firmware/efi/Kconfig
    @@ -129,6 +129,17 @@ config EFI_TEST
    Say Y here to enable the runtime services support via /dev/efi_test.
    If unsure, say N.

    +config EFI_CUSTOM_SSDT_OVERLAYS
    + bool "Load custom ACPI SSDT overlay from an EFI variable"
    + depends on EFI_VARS && ACPI
    + default ACPI_TABLE_UPGRADE
    + help
    + Allow loading of an ACPI SSDT overlay from an EFI variable specified
    + by a kernel command line option.
    +
    + See Documentation/admin-guide/acpi/ssdt-overlays.rst for more
    + information.
    +
    endmenu

    config UEFI_CPER
    --- a/drivers/firmware/efi/efi.c
    +++ b/drivers/firmware/efi/efi.c
    @@ -198,7 +198,7 @@ static void generic_ops_unregister(void)
    efivars_unregister(&generic_efivars);
    }

    -#if IS_ENABLED(CONFIG_ACPI)
    +#ifdef CONFIG_EFI_CUSTOM_SSDT_OVERLAYS
    #define EFIVAR_SSDT_NAME_MAX 16
    static char efivar_ssdt[EFIVAR_SSDT_NAME_MAX] __initdata;
    static int __init efivar_ssdt_setup(char *str)

    \
     
     \ /
      Last update: 2020-07-07 17:15    [W:3.852 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site