From: Arnd Bergmann Date: Tue, 23 Apr 2013 16:30:48 +0000 (+0200) Subject: staging/zsmalloc: don't use pgtable-mapping from modules X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=796ce5a7e4ef88ee0bfbeaa80070a51570650d57;p=openwrt%2Fstaging%2Fblogic.git staging/zsmalloc: don't use pgtable-mapping from modules Building zsmalloc as a module does not work on ARM because it uses an interface that is not exported: ERROR: "flush_tlb_kernel_range" [drivers/staging/zsmalloc/zsmalloc.ko] undefined! Since this is only used as a performance optimization and only on ARM, we can avoid the problem simply by not using that optimization when building zsmalloc it is a loadable module. flush_tlb_kernel_range is often an inline function, but out of the architectures that use an extern function, only powerpc exports it. Signed-off-by: Arnd Bergmann Cc: Greg Kroah-Hartman Cc: Seth Jennings Cc: Nitin Gupta Signed-off-by: Greg Kroah-Hartman --- diff --git a/drivers/staging/zsmalloc/zsmalloc-main.c b/drivers/staging/zsmalloc/zsmalloc-main.c index 324e123335d6..f82f7e69c8a5 100644 --- a/drivers/staging/zsmalloc/zsmalloc-main.c +++ b/drivers/staging/zsmalloc/zsmalloc-main.c @@ -225,7 +225,7 @@ struct zs_pool { * so that USE_PGTABLE_MAPPING is defined. This causes zsmalloc to use * page table mapping rather than copying for object mapping. */ -#if defined(CONFIG_ARM) +#if defined(CONFIG_ARM) && !defined(MODULE) #define USE_PGTABLE_MAPPING #endif