qcacmn: Fix kernel panic in hif_ahb_configure_grp_irq

Move qal_vbus_get_irq out of irq locks as it can sleep
and cause kenel panic.

Change-Id: Id00e0cdc978fbd3889a39a48d8b757d8c3e0d754
CRs-Fixed: 2602900
This commit is contained in:
Venkateswara Swamy Bandaru 2020-01-24 16:52:16 +05:30 • committed by nshrivas
commit b3989495c7

View file

@ -313,8 +313,6 @@ int hif_ahb_configure_grp_irq(struct hif_softc *scn,
hif_ext_group->irq_name = &hif_ahb_get_irq_name;
hif_ext_group->work_complete = &hif_dummy_grp_done;
qdf_spin_lock_irqsave(&hif_ext_group->irq_lock);
for (j = 0; j < hif_ext_group->numirq; j++) {
ret = pfrm_get_irq(&pdev->dev, (struct qdf_pfm_hndl *)pdev,
ic_irqname[hif_ext_group->irq[j]],
@ -325,6 +323,13 @@ int hif_ahb_configure_grp_irq(struct hif_softc *scn,
goto end;
}
ic_irqnum[hif_ext_group->irq[j]] = irq;
hif_ext_group->os_irq[j] = irq;
}
qdf_spin_lock_irqsave(&hif_ext_group->irq_lock);
for (j = 0; j < hif_ext_group->numirq; j++) {
irq = hif_ext_group->os_irq[j];
irq_set_status_flags(irq, IRQ_DISABLE_UNLAZY);
ret = pfrm_request_irq(scn->qdf_dev->dev,
irq, hif_ext_group_interrupt_handler,
@ -336,7 +341,6 @@ int hif_ahb_configure_grp_irq(struct hif_softc *scn,
ret = -EFAULT;
goto end;
}
hif_ext_group->os_irq[j] = irq;
}
qdf_spin_unlock_irqrestore(&hif_ext_group->irq_lock);