Re: [PATCH] mm/memblock: fix potential issue in memblock_search_pfn_nid()

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

 



Please ignore this, since the mail list address is corrupted. :-(

On Fri, Mar 30, 2018 at 10:34 AM, Wei Yang <richard.weiyang@xxxxxxxxx> wrote:
> memblock_search_pfn_nid() returns the nid and the [start|end]_pfn of the
> memory region where pfn sits in. While the calculation of start_pfn has
> potential issue when the regions base is not page aligned.
>
> For example, we assume PAGE_SHIFT is 12 and base is 0x1234. Current
> implementation would return 1 while this is not correct.
>
> This patch fixes this by using PFN_UP().
>
> The original commit is commit e76b63f80d93 ("memblock, numa: binary search
> node id") and merged in v3.12.
>
> Signed-off-by: Wei Yang <richard.weiyang@xxxxxxxxx>
> Cc: 3.12 <stable@xxxxxxxxxxxxxxx>
> ---
>  mm/memblock.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/mm/memblock.c b/mm/memblock.c
> index b6ba6b7adadc..de768307696d 100644
> --- a/mm/memblock.c
> +++ b/mm/memblock.c
> @@ -1673,7 +1673,7 @@ int __init_memblock memblock_search_pfn_nid(unsigned long pfn,
>         if (mid == -1)
>                 return -1;
>
> -       *start_pfn = PFN_DOWN(type->regions[mid].base);
> +       *start_pfn = PFN_UP(type->regions[mid].base);
>         *end_pfn = PFN_DOWN(type->regions[mid].base + type->regions[mid].size);
>
>         return type->regions[mid].nid;
> --
> 2.15.1
>



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