diff options
-rw-r--r-- | kernel/module.c | 8 | ||||
-rw-r--r-- | lib/Kconfig.debug | 12 |
2 files changed, 13 insertions, 7 deletions
diff --git a/kernel/module.c b/kernel/module.c index 3c137e55853b..2ec4df630677 100644 --- a/kernel/module.c +++ b/kernel/module.c @@ -2579,7 +2579,13 @@ void * __weak module_alloc(unsigned long size) return vmalloc_exec(size); } -#ifdef CONFIG_DEBUG_KMEMLEAK +#if defined(CONFIG_DEBUG_KMEMLEAK) && defined(CONFIG_DEBUG_MODULE_SCAN_OFF) +static void kmemleak_load_module(const struct module *mod, + const struct load_info *info) +{ + kmemleak_no_scan(mod->module_core); +} +#elif defined(CONFIG_DEBUG_KMEMLEAK) static void kmemleak_load_module(const struct module *mod, const struct load_info *info) { diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug index d99c78207349..b959b9a0030b 100644 --- a/lib/Kconfig.debug +++ b/lib/Kconfig.debug @@ -956,14 +956,14 @@ config DEBUG_TASK_STACK_SCAN_OFF writing to the debugfs entry : echo "stack=on" > /sys/kernel/debug/kmemleak. -config DEBUG_TASK_STACK_SCAN_OFF - bool "Disable kmemleak task stack scan by default" +config DEBUG_MODULE_SCAN_OFF + bool "Disable module memory scan for leaks by default" depends on DEBUG_KMEMLEAK help - Say Y here to disable kmemleak task stack scan by default - at compile time. It can be enabled later if required by - writing to the debugfs entry : - echo "stack=on" > /sys/kernel/debug/kmemleak. + Say Y here to disable scanning kernel modules area list + by default for memory leaks. Module scan an potentially + run with irq/preemption disabled for considerable amount + of time. config DEBUG_PREEMPT bool "Debug preemptible kernel" |