Loading drivers/iommu/amd_iommu.c +6 −11 Original line number Original line Diff line number Diff line Loading @@ -3947,11 +3947,6 @@ static int irq_remapping_alloc(struct irq_domain *domain, unsigned int virq, if (ret < 0) if (ret < 0) return ret; return ret; ret = -ENOMEM; data = kzalloc(sizeof(*data), GFP_KERNEL); if (!data) goto out_free_parent; if (info->type == X86_IRQ_ALLOC_TYPE_IOAPIC) { if (info->type == X86_IRQ_ALLOC_TYPE_IOAPIC) { if (get_irq_table(devid, true)) if (get_irq_table(devid, true)) index = info->ioapic_pin; index = info->ioapic_pin; Loading @@ -3962,7 +3957,6 @@ static int irq_remapping_alloc(struct irq_domain *domain, unsigned int virq, } } if (index < 0) { if (index < 0) { pr_warn("Failed to allocate IRTE\n"); pr_warn("Failed to allocate IRTE\n"); kfree(data); goto out_free_parent; goto out_free_parent; } } Loading @@ -3974,17 +3968,18 @@ static int irq_remapping_alloc(struct irq_domain *domain, unsigned int virq, goto out_free_data; goto out_free_data; } } if (i > 0) { ret = -ENOMEM; data = kzalloc(sizeof(*data), GFP_KERNEL); data = kzalloc(sizeof(*data), GFP_KERNEL); if (!data) if (!data) goto out_free_data; goto out_free_data; } irq_data->hwirq = (devid << 16) + i; irq_data->hwirq = (devid << 16) + i; irq_data->chip_data = data; irq_data->chip_data = data; irq_data->chip = &amd_ir_chip; irq_data->chip = &amd_ir_chip; irq_remapping_prepare_irte(data, cfg, info, devid, index, i); irq_remapping_prepare_irte(data, cfg, info, devid, index, i); irq_set_status_flags(virq + i, IRQ_MOVE_PCNTXT); irq_set_status_flags(virq + i, IRQ_MOVE_PCNTXT); } } return 0; return 0; out_free_data: out_free_data: Loading Loading
drivers/iommu/amd_iommu.c +6 −11 Original line number Original line Diff line number Diff line Loading @@ -3947,11 +3947,6 @@ static int irq_remapping_alloc(struct irq_domain *domain, unsigned int virq, if (ret < 0) if (ret < 0) return ret; return ret; ret = -ENOMEM; data = kzalloc(sizeof(*data), GFP_KERNEL); if (!data) goto out_free_parent; if (info->type == X86_IRQ_ALLOC_TYPE_IOAPIC) { if (info->type == X86_IRQ_ALLOC_TYPE_IOAPIC) { if (get_irq_table(devid, true)) if (get_irq_table(devid, true)) index = info->ioapic_pin; index = info->ioapic_pin; Loading @@ -3962,7 +3957,6 @@ static int irq_remapping_alloc(struct irq_domain *domain, unsigned int virq, } } if (index < 0) { if (index < 0) { pr_warn("Failed to allocate IRTE\n"); pr_warn("Failed to allocate IRTE\n"); kfree(data); goto out_free_parent; goto out_free_parent; } } Loading @@ -3974,17 +3968,18 @@ static int irq_remapping_alloc(struct irq_domain *domain, unsigned int virq, goto out_free_data; goto out_free_data; } } if (i > 0) { ret = -ENOMEM; data = kzalloc(sizeof(*data), GFP_KERNEL); data = kzalloc(sizeof(*data), GFP_KERNEL); if (!data) if (!data) goto out_free_data; goto out_free_data; } irq_data->hwirq = (devid << 16) + i; irq_data->hwirq = (devid << 16) + i; irq_data->chip_data = data; irq_data->chip_data = data; irq_data->chip = &amd_ir_chip; irq_data->chip = &amd_ir_chip; irq_remapping_prepare_irte(data, cfg, info, devid, index, i); irq_remapping_prepare_irte(data, cfg, info, devid, index, i); irq_set_status_flags(virq + i, IRQ_MOVE_PCNTXT); irq_set_status_flags(virq + i, IRQ_MOVE_PCNTXT); } } return 0; return 0; out_free_data: out_free_data: Loading