diff --git a/include/linux/memblock.h b/include/linux/memblock.h index f5dd780ddfc5..72b4f919995f 100644 --- a/include/linux/memblock.h +++ b/include/linux/memblock.h @@ -352,6 +352,7 @@ bool memblock_is_map_memory(phys_addr_t addr); bool memblock_is_region_memory(phys_addr_t base, phys_addr_t size); bool memblock_is_reserved(phys_addr_t addr); bool memblock_is_region_reserved(phys_addr_t base, phys_addr_t size); +bool memblock_overlaps_memory(phys_addr_t base, phys_addr_t size); extern void __memblock_dump_all(void); diff --git a/mm/memblock.c b/mm/memblock.c index 258a4f9a1281..f81d494e1945 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -1773,6 +1773,14 @@ bool __init_memblock memblock_is_region_memory(phys_addr_t base, phys_addr_t siz memblock.memory.regions[idx].size) >= end; } +bool __init_memblock memblock_overlaps_memory(phys_addr_t base, + phys_addr_t size) +{ + memblock_cap_size(base, &size); + + return memblock_overlaps_region(&memblock.memory, base, size); +} + /** * memblock_is_region_reserved - check if a region intersects reserved memory * @base: base of region to check