All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] irq_work: record irq_work_queue() call stack
@ 2021-03-31  6:32 qiang.zhang
  2021-03-31 10:02 ` Dmitry Vyukov
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: qiang.zhang @ 2021-03-31  6:32 UTC (permalink / raw)
  To: ryabinin.a.a, glider, dvyukov, matthias.bgg, andreyknvl, akpm,
	oleg, walter-zh.wu, frederic
  Cc: kasan-dev, linux-kernel

From: Zqiang <qiang.zhang@windriver.com>

Add the irq_work_queue() call stack into the KASAN auxiliary
stack in order to improve KASAN reports. this will let us know
where the irq work be queued.

Signed-off-by: Zqiang <qiang.zhang@windriver.com>
---
 kernel/irq_work.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/kernel/irq_work.c b/kernel/irq_work.c
index e8da1e71583a..23a7a0ba1388 100644
--- a/kernel/irq_work.c
+++ b/kernel/irq_work.c
@@ -19,7 +19,7 @@
 #include <linux/notifier.h>
 #include <linux/smp.h>
 #include <asm/processor.h>
-
+#include <linux/kasan.h>
 
 static DEFINE_PER_CPU(struct llist_head, raised_list);
 static DEFINE_PER_CPU(struct llist_head, lazy_list);
@@ -70,6 +70,9 @@ bool irq_work_queue(struct irq_work *work)
 	if (!irq_work_claim(work))
 		return false;
 
+	/*record irq_work call stack in order to print it in KASAN reports*/
+	kasan_record_aux_stack(work);
+
 	/* Queue the entry and raise the IPI if needed. */
 	preempt_disable();
 	__irq_work_queue_local(work);
@@ -98,6 +101,8 @@ bool irq_work_queue_on(struct irq_work *work, int cpu)
 	if (!irq_work_claim(work))
 		return false;
 
+	kasan_record_aux_stack(work);
+
 	preempt_disable();
 	if (cpu != smp_processor_id()) {
 		/* Arch remote IPI send/receive backend aren't NMI safe */
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-06-10  8:13 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-31  6:32 [PATCH] irq_work: record irq_work_queue() call stack qiang.zhang
2021-03-31 10:02 ` Dmitry Vyukov
2021-04-02 14:52 ` Andrey Konovalov
2021-06-08 17:51 ` Peter Zijlstra
2021-06-08 17:59   ` [PATCH] irq_work: Make irq_work_queue() NMI-safe again Peter Zijlstra
2021-06-10  7:02   ` [tip: perf/urgent] " tip-bot2 for Peter Zijlstra
2021-06-10  8:13   ` tip-bot2 for Peter Zijlstra

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.