aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Hocko <mhocko@suse.com>2017-07-06 18:37:42 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-07-06 19:24:32 -0400
commitbfe63d3beabfac93521c8b7ccd40befd7a90148e (patch)
treeeb79c201a35ba6e0983eb913af8e707acab2c426
parentc8f9565716e37fe764a3007d90cecb35b3b4a77a (diff)
mm: drop page_initialized check from get_nid_for_pfn
Commit c04fc586c1a4 ("mm: show node to memory section relationship with symlinks in sysfs") has added means to export memblock<->node association into the sysfs. It has also introduced get_nid_for_pfn which is a rather confusing counterpart of pfn_to_nid which checks also whether the pfn page is already initialized (page_initialized). This is done by checking page::lru != NULL which doesn't make any sense at all. Nothing in this path really relies on the lru list being used or initialized. Just remove it because this will become a problem with later patches. Thanks to Reza Arbab for testing which revealed this to be a problem (http://lkml.kernel.org/r/20170403202337.GA12482@dhcp22.suse.cz) Link: http://lkml.kernel.org/r/20170515085827.16474-4-mhocko@kernel.org Signed-off-by: Michal Hocko <mhocko@suse.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> Cc: Reza Arbab <arbab@linux.vnet.ibm.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Andrea Arcangeli <aarcange@redhat.com> Cc: Balbir Singh <bsingharora@gmail.com> Cc: Dan Williams <dan.j.williams@intel.com> Cc: Daniel Kiper <daniel.kiper@oracle.com> Cc: David Rientjes <rientjes@google.com> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Igor Mammedov <imammedo@redhat.com> Cc: Jerome Glisse <jglisse@redhat.com> Cc: Joonsoo Kim <js1304@gmail.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Tobias Regnery <tobias.regnery@gmail.com> Cc: Toshi Kani <toshi.kani@hpe.com> Cc: Vitaly Kuznetsov <vkuznets@redhat.com> Cc: Xishi Qiu <qiuxishi@huawei.com> Cc: Yasuaki Ishimatsu <isimatu.yasuaki@jp.fujitsu.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--drivers/base/node.c7
1 files changed, 0 insertions, 7 deletions
diff --git a/drivers/base/node.c b/drivers/base/node.c
index 0440d95c9b5b..db769d3148b7 100644
--- a/drivers/base/node.c
+++ b/drivers/base/node.c
@@ -368,21 +368,14 @@ int unregister_cpu_under_node(unsigned int cpu, unsigned int nid)
368} 368}
369 369
370#ifdef CONFIG_MEMORY_HOTPLUG_SPARSE 370#ifdef CONFIG_MEMORY_HOTPLUG_SPARSE
371#define page_initialized(page) (page->lru.next)
372
373static int __ref get_nid_for_pfn(unsigned long pfn) 371static int __ref get_nid_for_pfn(unsigned long pfn)
374{ 372{
375 struct page *page;
376
377 if (!pfn_valid_within(pfn)) 373 if (!pfn_valid_within(pfn))
378 return -1; 374 return -1;
379#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT 375#ifdef CONFIG_DEFERRED_STRUCT_PAGE_INIT
380 if (system_state < SYSTEM_RUNNING) 376 if (system_state < SYSTEM_RUNNING)
381 return early_pfn_to_nid(pfn); 377 return early_pfn_to_nid(pfn);
382#endif 378#endif
383 page = pfn_to_page(pfn);
384 if (!page_initialized(page))
385 return -1;
386 return pfn_to_nid(pfn); 379 return pfn_to_nid(pfn);
387} 380}
388 381