memblock: Add memblock_overlaps_memory()

Add a new function, memblock_overlaps_memory(), to check if a
region overlaps with a memory bank. This will be used by
peripheral loader code to detect when kernel memory would be
overwritten.

Change-Id: I851f8f416a0f36e85c0e19536b5209f7d4bd431c
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
(cherry picked from commit 1aa4e5a974b3087d29510802810170c071df8546)

Conflicts:

	include/linux/memblock.h
This commit is contained in:
Stephen Boyd 2012-05-14 18:55:50 -07:00
parent 331220beb5
commit cc2753448d
2 changed files with 7 additions and 0 deletions

View file

@ -161,6 +161,7 @@ phys_addr_t memblock_end_of_DRAM(void);
void memblock_enforce_memory_limit(phys_addr_t memory_limit); void memblock_enforce_memory_limit(phys_addr_t memory_limit);
int memblock_is_memory(phys_addr_t addr); int memblock_is_memory(phys_addr_t addr);
int memblock_is_region_memory(phys_addr_t base, phys_addr_t size); int memblock_is_region_memory(phys_addr_t base, phys_addr_t size);
int memblock_overlaps_memory(phys_addr_t base, phys_addr_t size);
int memblock_is_reserved(phys_addr_t addr); int memblock_is_reserved(phys_addr_t addr);
int memblock_is_region_reserved(phys_addr_t base, phys_addr_t size); int memblock_is_region_reserved(phys_addr_t base, phys_addr_t size);

View file

@ -936,6 +936,12 @@ int __init_memblock memblock_is_region_memory(phys_addr_t base, phys_addr_t size
memblock.memory.regions[idx].size) >= end; memblock.memory.regions[idx].size) >= end;
} }
int __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) >= 0;
}
/** /**
* memblock_is_region_reserved - check if a region intersects reserved memory * memblock_is_region_reserved - check if a region intersects reserved memory
* @base: base of region to check * @base: base of region to check