From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiang Liu Date: Fri, 11 Jul 2014 07:37:28 +0000 Subject: [RFC Patch V1 11/30] mm, char/mspec.c: Use cpu_to_mem()/numa_mem_id() to support memoryless node Message-Id: <1405064267-11678-12-git-send-email-jiang.liu@linux.intel.com> List-Id: References: <1405064267-11678-1-git-send-email-jiang.liu@linux.intel.com> In-Reply-To: <1405064267-11678-1-git-send-email-jiang.liu@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Andrew Morton , Mel Gorman , David Rientjes , Mike Galbraith , Peter Zijlstra , "Rafael J . Wysocki" , Arnd Bergmann , Greg Kroah-Hartman Cc: Jiang Liu , Tony Luck , linux-mm@kvack.org, linux-hotplug@vger.kernel.org, linux-kernel@vger.kernel.org When CONFIG_HAVE_MEMORYLESS_NODES is enabled, cpu_to_node()/numa_node_id() may return a node without memory, and later cause system failure/panic when calling kmalloc_node() and friends with returned node id. So use cpu_to_mem()/numa_mem_id() instead to get the nearest node with memory for the/current cpu. If CONFIG_HAVE_MEMORYLESS_NODES is disabled, cpu_to_mem()/numa_mem_id() is the same as cpu_to_node()/numa_node_id(). Signed-off-by: Jiang Liu --- drivers/char/mspec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/char/mspec.c b/drivers/char/mspec.c index f1d7fa45c275..20e893cde9fd 100644 --- a/drivers/char/mspec.c +++ b/drivers/char/mspec.c @@ -206,7 +206,7 @@ mspec_fault(struct vm_area_struct *vma, struct vm_fault *vmf) maddr = (volatile unsigned long) vdata->maddr[index]; if (maddr = 0) { - maddr = uncached_alloc_page(numa_node_id(), 1); + maddr = uncached_alloc_page(numa_mem_id(), 1); if (maddr = 0) return VM_FAULT_OOM; -- 1.7.10.4