diff options
author | royger <royger@FreeBSD.org> | 2015-08-21 15:57:57 +0000 |
---|---|---|
committer | royger <royger@FreeBSD.org> | 2015-08-21 15:57:57 +0000 |
commit | 5b319fbe382986b00628820aa31667027bd25a84 (patch) | |
tree | 408fe746aea9ea0be100e3fa8b22d9fe7a4ac635 /sys/x86 | |
parent | ef7f753c0456a32eb1092ed1a5ee0affd7659c57 (diff) | |
download | FreeBSD-src-5b319fbe382986b00628820aa31667027bd25a84.zip FreeBSD-src-5b319fbe382986b00628820aa31667027bd25a84.tar.gz |
preload_search_info: make sure mod is set
Add a check to preload_search_info to make sure mod is set. Most of the
callers of preload_search_info don't check that the mod parameter is
set, which can cause page faults. While at it, remove some now unnecessary
checks before calling preload_search_info.
Sponsored by: Citrix Systems R&D
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D3440
Diffstat (limited to 'sys/x86')
-rw-r--r-- | sys/x86/x86/fdt_machdep.c | 2 | ||||
-rw-r--r-- | sys/x86/x86/nexus.c | 7 |
2 files changed, 3 insertions, 6 deletions
diff --git a/sys/x86/x86/fdt_machdep.c b/sys/x86/x86/fdt_machdep.c index 62cf4ef..84255df 100644 --- a/sys/x86/x86/fdt_machdep.c +++ b/sys/x86/x86/fdt_machdep.c @@ -54,7 +54,7 @@ x86_init_fdt(void) mdp = preload_search_by_type("elf kernel"); if (mdp == NULL) mdp = preload_search_by_type("elf32 kernel"); - dtbp = (mdp != NULL) ? MD_FETCH(mdp, MODINFOMD_DTBP, void *) : NULL; + dtbp = MD_FETCH(mdp, MODINFOMD_DTBP, void *); #if defined(FDT_DTB_STATIC) /* diff --git a/sys/x86/x86/nexus.c b/sys/x86/x86/nexus.c index 0663602..fb32c9b 100644 --- a/sys/x86/x86/nexus.c +++ b/sys/x86/x86/nexus.c @@ -690,11 +690,8 @@ ram_attach(device_t dev) kmdp = preload_search_by_type("elf kernel"); if (kmdp == NULL) kmdp = preload_search_by_type(ELF_KERN_STR); - if (kmdp != NULL) - smapbase = (struct bios_smap *)preload_search_info(kmdp, - MODINFO_METADATA | MODINFOMD_SMAP); - else - smapbase = NULL; + smapbase = (struct bios_smap *)preload_search_info(kmdp, + MODINFO_METADATA | MODINFOMD_SMAP); if (smapbase != NULL) { smapsize = *((u_int32_t *)smapbase - 1); smapend = (struct bios_smap *)((uintptr_t)smapbase + smapsize); |