[DM/FIXUP] Fixup PCI MSI global irq map

Don't use `irq` as a var when clear MSI global
irq map, the irq which alloc before will rewrite.

Signed-off-by: GuEe-GUI <2991707448@qq.com>
This commit is contained in:
GuEe-GUI 2024-11-18 17:46:18 +08:00 committed by Rbb666
parent 5dda65c21b
commit 34cf382c8b
1 changed files with 4 additions and 4 deletions

View File

@ -34,7 +34,7 @@ rt_err_t rt_pci_msi_setup_irqs(struct rt_pci_device *pdev, int nvec, int type)
if (type == PCIY_MSI)
{
int last_irq = -1;
int last_irq = -1, irq_idx;
rt_size_t irq_nr;
desc = rt_pci_msi_first_desc(pdev);
@ -74,12 +74,12 @@ rt_err_t rt_pci_msi_setup_irqs(struct rt_pci_device *pdev, int nvec, int type)
desc->irq = irq - irq_nr;
}
rt_bitmap_for_each_set_bit(msi_irq_map, irq, MAX_HANDLERS)
rt_bitmap_for_each_set_bit(msi_irq_map, irq_idx, MAX_HANDLERS)
{
msi_pic->ops->irq_free_msi(msi_pic, irq);
msi_pic->ops->irq_free_msi(msi_pic, irq_idx);
/* Free bit so the next user doesn't need to bzero */
rt_bitmap_clear_bit(msi_irq_map, irq);
rt_bitmap_clear_bit(msi_irq_map, irq_idx);
}
rt_hw_spin_unlock(&msi_irq_map_lock.lock);