Skip to content

Commit b970e80

Browse files
committed
task: clear interrupt earlier
list_item_for_safe is safe for item deletion, but when a new item is appended to the list. It seems the item could not be go through. To fix this limitation, move interrupt clear to make sure every IRQ is handled. Do not try to handle two task with one IRQ handler. Signed-off-by: Pan Xiuli <xiuli.pan@linux.intel.com>
1 parent 3fda772 commit b970e80

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

src/arch/xtensa/task.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,7 @@ static void _irq_task(void *arg)
116116
uint32_t flags;
117117

118118
spin_lock_irq(&irq_task->lock, flags);
119+
interrupt_clear(irq_task->irq);
119120
list_for_item_safe(clist, tlist, &irq_task->list) {
120121

121122
task = container_of(clist, struct task, irq_list);
@@ -130,7 +131,6 @@ static void _irq_task(void *arg)
130131
spin_lock_irq(&irq_task->lock, flags);
131132
}
132133

133-
interrupt_clear(irq_task->irq);
134134

135135
spin_unlock_irq(&irq_task->lock, flags);
136136
}

0 commit comments

Comments
 (0)