]> git.ipfire.org Git - thirdparty/kernel/stable.git/blobdiff - mm/kmemleak.c
mm: lift gfp_kmemleak_mask() to gfp.h
[thirdparty/kernel/stable.git] / mm / kmemleak.c
index fdcf01f622028fedee7224c566c9c320dd956d16..d5b6fba44fc9f088696ff3085e0e0d3e2e2f217d 100644 (file)
 
 #define BYTES_PER_POINTER      sizeof(void *)
 
-/* GFP bitmask for kmemleak internal allocations */
-#define gfp_kmemleak_mask(gfp) (((gfp) & (GFP_KERNEL | GFP_ATOMIC | \
-                                          __GFP_NOLOCKDEP)) | \
-                                __GFP_NORETRY | __GFP_NOMEMALLOC | \
-                                __GFP_NOWARN)
-
 /* scanning area inside a memory block */
 struct kmemleak_scan_area {
        struct hlist_node node;
@@ -463,7 +457,8 @@ static struct kmemleak_object *mem_pool_alloc(gfp_t gfp)
 
        /* try the slab allocator first */
        if (object_cache) {
-               object = kmem_cache_alloc_noprof(object_cache, gfp_kmemleak_mask(gfp));
+               object = kmem_cache_alloc_noprof(object_cache,
+                                                gfp_nested_mask(gfp));
                if (object)
                        return object;
        }
@@ -947,7 +942,8 @@ static void add_scan_area(unsigned long ptr, size_t size, gfp_t gfp)
        untagged_objp = (unsigned long)kasan_reset_tag((void *)object->pointer);
 
        if (scan_area_cache)
-               area = kmem_cache_alloc_noprof(scan_area_cache, gfp_kmemleak_mask(gfp));
+               area = kmem_cache_alloc_noprof(scan_area_cache,
+                                              gfp_nested_mask(gfp));
 
        raw_spin_lock_irqsave(&object->lock, flags);
        if (!area) {