linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Gordeev <agordeev@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: x86@kernel.org, linux-pci@vger.kernel.org,
	linux-ide@vger.kernel.org, Tejun Heo <tj@kernel.org>,
	Ingo Molnar <mingo@kernel.org>, Joerg Roedel <joro@8bytes.org>,
	Jan Beulich <JBeulich@suse.com>,
	Bjorn Helgaas <bhelgaas@google.com>
Subject: [PATCH v2 3/6] MSI/x86: Support pci_enable_msi_block_part() interface
Date: Thu, 5 Sep 2013 14:53:19 +0200	[thread overview]
Message-ID: <1519938bbcfd083c0e091e5ac69b573c39664e40.1378383792.git.agordeev@redhat.com> (raw)
In-Reply-To: <cover.1378383792.git.agordeev@redhat.com>

This change is a prerequisite for the forthcoming update
of the AHCI device driver to conserve 10/16 MSIs on Intel
chipsets. The update makes use of 'nvec_mme' parameter
for pci_enable_msi_block_part() interface.

Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
---
 drivers/iommu/irq_remapping.c |   12 ++++++------
 1 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c
index 1a220a0..7671da3 100644
--- a/drivers/iommu/irq_remapping.c
+++ b/drivers/iommu/irq_remapping.c
@@ -49,9 +49,9 @@ static void irq_remapping_disable_io_apic(void)
 		disconnect_bsp_APIC(0);
 }
 
