Merge branch 'i2c/for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa...
[firefly-linux-kernel-4.4.55.git] / drivers / iommu / dmar.c
index 39f8b717fe8482f6e757bc7f9064187923b90cca..9a4f05e5b23fa480e308d0b44373e6599ad82982 100644 (file)
@@ -994,7 +994,7 @@ static void free_iommu(struct intel_iommu *iommu)
        if (iommu->irq) {
                free_irq(iommu->irq, iommu);
                irq_set_handler_data(iommu->irq, NULL);
-               destroy_irq(iommu->irq);
+               dmar_free_hwirq(iommu->irq);
        }
 
        if (iommu->qi) {
@@ -1550,8 +1550,8 @@ int dmar_set_interrupt(struct intel_iommu *iommu)
        if (iommu->irq)
                return 0;
 
-       irq = create_irq();
-       if (!irq) {
+       irq = dmar_alloc_hwirq();
+       if (irq <= 0) {
                pr_err("IOMMU: no free vectors\n");
                return -EINVAL;
        }
@@ -1563,7 +1563,7 @@ int dmar_set_interrupt(struct intel_iommu *iommu)
        if (ret) {
                irq_set_handler_data(irq, NULL);
                iommu->irq = 0;
-               destroy_irq(irq);
+               dmar_free_hwirq(irq);
                return ret;
        }