]> git.baikalelectronics.ru Git - kernel.git/commit
powerpc: start loop at section start of start in vmemmap_populated()
authorLi Zhong <zhong@linux.vnet.ibm.com>
Wed, 11 Jun 2014 08:23:39 +0000 (16:23 +0800)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 5 Aug 2014 06:34:23 +0000 (16:34 +1000)
commit1b6f22ec410465f45bbfe5d52b29372f0c3496b8
treea5762ba28bc5623f05d478f75d368e99e5afecef
parent01d2cc66eb0c13ab9cb9ef711f22caa9c8ed6203
powerpc: start loop at section start of start in vmemmap_populated()

vmemmap_populated() checks whether the [start, start + page_size) has valid
pfn numbers, to know whether a vmemmap mapping has been created that includes
this range.

Some range before end might not be checked by this loop:
  sec11start......start11..sec11end/sec12start..end....start12..sec12end
as the above, for start11(section 11), it checks [sec11start, sec11end), and
loop ends as the next start(start12) is bigger than end. However,
[sec11end/sec12start, end) is not checked here.

So before the loop, adjust the start to be the start of the section, so we don't miss ranges like the above.

After we adjust start to be the start of the section, it also means it's
aligned with vmemmap as of the sizeof struct page, so we could use
page_to_pfn directly in the loop.

Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com>
Cc: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Acked-by: Nathan Fontenot <nfont@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/mm/init_64.c