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 >