Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ec0971ba authored by Seth Forshee's avatar Seth Forshee Committed by Matt Fleming
Browse files

efivars: Add module parameter to disable use as a pstore backend



We know that with some firmware implementations writing too much data to
UEFI variables can lead to bricking machines. Recent changes attempt to
address this issue, but for some it may still be prudent to avoid
writing large amounts of data until the solution has been proven on a
wide variety of hardware.

Crash dumps or other data from pstore can potentially be a large data
source. Add a pstore_module parameter to efivars to allow disabling its
use as a backend for pstore. Also add a config option,
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE, to allow setting the default
value of this paramter to true (i.e. disabled by default).

Signed-off-by: default avatarSeth Forshee <seth.forshee@canonical.com>
Cc: Josh Boyer <jwboyer@redhat.com>
Cc: Matthew Garrett <mjg59@srcf.ucam.org>
Cc: Seiji Aguchi <seiji.aguchi@hds.com>
Cc: Tony Luck <tony.luck@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
parent ed9dc8ce
Loading
Loading
Loading
Loading
+9 −0
Original line number Original line Diff line number Diff line
@@ -62,6 +62,15 @@ config EFI_VARS_PSTORE
	  will allow writing console messages, crash dumps, or anything
	  will allow writing console messages, crash dumps, or anything
	  else supported by pstore to EFI variables.
	  else supported by pstore to EFI variables.


config EFI_VARS_PSTORE_DEFAULT_DISABLE
	bool "Disable using efivars as a pstore backend by default"
	depends on EFI_VARS_PSTORE
	default n
	help
	  Saying Y here will disable the use of efivars as a storage
	  backend for pstore by default. This setting can be overridden
	  using the efivars module's pstore_disable parameter.

config EFI_PCDP
config EFI_PCDP
	bool "Console device selection via EFI PCDP or HCDP table"
	bool "Console device selection via EFI PCDP or HCDP table"
	depends on ACPI && EFI && IA64
	depends on ACPI && EFI && IA64
+7 −1
Original line number Original line Diff line number Diff line
@@ -103,6 +103,11 @@ MODULE_VERSION(EFIVARS_VERSION);
 */
 */
#define GUID_LEN 36
#define GUID_LEN 36


static bool efivars_pstore_disable =
	IS_ENABLED(EFI_VARS_PSTORE_DEFAULT_DISABLE);

module_param_named(pstore_disable, efivars_pstore_disable, bool, 0644);

/*
/*
 * The maximum size of VariableName + Data = 1024
 * The maximum size of VariableName + Data = 1024
 * Therefore, it's reasonable to save that much
 * Therefore, it's reasonable to save that much
@@ -2009,6 +2014,7 @@ int register_efivars(struct efivars *efivars,
	if (error)
	if (error)
		unregister_efivars(efivars);
		unregister_efivars(efivars);


	if (!efivars_pstore_disable)
		efivar_pstore_register(efivars);
		efivar_pstore_register(efivars);


	register_filesystem(&efivarfs_type);
	register_filesystem(&efivarfs_type);