diff options
Diffstat (limited to 'mm/memblock.c')
-rw-r--r-- | mm/memblock.c | 28 |
1 files changed, 0 insertions, 28 deletions
diff --git a/mm/memblock.c b/mm/memblock.c index 5a9ca2a1751b..48376bd33274 100644 --- a/mm/memblock.c +++ b/mm/memblock.c | |||
@@ -1101,34 +1101,6 @@ void __init_memblock __next_mem_pfn_range(int *idx, int nid, | |||
1101 | *out_nid = r->nid; | 1101 | *out_nid = r->nid; |
1102 | } | 1102 | } |
1103 | 1103 | ||
1104 | unsigned long __init_memblock memblock_next_valid_pfn(unsigned long pfn, | ||
1105 | unsigned long max_pfn) | ||
1106 | { | ||
1107 | struct memblock_type *type = &memblock.memory; | ||
1108 | unsigned int right = type->cnt; | ||
1109 | unsigned int mid, left = 0; | ||
1110 | phys_addr_t addr = PFN_PHYS(pfn + 1); | ||
1111 | |||
1112 | do { | ||
1113 | mid = (right + left) / 2; | ||
1114 | |||
1115 | if (addr < type->regions[mid].base) | ||
1116 | right = mid; | ||
1117 | else if (addr >= (type->regions[mid].base + | ||
1118 | type->regions[mid].size)) | ||
1119 | left = mid + 1; | ||
1120 | else { | ||
1121 | /* addr is within the region, so pfn + 1 is valid */ | ||
1122 | return min(pfn + 1, max_pfn); | ||
1123 | } | ||
1124 | } while (left < right); | ||
1125 | |||
1126 | if (right == type->cnt) | ||
1127 | return max_pfn; | ||
1128 | else | ||
1129 | return min(PHYS_PFN(type->regions[right].base), max_pfn); | ||
1130 | } | ||
1131 | |||
1132 | /** | 1104 | /** |
1133 | * memblock_set_node - set node ID on memblock regions | 1105 | * memblock_set_node - set node ID on memblock regions |
1134 | * @base: base of area to set node ID for | 1106 | * @base: base of area to set node ID for |