mm: Move kvmalloc declarations to slab.h printf-state
authorMatthew Wilcox <willy@infradead.org>
Sun, 20 Jan 2019 16:03:51 +0000 (11:03 -0500)
committerMatthew Wilcox <willy@infradead.org>
Sun, 20 Jan 2019 16:03:51 +0000 (11:03 -0500)
Contrary to popular belief, not every file in the kernel includes mm.h
and this helps transition users from kmalloc to kvmalloc.

Signed-off-by: Matthew Wilcox <willy@infradead.org>
include/linux/mm.h
include/linux/slab.h

index 7babe7bdddc76b8672b3569e1f9b0c7114f5c0c1..c6a5aabc7f85f253ffa556de1b03676e48daa2ce 100644 (file)
@@ -633,37 +633,6 @@ static inline int is_vmalloc_or_module_addr(const void *x)
 }
 #endif
 
-extern void *kvmalloc_node(size_t size, gfp_t flags, int node);
-static inline void *kvmalloc(size_t size, gfp_t flags)
-{
-       return kvmalloc_node(size, flags, NUMA_NO_NODE);
-}
-static inline void *kvzalloc_node(size_t size, gfp_t flags, int node)
-{
-       return kvmalloc_node(size, flags | __GFP_ZERO, node);
-}
-static inline void *kvzalloc(size_t size, gfp_t flags)
-{
-       return kvmalloc(size, flags | __GFP_ZERO);
-}
-
-static inline void *kvmalloc_array(size_t n, size_t size, gfp_t flags)
-{
-       size_t bytes;
-
-       if (unlikely(check_mul_overflow(n, size, &bytes)))
-               return NULL;
-
-       return kvmalloc(bytes, flags);
-}
-
-static inline void *kvcalloc(size_t n, size_t size, gfp_t flags)
-{
-       return kvmalloc_array(n, size, flags | __GFP_ZERO);
-}
-
-extern void kvfree(const void *addr);
-
 static inline atomic_t *compound_mapcount_ptr(struct page *page)
 {
        return &page[1].compound_mapcount;
index 11b45f7ae4057c3b70105974b8f527dd6f30d8ba..804440956e39514dc8a7ea6c4f9d2591aaf5666d 100644 (file)
@@ -751,6 +751,37 @@ static inline void *kzalloc_node(size_t size, gfp_t flags, int node)
        return kmalloc_node(size, flags | __GFP_ZERO, node);
 }
 
+extern void *kvmalloc_node(size_t size, gfp_t flags, int node);
+static inline void *kvmalloc(size_t size, gfp_t flags)
+{
+       return kvmalloc_node(size, flags, NUMA_NO_NODE);
+}
+static inline void *kvzalloc_node(size_t size, gfp_t flags, int node)
+{
+       return kvmalloc_node(size, flags | __GFP_ZERO, node);
+}
+static inline void *kvzalloc(size_t size, gfp_t flags)
+{
+       return kvmalloc(size, flags | __GFP_ZERO);
+}
+
+static inline void *kvmalloc_array(size_t n, size_t size, gfp_t flags)
+{
+       size_t bytes;
+
+       if (unlikely(check_mul_overflow(n, size, &bytes)))
+               return NULL;
+
+       return kvmalloc(bytes, flags);
+}
+
+static inline void *kvcalloc(size_t n, size_t size, gfp_t flags)
+{
+       return kvmalloc_array(n, size, flags | __GFP_ZERO);
+}
+
+extern void kvfree(const void *addr);
+
 unsigned int kmem_cache_size(struct kmem_cache *s);
 void __init kmem_cache_init_late(void);