kmemleak: always register debugfs file
If kmemleak built in to the kernel, but is disabled by default, the debugfs file is never registered. Because of this, it is not possible to find out if the kernel is built with kmemleak support by checking for the presence of this file. To allow this, always register the file. After this patch, if the file doesn't exist, kmemleak is not available in the kernel. If writing "scan" or any other value than "clear" to this file results in EBUSY, then kmemleak is available but is disabled by default and can be activated via the kernel command line. Catalin: "that's also consistent with a late disabling of kmemleak when the debugfs entry sticks around." Link: http://lkml.kernel.org/r/20180824131220.19176-1-vincent.whitchurch@axis.com Signed-off-by: Vincent Whitchurch <vincent.whitchurch@axis.com> Acked-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>
This commit is contained in:
parent
1ed0cc5a01
commit
b353756b2b
|
@ -2097,6 +2097,11 @@ static int __init kmemleak_late_init(void)
|
|||
|
||||
kmemleak_initialized = 1;
|
||||
|
||||
dentry = debugfs_create_file("kmemleak", 0644, NULL, NULL,
|
||||
&kmemleak_fops);
|
||||
if (!dentry)
|
||||
pr_warn("Failed to create the debugfs kmemleak file\n");
|
||||
|
||||
if (kmemleak_error) {
|
||||
/*
|
||||
* Some error occurred and kmemleak was disabled. There is a
|
||||
|
@ -2108,10 +2113,6 @@ static int __init kmemleak_late_init(void)
|
|||
return -ENOMEM;
|
||||
}
|
||||
|
||||
dentry = debugfs_create_file("kmemleak", 0644, NULL, NULL,
|
||||
&kmemleak_fops);
|
||||
if (!dentry)
|
||||
pr_warn("Failed to create the debugfs kmemleak file\n");
|
||||
mutex_lock(&scan_mutex);
|
||||
start_scan_thread();
|
||||
mutex_unlock(&scan_mutex);
|
||||
|
|
Loading…
Reference in New Issue