| From 379b03b7fa05f7db521b7732a52692448a3c34fe Mon Sep 17 00:00:00 2001 |
| From: Daniel Vacek <neelx@redhat.com> |
| Date: Fri, 9 Mar 2018 15:51:09 -0800 |
| Subject: mm/memblock.c: hardcode the end_pfn being -1 |
| |
| From: Daniel Vacek <neelx@redhat.com> |
| |
| commit 379b03b7fa05f7db521b7732a52692448a3c34fe upstream. |
| |
| This is just a cleanup. It aids handling the special end case in the |
| next commit. |
| |
| [akpm@linux-foundation.org: make it work against current -linus, not against -mm] |
| [akpm@linux-foundation.org: make it work against current -linus, not against -mm some more] |
| Link: http://lkml.kernel.org/r/1ca478d4269125a99bcfb1ca04d7b88ac1aee924.1520011944.git.neelx@redhat.com |
| Signed-off-by: Daniel Vacek <neelx@redhat.com> |
| Cc: Michal Hocko <mhocko@suse.com> |
| Cc: Vlastimil Babka <vbabka@suse.cz> |
| Cc: Mel Gorman <mgorman@techsingularity.net> |
| Cc: Pavel Tatashin <pasha.tatashin@oracle.com> |
| Cc: Paul Burton <paul.burton@imgtec.com> |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| mm/memblock.c | 10 +++++----- |
| 1 file changed, 5 insertions(+), 5 deletions(-) |
| |
| --- a/mm/memblock.c |
| +++ b/mm/memblock.c |
| @@ -1107,7 +1107,7 @@ unsigned long __init_memblock memblock_n |
| struct memblock_type *type = &memblock.memory; |
| unsigned int right = type->cnt; |
| unsigned int mid, left = 0; |
| - phys_addr_t addr = PFN_PHYS(pfn + 1); |
| + phys_addr_t addr = PFN_PHYS(++pfn); |
| |
| do { |
| mid = (right + left) / 2; |
| @@ -1118,15 +1118,15 @@ unsigned long __init_memblock memblock_n |
| type->regions[mid].size)) |
| left = mid + 1; |
| else { |
| - /* addr is within the region, so pfn + 1 is valid */ |
| - return min(pfn + 1, max_pfn); |
| + /* addr is within the region, so pfn is valid */ |
| + return pfn; |
| } |
| } while (left < right); |
| |
| if (right == type->cnt) |
| - return max_pfn; |
| + return -1UL; |
| else |
| - return min(PHYS_PFN(type->regions[right].base), max_pfn); |
| + return PHYS_PFN(type->regions[right].base); |
| } |
| |
| /** |