Re: [patch 5/8] mm/memblock.c: hardcode the end_pfn being -1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Mar 10, 2018 at 12:51 AM,  <akpm@xxxxxxxxxxxxxxxxxxxx> wrote:
> From: Daniel Vacek <neelx@xxxxxxxxxx>
> Subject: mm/memblock.c: hardcode the end_pfn being -1
>
> This is just a cleanup.  It aids handling the special end case in the next
> commit.
>
> [akpm@xxxxxxxxxxxxxxxxxxxx: make it work against current -linus, not against -mm]
> [akpm@xxxxxxxxxxxxxxxxxxxx: make it work against current -linus, not against -mm some more]

Bad and bad some more. I believe you broke it and then you had to fix it...

--nX

> Link: http://lkml.kernel.org/r/1ca478d4269125a99bcfb1ca04d7b88ac1aee924.1520011944.git.neelx@xxxxxxxxxx
> Signed-off-by: Daniel Vacek <neelx@xxxxxxxxxx>
> Cc: Michal Hocko <mhocko@xxxxxxxx>
> Cc: Vlastimil Babka <vbabka@xxxxxxx>
> Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
> Cc: Pavel Tatashin <pasha.tatashin@xxxxxxxxxx>
> Cc: Paul Burton <paul.burton@xxxxxxxxxx>
> Cc: <stable@xxxxxxxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
> ---
>
>  mm/memblock.c |   10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff -puN mm/memblock.c~mm-memblock-hardcode-the-end_pfn-being-1 mm/memblock.c
> --- a/mm/memblock.c~mm-memblock-hardcode-the-end_pfn-being-1
> +++ a/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);
>  }
>
>  /**
> _



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]