-static int do_setup_msi_irqs(struct pci_dev *dev, int nvec)
+static int do_setup_msi_irqs(struct pci_dev *dev, int nvec, int nvec_mme)
 {
-	int node, ret, sub_handle, nvec_pow2, index = 0;
+	int node, ret, sub_handle, index = 0;
 	unsigned int irq;
 	struct msi_desc *msidesc;
 
@@ -60,18 +60,18 @@ static int do_setup_msi_irqs(struct pci_dev *dev, int nvec)
 	WARN_ON(msidesc->irq);
 	WARN_ON(msidesc->msi_attrib.multiple);
 	WARN_ON(msidesc->nvec_used);
+	BUG_ON(!is_power_of_2(nvec_mme));
 
 	node = dev_to_node(&dev->dev);
 	irq = __create_irqs(get_nr_irqs_gsi(), nvec, node);
 	if (irq == 0)
 		return -ENOSPC;
 
-	nvec_pow2 = __roundup_pow_of_two(nvec);
 	msidesc->nvec_used = nvec;
-	msidesc->msi_attrib.multiple = ilog2(nvec_pow2);
+	msidesc->msi_attrib.multiple = ilog2(nvec_mme);
 	for (sub_handle = 0; sub_handle < nvec; sub_handle++) {
 		if (!sub_handle) {
-			index = msi_alloc_remapped_irq(dev, irq, nvec_pow2);
+			index = msi_alloc_remapped_irq(dev, irq, nvec_mme);
 			if (index < 0) {
 				ret = index;
 				goto error;
@@ -145,7 +145,7 @@ static int irq_remapping_setup_msi_irqs(struct pci_dev *dev,
 					int nvec, int nvec_mme, int type)
 {
 	if (type == PCI_CAP_ID_MSI)
-		return do_setup_msi_irqs(dev, nvec);
+		return do_setup_msi_irqs(dev, nvec, nvec_mme);
 	else
 		return do_setup_msix_irqs(dev, nvec);
 }
-- 
1.7.7.6


-- 
Regards,
Alexander Gordeev
agordeev@redhat.com

  parent reply	other threads:[~2013-09-05 12:51 UTC|newest]

Thread overview: 73+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-05 12:51 [PATCH v2 0/6] AHCI: Conserve interrupts with pci_enable_msi_block_part() interface Alexander Gordeev
2013-09-05 12:52 ` [PATCH v2 1/6] PCI/MSI: Introduce " Alexander Gordeev
2013-09-05 12:52 ` [PATCH v2 2/6] PCI/MSI: Factor out pci_get_msi_cap() interface Alexander Gordeev
2013-09-05 13:09   ` Tejun Heo
2013-09-05 15:03     ` Alexander Gordeev
2013-09-05 15:04       ` Tejun Heo
2013-09-05 15:40         ` Alexander Gordeev
2013-09-05 15:44           ` Tejun Heo
2013-09-05 18:54             ` Alexander Gordeev
2013-09-05 20:06               ` Tejun Heo
2013-09-06 16:01                 ` Bjorn Helgaas
2013-09-06 16:06                   ` Tejun Heo
2013-09-06 23:32                     ` Bjorn Helgaas
2013-09-09 15:20                       ` Alexander Gordeev
2013-09-09 15:22                         ` [PATCH 1/9] PCI/MSI/PPC: Fix wrong RTAS error code reporting Alexander Gordeev
2013-09-09 15:22                         ` [PATCH 2/9] PCI/MSI/PPC: Make return values only 0/-errno when MSIs allocated Alexander Gordeev
2013-09-09 15:24                         ` [PATCH 3/9] PCI/MSI/x86: " Alexander Gordeev
2013-09-09 15:24                         ` [PATCH 4/9] PCI/MSI/MIPS: " Alexander Gordeev
2013-09-09 15:25                         ` [PATCH 2/9] PCI/MSI/PPC: Make return values only 0/-errno when MSIs allocated[PATCH 5/9] PCI/MSI/s390: " Alexander Gordeev
2013-09-09 15:38                           ` scrap this one Alexander Gordeev
2013-09-09 15:26                         ` [PATCH 5/9] PCI/MSI/s390: Make return values only 0/-errno when MSIs allocated Alexander Gordeev
2013-09-10 12:42                           ` Sergei Shtylyov
2013-09-10 13:09                             ` Alexander Gordeev
2013-09-09 15:27                         ` [PATCH 6/9] PCI/MSI/s390: Remove superfluous check of MSI type Alexander Gordeev
2013-09-09 15:28                         ` [PATCH 7/9] PCI/MSI/s390: Make return values only 0/-errno when MSIs allocated Alexander Gordeev
2013-09-09 15:29                         ` [PATCH 8/9] PCI/MSI: Fix return value when populate_msi_sysfs() failed Alexander Gordeev
2013-09-09 15:29                         ` [PATCH 9/9] PCI/MSI: Make return values only 0/-errno when MSIs allocated Alexander Gordeev
2013-09-09 15:37                         ` [PATCH v2 2/6] PCI/MSI: Factor out pci_get_msi_cap() interface Tejun Heo
2013-09-09 15:45                           ` Alexander Gordeev
2013-09-16 10:22                         ` Alexander Gordeev
2013-09-17 14:30                           ` Michael Ellerman
2013-09-18  9:48                             ` Alexander Gordeev
2013-09-18 14:22                               ` Tejun Heo
2013-09-18 16:50                                 ` Alexander Gordeev
2013-09-20  8:24                                   ` Alexander Gordeev
2013-09-20 12:27                                     ` Tejun Heo
2013-09-25 18:02                                       ` Bjorn Helgaas
2013-09-25 20:58                                         ` Alexander Gordeev
2013-09-25 21:00                                           ` Tejun Heo
2013-09-26  7:46                                             ` Alexander Gordeev
2013-09-26  8:58                                               ` David Laight
2013-09-26 10:45                                                 ` Alexander Gordeev
2013-09-26 11:34                                                   ` David Laight
2013-09-26 12:13                                                     ` Alexander Gordeev
2013-09-26 13:11                                               ` Tejun Heo
2013-09-26 14:39                                                 ` Alexander Gordeev
2013-09-26 14:42                                                   ` Tejun Heo
2013-10-01  7:19                                                   ` Michael Ellerman
2013-09-20 12:26                                   ` Tejun Heo
2013-10-01  7:26                                     ` Michael Ellerman
2013-10-01  7:35                                 ` Michael Ellerman
2013-10-01 11:55                                   ` Tejun Heo
2013-10-02  2:33                                     ` Michael Ellerman
2013-10-02  3:23                                       ` Tejun Heo
2013-09-26 12:32                               ` Mark Lord
2013-09-26 13:03                                 ` Alexander Gordeev
2013-10-02  2:46                                   ` Mark Lord
2013-10-02  7:26                                     ` Alexander Gordeev
2013-12-18 18:26                                 ` Bjorn Helgaas
2013-10-01  7:51                               ` Michael Ellerman
2013-10-01 10:35                                 ` Alexander Gordeev
2013-10-02  2:43                                   ` Michael Ellerman
2013-10-02  7:10                                     ` Alexander Gordeev
2013-09-06 13:17           ` Alexander Gordeev
2013-09-05 12:53 ` Alexander Gordeev [this message]
2013-09-05 12:53 ` [PATCH v2 4/6] AHCI: Conserve interrupts with pci_enable_msi_block_part() interface Alexander Gordeev
2013-09-05 13:10   ` Tejun Heo
2013-09-05 15:23     ` Alexander Gordeev
2013-09-05 12:54 ` [PATCH v2 5/6] AHCI: Check MRSM bit when multiple MSIs enabled Alexander Gordeev
2013-09-05 13:11   ` Tejun Heo
2013-09-05 15:25     ` Alexander Gordeev
2013-09-05 14:32   ` Sergei Shtylyov
2013-09-05 12:54 ` [PATCH v2 6/6] PCI/MSI: Get rid of pci_enable_msi_block_auto() interface Alexander Gordeev

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=1519938bbcfd083c0e091e5ac69b573c39664e40.1378383792.git.agordeev@redhat.com \
    --to=agordeev@redhat.com \
    --cc=JBeulich@suse.com \
    --cc=bhelgaas@google.com \
    --cc=joro@8bytes.org \
    --cc=linux-ide@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=tj@kernel.org \
    --cc=x86@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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).