Merge pull request #368 from xiulipan/mirqlistfix

interrupt: fix unsafe list del
This commit is contained in:
Liam Girdwood 2018-09-13 16:08:01 +02:00 committed by GitHub
commit 96edbbb99c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 2 additions and 1 deletions

View File

@ -89,12 +89,13 @@ static void irq_unregister_child(struct irq_desc *parent, int irq)
spin_lock(&parent->lock);
struct irq_desc *child;
struct list_item *clist;
struct list_item *tlist;
/* does child already exist ? */
if (list_is_empty(&parent->child[SOF_IRQ_BIT(irq)]))
goto finish;
list_for_item(clist, &parent->child[SOF_IRQ_BIT(irq)]) {
list_for_item_safe(clist, tlist, &parent->child[SOF_IRQ_BIT(irq)]) {
child = container_of(clist, struct irq_desc, irq_list);
if (SOF_IRQ_ID(irq) == child->id) {