From: Jiang Liu <jiang.liu@linux.intel.com> To: Benjamin Herrenschmidt <benh@kernel.crashing.org>, Thomas Gleixner <tglx@linutronix.de>, Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>, "Rafael J. Wysocki" <rjw@rjwysocki.net>, Bjorn Helgaas <bhelgaas@google.com>, Randy Dunlap <rdunlap@infradead.org>, Yinghai Lu <yinghai@kernel.org>, Borislav Petkov <bp@alien8.de>, Grant Likely <grant.likely@linaro.org>, Marc Zyngier <marc.zyngier@arm.com> Cc: Jiang Liu <jiang.liu@linux.intel.com>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Andrew Morton <akpm@linux-foundation.org>, Tony Luck <tony.luck@intel.com>, Joerg Roedel <joro@8bytes.org>, Greg Kroah-Hartman <gregkh@linuxfoundation.org>, x86@kernel.org, linux-kernel@vger.kernel.org, linux-pci@vger.kernel.org, linux-acpi@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [RFT v2 18/24] iommu/amd: Clean up unused MSI related code Date: Fri, 26 Sep 2014 22:02:19 +0800 [thread overview] Message-ID: <1411740145-30626-19-git-send-email-jiang.liu@linux.intel.com> (raw) In-Reply-To: <1411740145-30626-1-git-send-email-jiang.liu@linux.intel.com> Now MSI interrupt has been converted to new hierarchy irqdomain interfaces, so kill legacy MSI related code. Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> --- drivers/iommu/amd_iommu.c | 115 +-------------------------------------------- 1 file changed, 2 insertions(+), 113 deletions(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index d2b9b5e226ae..f0695e3e2af6 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -3940,8 +3940,7 @@ out_unlock: return table; } -static int alloc_irq_index(struct irq_cfg *cfg, struct irq_2_irte *irte_info, - u16 devid, int count) +static int alloc_irq_index(u16 devid, int count) { struct irq_remap_table *table; unsigned long flags; @@ -3967,11 +3966,6 @@ static int alloc_irq_index(struct irq_cfg *cfg, struct irq_2_irte *irte_info, table->table[index - c + 1] = IRTE_ALLOCATED; index -= count - 1; - - cfg->remapped = 1; - irte_info->devid = devid; - irte_info->index = index; - goto out; } } @@ -4171,106 +4165,6 @@ static int free_irq(int irq) return 0; } -static void compose_msi_msg(struct pci_dev *pdev, - unsigned int irq, unsigned int dest, - struct msi_msg *msg, u8 hpet_id) -{ - struct irq_2_irte *irte_info; - struct irq_cfg *cfg; - union irte irte; - - cfg = irq_cfg(irq); - if (!cfg) - return; - - irte_info = &cfg->irq_2_irte; - - irte.val = 0; - irte.fields.vector = cfg->vector; - irte.fields.int_type = apic->irq_delivery_mode; - irte.fields.destination = dest; - irte.fields.dm = apic->irq_dest_mode; - irte.fields.valid = 1; - - modify_irte(irte_info->devid, irte_info->index, irte); - - msg->address_hi = MSI_ADDR_BASE_HI; - msg->address_lo = MSI_ADDR_BASE_LO; - msg->data = irte_info->index; -} - -static int msi_alloc_irq(struct pci_dev *pdev, int irq, int nvec) -{ - struct irq_cfg *cfg; - int index; - u16 devid; - - if (!pdev) - return -EINVAL; - - cfg = irq_cfg(irq); - if (!cfg) - return -EINVAL; - - devid = get_device_id(&pdev->dev); - index = alloc_irq_index(cfg, &cfg->irq_2_irte, devid, nvec); - - return index < 0 ? MAX_IRQS_PER_TABLE : index; -} - -static int msi_setup_irq(struct pci_dev *pdev, unsigned int irq, - int index, int offset) -{ - struct irq_2_irte *irte_info; - struct irq_cfg *cfg; - u16 devid; - - if (!pdev) - return -EINVAL; - - cfg = irq_cfg(irq); - if (!cfg) - return -EINVAL; - - if (index >= MAX_IRQS_PER_TABLE) - return 0; - - devid = get_device_id(&pdev->dev); - irte_info = &cfg->irq_2_irte; - - cfg->remapped = 1; - irte_info->devid = devid; - irte_info->index = index + offset; - - return 0; -} - -static int setup_hpet_msi(unsigned int irq, unsigned int id) -{ - struct irq_2_irte *irte_info; - struct irq_cfg *cfg; - int index, devid; - - cfg = irq_cfg(irq); - if (!cfg) - return -EINVAL; - - irte_info = &cfg->irq_2_irte; - devid = get_hpet_devid(id); - if (devid < 0) - return devid; - - index = alloc_irq_index(cfg, &cfg->irq_2_irte, devid, 1); - if (index < 0) - return index; - - cfg->remapped = 1; - irte_info->devid = devid; - irte_info->index = index; - - return 0; -} - static int get_devid(struct irq_alloc_info *info) { int devid = -1; @@ -4366,10 +4260,6 @@ struct irq_remap_ops amd_iommu_irq_ops = { .setup_ioapic_entry = setup_ioapic_entry, .set_affinity = set_affinity, .free_irq = free_irq, - .compose_msi_msg = compose_msi_msg, - .msi_alloc_irq = msi_alloc_irq, - .msi_setup_irq = msi_setup_irq, - .setup_hpet_msi = setup_hpet_msi, .get_ir_irq_domain = get_ir_irq_domain, .get_irq_domain = get_irq_domain, .get_ioapic_entry = get_ioapic_entry, @@ -4460,8 +4350,7 @@ static int irq_remapping_alloc(struct irq_domain *domain, unsigned int virq, else ret = -ENOMEM; } else { - cfg = irq_cfg(virq); - index = alloc_irq_index(cfg, &data->irq_2_irte, devid, nr_irqs); + index = alloc_irq_index(devid, nr_irqs); } if (index < 0) { pr_warn("Failed to allocate IRTE\n"); -- 1.7.10.4
WARNING: multiple messages have this Message-ID (diff)
From: jiang.liu@linux.intel.com (Jiang Liu) To: linux-arm-kernel@lists.infradead.org Subject: [RFT v2 18/24] iommu/amd: Clean up unused MSI related code Date: Fri, 26 Sep 2014 22:02:19 +0800 [thread overview] Message-ID: <1411740145-30626-19-git-send-email-jiang.liu@linux.intel.com> (raw) In-Reply-To: <1411740145-30626-1-git-send-email-jiang.liu@linux.intel.com> Now MSI interrupt has been converted to new hierarchy irqdomain interfaces, so kill legacy MSI related code. Signed-off-by: Jiang Liu <jiang.liu@linux.intel.com> --- drivers/iommu/amd_iommu.c | 115 +-------------------------------------------- 1 file changed, 2 insertions(+), 113 deletions(-) diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c index d2b9b5e226ae..f0695e3e2af6 100644 --- a/drivers/iommu/amd_iommu.c +++ b/drivers/iommu/amd_iommu.c @@ -3940,8 +3940,7 @@ out_unlock: return table; } -static int alloc_irq_index(struct irq_cfg *cfg, struct irq_2_irte *irte_info, - u16 devid, int count) +static int alloc_irq_index(u16 devid, int count) { struct irq_remap_table *table; unsigned long flags; @@ -3967,11 +3966,6 @@ static int alloc_irq_index(struct irq_cfg *cfg, struct irq_2_irte *irte_info, table->table[index - c + 1] = IRTE_ALLOCATED; index -= count - 1; - - cfg->remapped = 1; - irte_info->devid = devid; - irte_info->index = index; - goto out; } } @@ -4171,106 +4165,6 @@ static int free_irq(int irq) return 0; } -static void compose_msi_msg(struct pci_dev *pdev, - unsigned int irq, unsigned int dest, - struct msi_msg *msg, u8 hpet_id) -{ - struct irq_2_irte *irte_info; - struct irq_cfg *cfg; - union irte irte; - - cfg = irq_cfg(irq); - if (!cfg) - return; - - irte_info = &cfg->irq_2_irte; - - irte.val = 0; - irte.fields.vector = cfg->vector; - irte.fields.int_type = apic->irq_delivery_mode; - irte.fields.destination = dest; - irte.fields.dm = apic->irq_dest_mode; - irte.fields.valid = 1; - - modify_irte(irte_info->devid, irte_info->index, irte); - - msg->address_hi = MSI_ADDR_BASE_HI; - msg->address_lo = MSI_ADDR_BASE_LO; - msg->data = irte_info->index; -} - -static int msi_alloc_irq(struct pci_dev *pdev, int irq, int nvec) -{ - struct irq_cfg *cfg; - int index; - u16 devid; - - if (!pdev) - return -EINVAL; - - cfg = irq_cfg(irq); - if (!cfg) - return -EINVAL; - - devid = get_device_id(&pdev->dev); - index = alloc_irq_index(cfg, &cfg->irq_2_irte, devid, nvec); - - return index < 0 ? MAX_IRQS_PER_TABLE : index; -} - -static int msi_setup_irq(struct pci_dev *pdev, unsigned int irq, - int index, int offset) -{ - struct irq_2_irte *irte_info; - struct irq_cfg *cfg; - u16 devid; - - if (!pdev) - return -EINVAL; - - cfg = irq_cfg(irq); - if (!cfg) - return -EINVAL; - - if (index >= MAX_IRQS_PER_TABLE) - return 0; - - devid = get_device_id(&pdev->dev); - irte_info = &cfg->irq_2_irte; - - cfg->remapped = 1; - irte_info->devid = devid; - irte_info->index = index + offset; - - return 0; -} - -static int setup_hpet_msi(unsigned int irq, unsigned int id) -{ - struct irq_2_irte *irte_info; - struct irq_cfg *cfg; - int index, devid; - - cfg = irq_cfg(irq); - if (!cfg) - return -EINVAL; - - irte_info = &cfg->irq_2_irte; - devid = get_hpet_devid(id); - if (devid < 0) - return devid; - - index = alloc_irq_index(cfg, &cfg->irq_2_irte, devid, 1); - if (index < 0) - return index; - - cfg->remapped = 1; - irte_info->devid = devid; - irte_info->index = index; - - return 0; -} - static int get_devid(struct irq_alloc_info *info) { int devid = -1; @@ -4366,10 +4260,6 @@ struct irq_remap_ops amd_iommu_irq_ops = { .setup_ioapic_entry = setup_ioapic_entry, .set_affinity = set_affinity, .free_irq = free_irq, - .compose_msi_msg = compose_msi_msg, - .msi_alloc_irq = msi_alloc_irq, - .msi_setup_irq = msi_setup_irq, - .setup_hpet_msi = setup_hpet_msi, .get_ir_irq_domain = get_ir_irq_domain, .get_irq_domain = get_irq_domain, .get_ioapic_entry = get_ioapic_entry, @@ -4460,8 +4350,7 @@ static int irq_remapping_alloc(struct irq_domain *domain, unsigned int virq, else ret = -ENOMEM; } else { - cfg = irq_cfg(virq); - index = alloc_irq_index(cfg, &data->irq_2_irte, devid, nr_irqs); + index = alloc_irq_index(devid, nr_irqs); } if (index < 0) { pr_warn("Failed to allocate IRTE\n"); -- 1.7.10.4
next prev parent reply other threads:[~2014-09-26 14:02 UTC|newest] Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top 2014-09-26 14:02 [RFT Part2 v2 00/24] Enable hierarchy irqdomian on x86 platforms Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 01/24] irqdomain: Introduce new interfaces to support hierarchy irqdomains Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-29 12:22 ` Abel 2014-09-29 12:22 ` Abel 2014-09-29 12:22 ` Abel 2014-09-29 15:53 ` Thomas Gleixner 2014-09-29 15:53 ` Thomas Gleixner 2014-09-30 10:56 ` Abel 2014-09-30 10:56 ` Abel 2014-09-30 10:56 ` Abel 2014-09-30 21:49 ` Thomas Gleixner 2014-09-30 21:49 ` Thomas Gleixner 2014-10-07 1:50 ` Jiang Liu 2014-10-07 1:50 ` Jiang Liu 2014-10-07 1:26 ` Jiang Liu 2014-10-07 1:26 ` Jiang Liu 2014-10-01 14:23 ` Joe.C 2014-10-01 14:23 ` Joe.C 2014-10-22 7:24 ` Jiang Liu 2014-10-22 7:24 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 02/24] genirq: Introduce helper functions to support stacked irq_chip Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 03/24] x86, irq: Save destination CPU ID in irq_cfg Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 04/24] x86, irq: Use hierarchy irqdomain to manage CPU interrupt vectors Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 05/24] x86, hpet: Use new irqdomain interfaces to allocate/free IRQ Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 06/24] x86, MSI: " Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 07/24] x86, uv: " Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 08/24] x86, htirq: " Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 09/24] x86, dmar: " Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 10/24] x86: irq_remapping: Introduce new interfaces to support hierarchy irqdomain Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 11/24] iommu/vt-d: Change prototypes to prepare for enabling " Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 12/24] iommu/vt-d: Enhance Intel IR driver to suppport " Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 13/24] iommu/amd: Enhance AMD " Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 14/24] x86, hpet: Enhance HPET IRQ to support " Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 15/24] x86, MSI: Use hierarchy irqdomain to manage MSI interrupts Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 16/24] x86, irq: Directly call native_compose_msi_msg() for DMAR IRQ Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 17/24] iommu/vt-d: Clean up unused MSI related code Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` Jiang Liu [this message] 2014-09-26 14:02 ` [RFT v2 18/24] iommu/amd: " Jiang Liu 2014-09-26 14:02 ` [RFT v2 19/24] x86: irq_remapping: " Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 20/24] x86, irq: Clean up unused MSI related code and interfaces Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 21/24] iommu/vt-d: Refine the interfaces to create IRQ for DMAR unit Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 22/24] x86, irq: Use hierarchy irqdomain to manage DMAR interrupts Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 23/24] x86, htirq: Use hierarchy irqdomain to manage Hypertransport interrupts Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:02 ` [RFT v2 24/24] x86, uv: Use hierarchy irqdomain to manage UV interrupts Jiang Liu 2014-09-26 14:02 ` Jiang Liu 2014-09-26 14:29 ` [RFT Part2 v2 00/24] Enable hierarchy irqdomian on x86 platforms Borislav Petkov 2014-09-26 14:29 ` Borislav Petkov 2014-09-26 16:30 ` Aravind Gopalakrishnan 2014-09-26 16:30 ` Aravind Gopalakrishnan 2014-09-26 16:30 ` Aravind Gopalakrishnan 2014-09-28 11:05 ` Borislav Petkov 2014-09-28 11:05 ` Borislav Petkov 2014-09-28 11:15 ` Jiang Liu 2014-09-28 11:15 ` Jiang Liu
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1411740145-30626-19-git-send-email-jiang.liu@linux.intel.com \ --to=jiang.liu@linux.intel.com \ --cc=akpm@linux-foundation.org \ --cc=benh@kernel.crashing.org \ --cc=bhelgaas@google.com \ --cc=bp@alien8.de \ --cc=grant.likely@linaro.org \ --cc=gregkh@linuxfoundation.org \ --cc=hpa@zytor.com \ --cc=joro@8bytes.org \ --cc=konrad.wilk@oracle.com \ --cc=linux-acpi@vger.kernel.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pci@vger.kernel.org \ --cc=marc.zyngier@arm.com \ --cc=mingo@redhat.com \ --cc=rdunlap@infradead.org \ --cc=rjw@rjwysocki.net \ --cc=tglx@linutronix.de \ --cc=tony.luck@intel.com \ --cc=x86@kernel.org \ --cc=yinghai@kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.