diff options
author | Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com> | 2020-11-23 18:28:17 +0100 |
---|---|---|
committer | Ard Biesheuvel <ardb@kernel.org> | 2020-11-25 16:55:02 +0100 |
commit | 50bdcf047503e30126327d0be4f0ad7337106d68 (patch) | |
tree | 27bdd712406ce37bdc621c8c1d9929455f65e274 /drivers/firmware | |
parent | efi/x86: Free efi_pgd with free_pages() (diff) | |
download | linux-50bdcf047503e30126327d0be4f0ad7337106d68.tar.xz linux-50bdcf047503e30126327d0be4f0ad7337106d68.zip |
efi/efivars: Set generic ops before loading SSDT
Efivars allows for overriding of SSDT tables, however starting with
commit
bf67fad19e493b ("efi: Use more granular check for availability for variable services")
this use case is broken. When loading SSDT generic ops should be set
first, however mentioned commit reversed order of operations. Fix this
by restoring original order of operations.
Fixes: bf67fad19e493b ("efi: Use more granular check for availability for variable services")
Signed-off-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Link: https://lore.kernel.org/r/20201123172817.124146-1-amadeuszx.slawinski@linux.intel.com
Tested-by: Cezary Rojewski <cezary.rojewski@intel.com>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Diffstat (limited to 'drivers/firmware')
-rw-r--r-- | drivers/firmware/efi/efi.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c index 5e5480a0a32d..6c6eec044a97 100644 --- a/drivers/firmware/efi/efi.c +++ b/drivers/firmware/efi/efi.c @@ -390,10 +390,10 @@ static int __init efisubsys_init(void) if (efi_rt_services_supported(EFI_RT_SUPPORTED_GET_VARIABLE | EFI_RT_SUPPORTED_GET_NEXT_VARIABLE_NAME)) { - efivar_ssdt_load(); error = generic_ops_register(); if (error) goto err_put; + efivar_ssdt_load(); platform_device_register_simple("efivars", 0, NULL, 0); } |