提交 7b3e543d 编写于 作者: A Anton Altaparmakov 提交者: Ralf Baechle

MIPS: Fix __vmalloc() etc. on MIPS for non-GPL modules

Commit b3594a089f1c17ff919f8f78505c3f20e1f6f8ce (lmo) rsp.
35133692 (kernel.org) break non-GPL modules
that use __vmalloc() or any of the vmap(), vm_map_ram(), etc functions on
MIPS.

All those functions are EXPORT_SYMBOL() so are meant to be allowed to be
used by non-GPL kernel modules.  These calls all take page protection as
an argument which is normally a constant like PAGE_KERNEL.

This commit causes all protection constants like PAGE_KERNEL to not be
constants and instead to contain the GPL-only symbol _page_cachable_default.

This means that all calls to __vmalloc(), vmap(), etc, cause non-GPL
modules to fail to link with the complaint that they are trying to use the
GPL-only symbol _page_cachable_default...

Change EXPORT_SYMBOL_GPL(_page_cachable_default) to EXPORT_SYMBOL() for
non-GPL modules that call __vmalloc(), vmap(), vm_map_ram() etc.
Signed-off-by: NAnton Altaparmakov <aia21@cantab.net>
Cc: Chris Dearman <chris@mips.com>
Cc: linux-mips@linux-mips.org
Cc: linux-kernel@vger.kernel.org
Patchwork: http://patchwork.linux-mips.org/patch/1084/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
上级 3d45285d
...@@ -133,7 +133,7 @@ void __update_cache(struct vm_area_struct *vma, unsigned long address, ...@@ -133,7 +133,7 @@ void __update_cache(struct vm_area_struct *vma, unsigned long address,
} }
unsigned long _page_cachable_default; unsigned long _page_cachable_default;
EXPORT_SYMBOL_GPL(_page_cachable_default); EXPORT_SYMBOL(_page_cachable_default);
static inline void setup_protection_map(void) static inline void setup_protection_map(void)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册