forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
35 lines
716 B
35 lines
716 B
// SPDX-License-Identifier: GPL-2.0-only |
|
|
|
#include <linux/mm.h> |
|
#include <linux/io.h> |
|
|
|
bool ioremap_allowed(phys_addr_t phys_addr, size_t size, unsigned long prot) |
|
{ |
|
unsigned long last_addr = phys_addr + size - 1; |
|
|
|
/* Don't allow outside PHYS_MASK */ |
|
if (last_addr & ~PHYS_MASK) |
|
return false; |
|
|
|
/* Don't allow RAM to be mapped. */ |
|
if (WARN_ON(pfn_is_map_memory(__phys_to_pfn(phys_addr)))) |
|
return false; |
|
|
|
return true; |
|
} |
|
|
|
/* |
|
* Must be called after early_fixmap_init |
|
*/ |
|
void __init early_ioremap_init(void) |
|
{ |
|
early_ioremap_setup(); |
|
} |
|
|
|
bool arch_memremap_can_ram_remap(resource_size_t offset, size_t size, |
|
unsigned long flags) |
|
{ |
|
unsigned long pfn = PHYS_PFN(offset); |
|
|
|
return pfn_is_map_memory(pfn); |
|
}
|
|
|