|
@@ -202,13 +202,11 @@ int valid_phys_addr_range(phys_addr_t addr, size_t size)
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
- * We don't use supersection mappings for mmap() on /dev/mem, which
|
|
|
- * means that we can't map the memory area above the 4G barrier into
|
|
|
- * userspace.
|
|
|
+ * Do not allow /dev/mem mappings beyond the supported physical range.
|
|
|
*/
|
|
|
int valid_mmap_phys_addr_range(unsigned long pfn, size_t size)
|
|
|
{
|
|
|
- return !(pfn + (size >> PAGE_SHIFT) > 0x00100000);
|
|
|
+ return (pfn + (size >> PAGE_SHIFT)) <= (1 + (PHYS_MASK >> PAGE_SHIFT));
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_STRICT_DEVMEM
|