anchao commented on code in PR #15324:
URL: https://github.com/apache/nuttx/pull/15324#discussion_r1896376249


##########
sched/clock/clock_gettime.c:
##########
@@ -58,15 +58,15 @@ static clock_t clock_process_runtime(FAR struct tcb_s *tcb)
 
   group = tcb->group;
 
-  flags = spin_lock_irqsave(NULL);
+  flags = spin_lock_irqsave(&group->lock);

Review Comment:
   replace all spin_lock_irqsave to spin_lock_irqsave_wo_note in sched dir



##########
sched/clock/clock_initialize.c:
##########
@@ -373,12 +382,14 @@ void clock_resynchronize(FAR struct timespec *rtc_diff)
 
       /* Add the sleep time to correct system timer */
 
+      flags = enter_critical_section();

Review Comment:
   why?



##########
include/nuttx/spinlock.h:
##########
@@ -618,21 +588,8 @@ static inline_function
 void spin_unlock_irqrestore_wo_note(FAR volatile spinlock_t *lock,
                                     irqstate_t flags)
 {
-  if (NULL == lock)
-    {
-      int me = this_cpu();
-      DEBUGASSERT(0 < g_irq_spin_count[me]);
-      g_irq_spin_count[me]--;
-
-      if (0 == g_irq_spin_count[me])
-        {
-          spin_unlock_wo_note(&g_irq_spin);
-        }
-    }
-  else
-    {
-      spin_unlock_wo_note(lock);
-    }
+  DEBUGASSERT(lock);

Review Comment:
   ```suggestion
   ```



##########
sched/mqueue/mq_msgfree.c:
##########
@@ -69,9 +69,9 @@ void nxmq_free_msg(FAR struct mqueue_msg_s *mqmsg)
        * list from interrupt handlers.
        */
 
-      flags = spin_lock_irqsave(NULL);
+      flags = spin_lock_irqsave(&g_msg_lock);

Review Comment:
   ```suggestion
         flags = spin_lock_irqsave(&g_msgfree_lock);
   ```



##########
sched/signal/sig_default.c:
##########
@@ -546,9 +546,9 @@ _sa_handler_t nxsig_default(FAR struct tcb_s *tcb, int 
signo, bool defaction)
        * atomic (but neither is sigaction()).
        */
 
-      flags = spin_lock_irqsave(NULL);
+      flags = spin_lock_irqsave(&group->lock);
       nxsig_delset(&group->tg_sigdefault, signo);
-      spin_unlock_irqrestore(NULL, flags);
+      spin_unlock_irqrestore(&group->lock, flags);

Review Comment:
   ```suggestion
         spin_unlock_irqrestore(&group->tg_siglock, flags);
   ```



##########
sched/clock/clock_gettime.c:
##########
@@ -58,15 +58,15 @@ static clock_t clock_process_runtime(FAR struct tcb_s *tcb)
 
   group = tcb->group;
 
-  flags = spin_lock_irqsave(NULL);
+  flags = spin_lock_irqsave(&group->lock);
   sq_for_every(&group->tg_members, curr)
     {
       tcb = container_of(curr, struct tcb_s, member);
 
       runtime += tcb->run_time;
     }
 
-  spin_unlock_irqrestore(NULL, flags);
+  spin_unlock_irqrestore(&group->lock, flags);

Review Comment:
   ```suggestion
     spin_unlock_irqrestore(&group->tg_members_lock, flags);
   ```



##########
sched/irq/irq_attach.c:
##########
@@ -67,13 +68,13 @@ int irq_to_ndx(int irq)
 {
   DEBUGASSERT(g_irqmap_count < CONFIG_ARCH_NUSER_INTERRUPTS);
 
-  irqstate_t flags = spin_lock_irqsave(NULL);
+  irqstate_t flags = spin_lock_irqsave(&g_irq_attach_lock);

Review Comment:
   atomic



##########
include/nuttx/spinlock.h:
##########
@@ -451,21 +443,8 @@ irqstate_t spin_lock_irqsave_wo_note(FAR volatile 
spinlock_t *lock)
   irqstate_t ret;

Review Comment:
   ```suggestion
     irqstate_t flags;
   ```



##########
include/nuttx/spinlock.h:
##########
@@ -451,21 +443,8 @@ irqstate_t spin_lock_irqsave_wo_note(FAR volatile 
spinlock_t *lock)
   irqstate_t ret;
   ret = up_irq_save();
 
-  if (NULL == lock)
-    {
-      int me = this_cpu();
-      if (0 == g_irq_spin_count[me])
-        {
-          spin_lock_wo_note(&g_irq_spin);
-        }
-
-      g_irq_spin_count[me]++;
-      DEBUGASSERT(0 != g_irq_spin_count[me]);
-    }
-  else
-    {
-      spin_lock_wo_note(lock);
-    }
+  DEBUGASSERT(lock);

Review Comment:
   ```suggestion
   ```



##########
sched/timer/timer_create.c:
##########
@@ -63,10 +63,10 @@ static FAR struct posix_timer_s *timer_allocate(void)
   /* Try to get a preallocated timer from the free list */
 
 #if CONFIG_PREALLOC_TIMERS > 0
-  flags = spin_lock_irqsave(NULL);
+  flags = spin_lock_irqsave(&g_timers_lock);
   ret   = (FAR struct posix_timer_s *)
     sq_remfirst((FAR sq_queue_t *)&g_freetimers);
-  spin_unlock_irqrestore(NULL, flags);
+  spin_unlock_irqrestore(&g_timers_lock, flags);

Review Comment:
   ```suggestion
     spin_unlock_irqrestore(&g_freetimers_lock, flags);
   ```



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: commits-unsubscr...@nuttx.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to