diff options
Diffstat (limited to 'mm')
-rw-r--r-- | mm/memblock.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/mm/memblock.c b/mm/memblock.c index 0ab30d0185bc..068e147695ee 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -858,11 +858,14 @@ static int __init_memblock memblock_setclr_flag(phys_addr_t base, if (ret) return ret; - for (i = start_rgn; i < end_rgn; i++) + for (i = start_rgn; i < end_rgn; i++) { + struct memblock_region *r = &type->regions[i]; + if (set) - memblock_set_region_flags(&type->regions[i], flag); + r->flags |= flag; else - memblock_clear_region_flags(&type->regions[i], flag); + r->flags &= ~flag; + } memblock_merge_regions(type); return 0; |