Эх сурвалжийг харах

kasan: respect /proc/sys/kernel/traceoff_on_warning

After much waiting I finally reproduced a KASAN issue, only to find my
trace-buffer empty of useful information because it got spooled out :/

Make kasan_report honour the /proc/sys/kernel/traceoff_on_warning
interface.

Link: http://lkml.kernel.org/r/20170125164106.3514-1-aryabinin@virtuozzo.com
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Acked-by: Alexander Potapenko <glider@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Peter Zijlstra 8 жил өмнө
parent
commit
4f40c6e562

+ 3 - 0
mm/kasan/report.c

@@ -13,6 +13,7 @@
  *
  *
  */
  */
 
 
+#include <linux/ftrace.h>
 #include <linux/kernel.h>
 #include <linux/kernel.h>
 #include <linux/mm.h>
 #include <linux/mm.h>
 #include <linux/printk.h>
 #include <linux/printk.h>
@@ -300,6 +301,8 @@ void kasan_report(unsigned long addr, size_t size,
 	if (likely(!kasan_report_enabled()))
 	if (likely(!kasan_report_enabled()))
 		return;
 		return;
 
 
+	disable_trace_on_warning();
+
 	info.access_addr = (void *)addr;
 	info.access_addr = (void *)addr;
 	info.access_size = size;
 	info.access_size = size;
 	info.is_write = is_write;
 	info.is_write = is_write;