Loading drivers/iommu/amd_iommu.c +26 −0 Original line number Diff line number Diff line Loading @@ -4200,4 +4200,30 @@ static int msi_setup_irq(struct pci_dev *pdev, unsigned int irq, return 0; } static int setup_hpet_msi(unsigned int irq, unsigned int id) { struct irq_2_iommu *irte_info; struct irq_cfg *cfg; int index, devid; cfg = irq_get_chip_data(irq); if (!cfg) return -EINVAL; irte_info = &cfg->irq_2_iommu; devid = get_hpet_devid(id); if (devid < 0) return devid; index = alloc_irq_index(cfg, devid, 1); if (index < 0) return index; irte_info->sub_handle = devid; irte_info->irte_index = index; irte_info->iommu = (void *)cfg; return 0; } #endif Loading
drivers/iommu/amd_iommu.c +26 −0 Original line number Diff line number Diff line Loading @@ -4200,4 +4200,30 @@ static int msi_setup_irq(struct pci_dev *pdev, unsigned int irq, return 0; } static int setup_hpet_msi(unsigned int irq, unsigned int id) { struct irq_2_iommu *irte_info; struct irq_cfg *cfg; int index, devid; cfg = irq_get_chip_data(irq); if (!cfg) return -EINVAL; irte_info = &cfg->irq_2_iommu; devid = get_hpet_devid(id); if (devid < 0) return devid; index = alloc_irq_index(cfg, devid, 1); if (index < 0) return index; irte_info->sub_handle = devid; irte_info->irte_index = index; irte_info->iommu = (void *)cfg; return 0; } #endif