diff options
Diffstat (limited to 'mm/memblock.c')
-rw-r--r-- | mm/memblock.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/mm/memblock.c b/mm/memblock.c index 5a9ca2a1751b..b6ba6b7adadc 100644 --- a/mm/memblock.c +++ b/mm/memblock.c | |||
@@ -1107,7 +1107,7 @@ unsigned long __init_memblock memblock_next_valid_pfn(unsigned long pfn, | |||
1107 | struct memblock_type *type = &memblock.memory; | 1107 | struct memblock_type *type = &memblock.memory; |
1108 | unsigned int right = type->cnt; | 1108 | unsigned int right = type->cnt; |
1109 | unsigned int mid, left = 0; | 1109 | unsigned int mid, left = 0; |
1110 | phys_addr_t addr = PFN_PHYS(pfn + 1); | 1110 | phys_addr_t addr = PFN_PHYS(++pfn); |
1111 | 1111 | ||
1112 | do { | 1112 | do { |
1113 | mid = (right + left) / 2; | 1113 | mid = (right + left) / 2; |
@@ -1118,15 +1118,15 @@ unsigned long __init_memblock memblock_next_valid_pfn(unsigned long pfn, | |||
1118 | type->regions[mid].size)) | 1118 | type->regions[mid].size)) |
1119 | left = mid + 1; | 1119 | left = mid + 1; |
1120 | else { | 1120 | else { |
1121 | /* addr is within the region, so pfn + 1 is valid */ | 1121 | /* addr is within the region, so pfn is valid */ |
1122 | return min(pfn + 1, max_pfn); | 1122 | return pfn; |
1123 | } | 1123 | } |
1124 | } while (left < right); | 1124 | } while (left < right); |
1125 | 1125 | ||
1126 | if (right == type->cnt) | 1126 | if (right == type->cnt) |
1127 | return max_pfn; | 1127 | return -1UL; |
1128 | else | 1128 | else |
1129 | return min(PHYS_PFN(type->regions[right].base), max_pfn); | 1129 | return PHYS_PFN(type->regions[right].base); |
1130 | } | 1130 | } |
1131 | 1131 | ||
1132 | /** | 1132 | /** |