In pmap_mapdev(), if the physical memory range is not covered by an EFI

memory descriptor, don't return NULL as the virtual address, return the
direct-mapped uncacheable virtual address for it. At first, this was
needed only for the Altix 350, but now even some high-end HP machines
have devices mapped to physical addresses that aren't covered by the
EFI memory map.
This commit is contained in:
Marcel Moolenaar 2013-07-23 02:11:22 +00:00
parent fc2b167929
commit 57e65e9bda

View File

@ -2451,7 +2451,7 @@ pmap_mapdev(vm_paddr_t pa, vm_size_t sz)
if (md == NULL) {
printf("%s: [%#lx..%#lx] not covered by memory descriptor\n",
__func__, pa, pa + sz - 1);
return (NULL);
return ((void *)IA64_PHYS_TO_RR6(pa));
}
if (md->md_type == EFI_MD_TYPE_FREE) {