microblaze: Fix pfn_valid() for noMMU
steve@digidescorp.com [Fri, 13 Nov 2009 22:08:29 +0000 (16:08 -0600)]
Configuring DEBUG_SLAB causes a noMMU kernel to die during initialization
with an invalid virtual address panic in kfree_debugcheck().
The panic is due to an improper definition of pfn_valid().

Signed-off-by: Steven J. Magnani <steve@digidescorp.com>
Signed-off-by: Michal Simek <monstr@monstr.eu>

arch/microblaze/include/asm/page.h

index 880c988..9b66c0f 100644 (file)
@@ -164,7 +164,8 @@ extern int page_is_ram(unsigned long pfn);
 #  endif /* CONFIG_MMU */
 
 #  ifndef CONFIG_MMU
-#  define pfn_valid(pfn)       ((pfn) >= min_low_pfn && (pfn) <= max_mapnr)
+#  define pfn_valid(pfn)       (((pfn) >= min_low_pfn) && \
+                               ((pfn) <= (min_low_pfn + max_mapnr)))
 #  define ARCH_PFN_OFFSET      (PAGE_OFFSET >> PAGE_SHIFT)
 #  else /* CONFIG_MMU */
 #  define ARCH_PFN_OFFSET      (memory_start >> PAGE_SHIFT)