diff options
author | Dave Airlie <airlied@redhat.com> | 2017-06-16 13:58:27 +1000 |
---|---|---|
committer | Dave Airlie <airlied@redhat.com> | 2017-06-16 13:58:27 +1000 |
commit | 925344ccc91d7a7fd84cab2dece1c34bbd86fd8c (patch) | |
tree | bd4110dc5a3b70a5674b9d6d5340cc1889f5d6e8 /mm/memblock.c | |
parent | a6821698918a579e7219d706092e83f367f01ba2 (diff) | |
parent | 32c1431eea4881a6b17bd7c639315010aeefa452 (diff) |
BackMerge tag 'v4.12-rc5' into drm-next
Linux 4.12-rc5 for nouveau fixes
Diffstat (limited to 'mm/memblock.c')
-rw-r--r-- | mm/memblock.c | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/mm/memblock.c b/mm/memblock.c index b049c9b2dba8..7b8a5db76a2f 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -1739,6 +1739,29 @@ static void __init_memblock memblock_dump(struct memblock_type *type) } } +extern unsigned long __init_memblock +memblock_reserved_memory_within(phys_addr_t start_addr, phys_addr_t end_addr) +{ + struct memblock_region *rgn; + unsigned long size = 0; + int idx; + + for_each_memblock_type((&memblock.reserved), rgn) { + phys_addr_t start, end; + + if (rgn->base + rgn->size < start_addr) + continue; + if (rgn->base > end_addr) + continue; + + start = rgn->base; + end = start + rgn->size; + size += end - start; + } + + return size; +} + void __init_memblock __memblock_dump_all(void) { pr_info("MEMBLOCK configuration:\n"); |