diff --git a/hif/src/snoc/if_ahb.c b/hif/src/snoc/if_ahb.c index b508e5fee08a..4ff662e59a86 100644 --- a/hif/src/snoc/if_ahb.c +++ b/hif/src/snoc/if_ahb.c @@ -293,6 +293,7 @@ int hif_ahb_configure_grp_irq(struct hif_softc *scn, hif_ext_group->irq_disable = &hif_ahb_exec_grp_irq_disable; hif_ext_group->work_complete = &hif_dummy_grp_done; + qdf_spin_lock_irqsave(&hif_ext_group->irq_lock); hif_ext_group->irq_requested = true; for (j = 0; j < hif_ext_group->numirq; j++) { @@ -315,6 +316,7 @@ int hif_ahb_configure_grp_irq(struct hif_softc *scn, } end: + qdf_spin_unlock_irqrestore(&hif_ext_group->irq_lock); return ret; } @@ -329,6 +331,7 @@ void hif_ahb_deconfigure_grp_irq(struct hif_softc *scn) for (i = 0; i < hif_state->hif_num_extgroup; i++) { hif_ext_group = hif_state->hif_ext_group[i]; if (hif_ext_group->irq_requested == true) { + qdf_spin_lock_irqsave(&hif_ext_group->irq_lock); hif_ext_group->irq_requested = false; for (j = 0; j < hif_ext_group->numirq; j++) { irq = hif_ext_group->os_irq[j]; @@ -336,6 +339,7 @@ void hif_ahb_deconfigure_grp_irq(struct hif_softc *scn) IRQ_DISABLE_UNLAZY); free_irq(irq, hif_ext_group); } + qdf_spin_unlock_irqrestore(&hif_ext_group->irq_lock); } } }