mm, slab: don't wrap internal functions with alloc_hooks()
authorVlastimil Babka <vbabka@suse.cz>
Mon, 27 May 2024 09:01:28 +0000 (11:01 +0200)
committerVlastimil Babka <vbabka@suse.cz>
Tue, 28 May 2024 07:27:50 +0000 (09:27 +0200)
commita0a44d9175b349df2462089140fb7f292100bd7c
tree20faa4951a20f8bd2a47e662c108fc897b59a148
parent1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0
mm, slab: don't wrap internal functions with alloc_hooks()

The functions __kmalloc_noprof(), kmalloc_large_noprof(),
kmalloc_trace_noprof() and their _node variants are all internal to the
implementations of kmalloc_noprof() and kmalloc_node_noprof() and are
only declared in the "public" slab.h and exported so that those
implementations can be static inline and distinguish the build-time
constant size variants. The only other users for some of the internal
functions are slub_kunit and fortify_kunit tests which make very
short-lived allocations.

Therefore we can stop wrapping them with the alloc_hooks() macro.
Instead add a __ prefix to all of them and a comment documenting these
as internal. Also rename __kmalloc_trace() to __kmalloc_cache() which is
more descriptive - it is a variant of __kmalloc() where the exact
kmalloc cache has been already determined.

The usage in fortify_kunit can be removed completely, as the internal
functions should be tested already through kmalloc() tests in the
test variant that passes non-constant allocation size.

Reported-by: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Kees Cook <keescook@chromium.org>
Reviewed-by: Kent Overstreet <kent.overstreet@linux.dev>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
include/linux/slab.h
lib/fortify_kunit.c
lib/slub_kunit.c
mm/slub.c