Skip to content

Commit

Permalink
efi: Set feature flags inside feature init functions
Browse files Browse the repository at this point in the history
It makes more sense to set the feature flag in the success path of the
detection function than it does to rely on the caller doing it. Apart
from it being more logical to group the code and data together, it sets
a much better example for new EFI architectures.

Signed-off-by: Matt Fleming <matt.fleming@intel.com>
  • Loading branch information
Matt Fleming committed Mar 4, 2014
1 parent 3e90959 commit 0f8093a
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 4 deletions.
11 changes: 7 additions & 4 deletions arch/x86/platform/efi/efi.c
Original file line number Diff line number Diff line change
Expand Up @@ -577,6 +577,8 @@ static int __init efi_systab_init(void *phys)
efi.systab->hdr.revision >> 16,
efi.systab->hdr.revision & 0xffff);

set_bit(EFI_SYSTEM_TABLES, &efi.flags);

return 0;
}

Expand Down Expand Up @@ -612,6 +614,8 @@ static int __init efi_runtime_init(void)
efi.get_time = phys_efi_get_time;
early_iounmap(runtime, sizeof(efi_runtime_services_t));

set_bit(EFI_RUNTIME_SERVICES, &efi.flags);

return 0;
}

Expand All @@ -629,6 +633,8 @@ static int __init efi_memmap_init(void)
if (add_efi_memmap)
do_add_efi_memmap();

set_bit(EFI_MEMMAP, &efi.flags);

return 0;
}

Expand Down Expand Up @@ -739,8 +745,6 @@ void __init efi_init(void)
if (efi_config_init(arch_tables))
return;

set_bit(EFI_CONFIG_TABLES, &efi.flags);

/*
* Note: We currently don't support runtime services on an EFI
* that doesn't match the kernel 32/64-bit mode.
Expand All @@ -751,7 +755,6 @@ void __init efi_init(void)
else {
if (disable_runtime || efi_runtime_init())
return;
set_bit(EFI_RUNTIME_SERVICES, &efi.flags);
}
if (efi_memmap_init())
return;
Expand Down Expand Up @@ -1194,7 +1197,7 @@ static int __init parse_efi_cmdline(char *str)
str++;

if (!strncmp(str, "old_map", 7))
set_bit(EFI_OLD_MEMMAP, &x86_efi_facility);
set_bit(EFI_OLD_MEMMAP, &efi.flags);

return 0;
}
Expand Down
3 changes: 3 additions & 0 deletions drivers/firmware/efi/efi.c
Original file line number Diff line number Diff line change
Expand Up @@ -313,5 +313,8 @@ int __init efi_config_init(efi_config_table_type_t *arch_tables)
}
pr_cont("\n");
early_iounmap(config_tables, efi.systab->nr_tables * sz);

set_bit(EFI_CONFIG_TABLES, &efi.flags);

return 0;
}

0 comments on commit 0f8093a

Please sign in to comment.