|
@@ -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)
|
|
{
|
|
{
|