summaryrefslogtreecommitdiffstats
path: root/sys/ia64
diff options
context:
space:
mode:
authormarcel <marcel@FreeBSD.org>2013-07-23 02:11:22 +0000
committermarcel <marcel@FreeBSD.org>2013-07-23 02:11:22 +0000
commit0680c1f5fe159bba69a242568af0db7d7dc15a79 (patch)
tree94fe2a041adade2fd91b14b62db36ee8fc2ccab2 /sys/ia64
parenta7248da0b8ea7ed2d76b65cc5eabd7ed1d3c7d08 (diff)
downloadFreeBSD-src-0680c1f5fe159bba69a242568af0db7d7dc15a79.zip
FreeBSD-src-0680c1f5fe159bba69a242568af0db7d7dc15a79.tar.gz
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.
Diffstat (limited to 'sys/ia64')
-rw-r--r--sys/ia64/ia64/pmap.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c
index f2a4c65..4418184 100644
--- a/sys/ia64/ia64/pmap.c
+++ b/sys/ia64/ia64/pmap.c
@@ -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) {
OpenPOWER on IntegriCloud