This is an automated email from the ASF dual-hosted git repository. xiaoxiang781216 pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/nuttx.git
commit 3656a2d5ba583e37142c2b124802684d74cc9e90 Author: wangzhi16 <[email protected]> AuthorDate: Tue Sep 23 21:08:41 2025 +0800 sched/spinlock: replace spinlock with spinlock_notrace. 1. When triggering panic, not using the notrace version may cause recursion; 2. Enabling debug information in Kasan will affect performance, Enabling debug information in Kasan will affect performance. Context switching is not performed in Kasan. Signed-off-by: wangzhi16 <[email protected]> --- drivers/serial/uart_pl011.c | 4 ++-- mm/kasan/generic.c | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/drivers/serial/uart_pl011.c b/drivers/serial/uart_pl011.c index 4583343a075..c0500024c99 100644 --- a/drivers/serial/uart_pl011.c +++ b/drivers/serial/uart_pl011.c @@ -678,10 +678,10 @@ static void pl011_putc(struct uart_dev_s *dev, int ch) FAR struct pl011_uart_port_s *sport = dev->priv; irqstate_t flags; - flags = spin_lock_irqsave(&sport->lock); + flags = spin_lock_irqsave_notrace(&sport->lock); while (!pl011_txempty(dev)); pl011_send(dev, ch); - spin_unlock_irqrestore(&sport->lock, flags); + spin_unlock_irqrestore_notrace(&sport->lock, flags); } /*************************************************************************** diff --git a/mm/kasan/generic.c b/mm/kasan/generic.c index bde55ac5d6c..3510c2b39aa 100644 --- a/mm/kasan/generic.c +++ b/mm/kasan/generic.c @@ -165,7 +165,7 @@ static void kasan_set_poison(FAR const void *addr, size_t size, mask = KASAN_FIRST_WORD_MASK(bit); size /= KASAN_SHADOW_SCALE; - flags = spin_lock_irqsave(&g_lock); + flags = spin_lock_irqsave_notrace(&g_lock); while (size >= nbit) { if (poisoned) @@ -197,7 +197,7 @@ static void kasan_set_poison(FAR const void *addr, size_t size, } } - spin_unlock_irqrestore(&g_lock, flags); + spin_unlock_irqrestore_notrace(&g_lock, flags); } /**************************************************************************** @@ -246,12 +246,12 @@ void kasan_register(FAR void *addr, FAR size_t *size) region->begin = (uintptr_t)addr; region->end = region->begin + *size; - flags = spin_lock_irqsave(&g_lock); + flags = spin_lock_irqsave_notrace(&g_lock); DEBUGASSERT(g_region_count < CONFIG_MM_KASAN_REGIONS); g_region[g_region_count++] = region; - spin_unlock_irqrestore(&g_lock, flags); + spin_unlock_irqrestore_notrace(&g_lock, flags); kasan_start(); kasan_poison(addr, *size); @@ -263,7 +263,7 @@ void kasan_unregister(FAR void *addr) irqstate_t flags; size_t i; - flags = spin_lock_irqsave(&g_lock); + flags = spin_lock_irqsave_notrace(&g_lock); for (i = 0; i < g_region_count; i++) { if (g_region[i]->begin == (uintptr_t)addr) @@ -273,11 +273,11 @@ void kasan_unregister(FAR void *addr) g_region_count--; memmove(&g_region[i], &g_region[i + 1], (g_region_count - i) * sizeof(g_region[0])); - spin_unlock_irqrestore(&g_lock, flags); + spin_unlock_irqrestore_notrace(&g_lock, flags); kasan_unpoison(addr, size); return; } } - spin_unlock_irqrestore(&g_lock, flags); + spin_unlock_irqrestore_notrace(&g_lock, flags); }
