Jun Miao
unread,Apr 26, 2022, 9:49:19 PM4/26/22Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ryabin...@gmail.com, Dmitry Vyukov, big...@linutronix.de, qiang1...@intel.com, pet...@infradead.org, ak...@linux-foundation.org, andre...@gmail.com, ying....@intel.com, kasa...@googlegroups.com, linux-...@vger.kernel.org
Add To/Cc : KASAN/MEM , since I only used the scripts/
get_maintainer.pl
to irq_work.c file.
Thanks
Jun Miao
On 2022/4/26 21:49, Jun Miao wrote:
> We should not put NMI unsafe code in irq_work_queue_on().
>
> The KASAN of kasan_record_aux_stack_noalloc() is not NMI safe. Because which
> will call the spinlock. While the irq_work_queue_on() is also very carefully
> carafted to be exactly that.
> When unable CONFIG_SM or local CPU, the irq_work_queue_on() is even same to
> irq_work_queue(). So delete KASAN instantly.
>
> Fixes: e2b5bcf9f5ba ("irq_work: record irq_work_queue() call stack")
> Suggested by: "Huang, Ying" <
ying....@intel.com>
> Signed-off-by: Jun Miao <
jun....@intel.com>
> ---
> kernel/irq_work.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/kernel/irq_work.c b/kernel/irq_work.c
> index 7afa40fe5cc4..e7f48aa8d8af 100644
> --- a/kernel/irq_work.c
> +++ b/kernel/irq_work.c
> @@ -20,7 +20,6 @@
> #include <linux/smp.h>
> #include <linux/smpboot.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);
> @@ -137,8 +136,6 @@ bool irq_work_queue_on(struct irq_work *work, int cpu)
> if (!irq_work_claim(work))
> return false;
>
> - kasan_record_aux_stack_noalloc(work);
> -
> preempt_disable();
> if (cpu != smp_processor_id()) {
> /* Arch remote IPI send/receive backend aren't NMI safe */