Browse Source

[FIXUP/PIC] pirq's child handler should lock less

When call the child handler, the PIC ops needn't
lock again.
Critical zone protection by PIC implementers.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
GuEe-GUI 10 months ago
parent
commit
04cdbc647c
1 changed files with 8 additions and 2 deletions
  1. 8 2
      components/drivers/pic/pic.c

+ 8 - 2
components/drivers/pic/pic.c

@@ -548,11 +548,17 @@ rt_err_t rt_pic_handle_isr(struct rt_pic_irq *pirq)
 
         rt_list_for_each_entry(child, &pirq->children_nodes, list)
         {
-            rt_pic_irq_ack(child->irq);
+            if (child->pic->ops->irq_ack)
+            {
+                child->pic->ops->irq_ack(child);
+            }
 
             err = rt_pic_handle_isr(child);
 
-            rt_pic_irq_eoi(child->irq);
+            if (child->pic->ops->irq_eoi)
+            {
+                child->pic->ops->irq_eoi(child);
+            }
         }
     }