提交 0738c4bb 编写于 作者: P Paul Mundt 提交者: Linus Torvalds

nommu: Provide is_vmalloc_addr() stub.

Introduced in commit-id 9e2779fa and
ifdef'ed out for nommu in 8ca3ed87, both
approaches end up breaking the nommu build in different ways. An
impressive feat for a 2-liner.

Current is_vmalloc_addr() users fall in to two camps:

	- Determining whether to use vfree()/kfree()
	- Whether to do vmlist traversal (only /proc/kcore).

Since we don't support /proc/kcore on nommu, that leaves the
vfree()/kfree() determination use cases. nommu vfree() happens to be a
wrapper to kfree() anyways, so is_vmalloc_addr() can always return 0
and end up with the right behaviour.
Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 baadac8b
...@@ -235,15 +235,22 @@ static inline int get_page_unless_zero(struct page *page) ...@@ -235,15 +235,22 @@ static inline int get_page_unless_zero(struct page *page)
struct page *vmalloc_to_page(const void *addr); struct page *vmalloc_to_page(const void *addr);
unsigned long vmalloc_to_pfn(const void *addr); unsigned long vmalloc_to_pfn(const void *addr);
#ifdef CONFIG_MMU /*
/* Determine if an address is within the vmalloc range */ * Determine if an address is within the vmalloc range
*
* On nommu, vmalloc/vfree wrap through kmalloc/kfree directly, so there
* is no special casing required.
*/
static inline int is_vmalloc_addr(const void *x) static inline int is_vmalloc_addr(const void *x)
{ {
#ifdef CONFIG_MMU
unsigned long addr = (unsigned long)x; unsigned long addr = (unsigned long)x;
return addr >= VMALLOC_START && addr < VMALLOC_END; return addr >= VMALLOC_START && addr < VMALLOC_END;
} #else
return 0;
#endif #endif
}
static inline struct page *compound_head(struct page *page) static inline struct page *compound_head(struct page *page)
{ {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册