[PIC/FIXUP] pirq reinit fail
don't reinit pirq's list if cascade Signed-off-by: GuEe-GUI <2991707448@qq.com>
This commit is contained in:
parent
2a8aba4c8b
commit
584f4b869d
|
@ -177,15 +177,24 @@ static void config_pirq(struct rt_pic *pic, struct rt_pic_irq *pirq, int irq, in
|
|||
{
|
||||
rt_ubase_t level = rt_spin_lock_irqsave(&pirq->rw_lock);
|
||||
|
||||
if (pirq->irq < 0)
|
||||
{
|
||||
rt_list_init(&pirq->list);
|
||||
rt_list_init(&pirq->children_nodes);
|
||||
rt_list_init(&pirq->isr.list);
|
||||
}
|
||||
else if (pirq->pic != pic)
|
||||
{
|
||||
RT_ASSERT(rt_list_isempty(&pirq->list) == RT_TRUE);
|
||||
RT_ASSERT(rt_list_isempty(&pirq->children_nodes) == RT_TRUE);
|
||||
RT_ASSERT(rt_list_isempty(&pirq->isr.list) == RT_TRUE);
|
||||
}
|
||||
|
||||
pirq->irq = irq;
|
||||
pirq->hwirq = hwirq;
|
||||
|
||||
pirq->pic = pic;
|
||||
|
||||
rt_list_init(&pirq->list);
|
||||
rt_list_init(&pirq->children_nodes);
|
||||
rt_list_init(&pirq->isr.list);
|
||||
|
||||
rt_spin_unlock_irqrestore(&pirq->rw_lock, level);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue