It looks like this was picked up for the 5.17-stable cycles, but nothing older than that. Might be worth nominating for 5.15-stable. But either way, I've grabbed it now and merged it to all the 5.15 branches.
Bruce In message: [linux-yocto][linux-yocto v5.15/standard/base][PATCH 1/1] irq_work: use kasan_record_aux_stack_noalloc() record callstack on 28/11/2022 Liwei Song wrote: > From: Zqiang <qiang1.zh...@intel.com> > > commit 25934fcfb93c4687ad32fd3d062bcf03457129d4 upstream. > > On PREEMPT_RT kernel and KASAN is enabled. the kasan_record_aux_stack() > may call alloc_pages(), and the rt-spinlock will be acquired, if currently > in atomic context, will trigger warning: > > BUG: sleeping function called from invalid context at > kernel/locking/spinlock_rt.c:46 > in_atomic(): 1, irqs_disabled(): 1, non_block: 0, pid: 239, name: bootlogd > Preemption disabled at: > [<ffffffffbab1a531>] rt_mutex_slowunlock+0xa1/0x4e0 > CPU: 3 PID: 239 Comm: bootlogd Tainted: G W > 5.17.1-rt17-yocto-preempt-rt+ #105 > Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS > rel-1.15.0-0-g2dd4b9b3f840-prebuilt.qemu.org 04/01/2014 > Call Trace: > __might_resched.cold+0x13b/0x173 > rt_spin_lock+0x5b/0xf0 > get_page_from_freelist+0x20c/0x1610 > __alloc_pages+0x25e/0x5e0 > __stack_depot_save+0x3c0/0x4a0 > kasan_save_stack+0x3a/0x50 > __kasan_record_aux_stack+0xb6/0xc0 > kasan_record_aux_stack+0xe/0x10 > irq_work_queue_on+0x6a/0x1c0 > pull_rt_task+0x631/0x6b0 > do_balance_callbacks+0x56/0x80 > __balance_callbacks+0x63/0x90 > rt_mutex_setprio+0x349/0x880 > rt_mutex_slowunlock+0x22a/0x4e0 > rt_spin_unlock+0x49/0x80 > uart_write+0x186/0x2b0 > do_output_char+0x2e9/0x3a0 > n_tty_write+0x306/0x800 > file_tty_write.isra.0+0x2af/0x450 > tty_write+0x22/0x30 > new_sync_write+0x27c/0x3a0 > vfs_write+0x3f7/0x5d0 > ksys_write+0xd9/0x180 > __x64_sys_write+0x43/0x50 > do_syscall_64+0x44/0x90 > entry_SYSCALL_64_after_hwframe+0x44/0xae > > Fix it by using kasan_record_aux_stack_noalloc() to avoid the call to > alloc_pages(). > > Link: > https://lkml.kernel.org/r/20220402142555.2699582-1-qiang1.zh...@intel.com > Signed-off-by: Zqiang <qiang1.zh...@intel.com> > Cc: Andrey Ryabinin <ryabinin....@gmail.com> > Cc: Alexander Potapenko <gli...@google.com> > Cc: Andrey Konovalov <andreyk...@gmail.com> > Cc: Dmitry Vyukov <dvyu...@google.com> > Signed-off-by: Andrew Morton <a...@linux-foundation.org> > Signed-off-by: Linus Torvalds <torva...@linux-foundation.org> > Signed-off-by: Liwei Song <liwei.s...@windriver.com> > --- > kernel/irq_work.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/irq_work.c b/kernel/irq_work.c > index f7df715ec28e..7afa40fe5cc4 100644 > --- a/kernel/irq_work.c > +++ b/kernel/irq_work.c > @@ -137,7 +137,7 @@ bool irq_work_queue_on(struct irq_work *work, int cpu) > if (!irq_work_claim(work)) > return false; > > - kasan_record_aux_stack(work); > + kasan_record_aux_stack_noalloc(work); > > preempt_disable(); > if (cpu != smp_processor_id()) { > -- > 2.32.0 >
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#11968): https://lists.yoctoproject.org/g/linux-yocto/message/11968 Mute This Topic: https://lists.yoctoproject.org/mt/95306991/21656 Group Owner: linux-yocto+ow...@lists.yoctoproject.org Unsubscribe: https://lists.yoctoproject.org/g/linux-yocto/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-