Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mm: kmemleak: mark kmemleak_init prototype as __init

The kmemleak_init() definition in mm/kmemleak.c is marked __init but its
prototype in include/linux/kmemleak.h is marked __ref since commit
a6186d89c913 ("kmemleak: Mark the early log buffer as __initdata").

This causes a section mismatch which is reported as a warning when
building with clang -Wsection, because kmemleak_init() is declared in
section .ref.text but defined in .init.text.

Fix this by marking kmemleak_init() prototype __init.

Signed-off-by: Nicolas Iooss <nicolas.iooss_linux@m4x.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

Nicolas Iooss and committed by
Linus Torvalds
98e89cf0 25be6a65

+1 -1
+1 -1
include/linux/kmemleak.h
··· 25 25 26 26 #ifdef CONFIG_DEBUG_KMEMLEAK 27 27 28 - extern void kmemleak_init(void) __ref; 28 + extern void kmemleak_init(void) __init; 29 29 extern void kmemleak_alloc(const void *ptr, size_t size, int min_count, 30 30 gfp_t gfp) __ref; 31 31 extern void kmemleak_alloc_percpu(const void __percpu *ptr, size_t size,