Messages in this thread | | | From | Dmitry Vyukov <> | Date | Wed, 31 Mar 2021 12:02:01 +0200 | Subject | Re: [PATCH] irq_work: record irq_work_queue() call stack |
| |
On Wed, Mar 31, 2021 at 8:32 AM <qiang.zhang@windriver.com> wrote: > > 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>
Reviewed-by: Dmitry Vyukov <dvyukov@google.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 >
| |