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);
 }

Reply via email to