All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jan Beulich" <JBeulich@suse.com>
To: "Bjorn Helgaas" <bhelgaas@google.com>
Cc: "Jeremy Fitzhardinge" <jeremy@goop.org>,
	"Gavin Shan" <shangw@linux.vnet.ibm.com>,
	<xen-devel@lists.xensource.com>,
	"Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>
Subject: Re: [Xen-devel] [PATCH v4 18/22] xen/pci: Pay attention to PCI_MSIX_TABLE_OFFSET
Date: Thu, 25 Apr 2013 10:40:57 +0100	[thread overview]
Message-ID: <5179164902000078000D0A26@nat28.tlf.novell.com> (raw)
In-Reply-To: <CAErSpo6BF0Uvf=7LwYYT2Qn6kf5uk+rVqY-cKOe2qnVwcj4-+w@mail.gmail.com>

>>> On 24.04.13 at 18:34, Bjorn Helgaas <bhelgaas@google.com> wrote:
> On Mon, Apr 22, 2013 at 5:12 PM, Bjorn Helgaas <bhelgaas@google.com> wrote:
>> The MSI-X Table structure may be at a non-zero offset into the
>> device BAR, and we should account for that.

NAK: The base is just being use to pass to the hypervisor, which
then takes care to add the offset. Recent hypervisors will actually
only consume this to issue a warning if not matching what gets
read from the corresponding BAR. Earlier hypervisors used this
instead of reading the BAR.

Jan

>> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
>> CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>> ---
>>  arch/x86/pci/xen.c |    4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
>> index 94e7662..0e8a196 100644
>> --- a/arch/x86/pci/xen.c
>> +++ b/arch/x86/pci/xen.c
>> @@ -300,8 +300,10 @@ static int xen_initdom_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
>>                         pci_read_config_dword(dev, pos + PCI_MSIX_TABLE,
>>                                               &table_offset);
>>                         bir = (u8)(table_offset & PCI_MSIX_FLAGS_BIRMASK);
>> +                       table_offset &= PCI_MSIX_TABLE_OFFSET;
>>
>> -                       map_irq.table_base = pci_resource_start(dev, bir);
>> +                       map_irq.table_base = pci_resource_start(dev, bir) +
>> +                               table_offset;
>>                         map_irq.entry_nr = msidesc->msi_attrib.entry_nr;
>>                 }
>>
>>



WARNING: multiple messages have this Message-ID (diff)
From: "Jan Beulich" <JBeulich@suse.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>,
	Gavin Shan <shangw@linux.vnet.ibm.com>,
	xen-devel@lists.xensource.com,
	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>
Subject: Re: [Xen-devel] [PATCH v4 18/22] xen/pci: Pay attention to PCI_MSIX_TABLE_OFFSET
Date: Thu, 25 Apr 2013 10:40:57 +0100	[thread overview]
Message-ID: <5179164902000078000D0A26@nat28.tlf.novell.com> (raw)
In-Reply-To: <CAErSpo6BF0Uvf=7LwYYT2Qn6kf5uk+rVqY-cKOe2qnVwcj4-+w@mail.gmail.com>

>>> On 24.04.13 at 18:34, Bjorn Helgaas <bhelgaas@google.com> wrote:
> On Mon, Apr 22, 2013 at 5:12 PM, Bjorn Helgaas <bhelgaas@google.com> wrote:
>> The MSI-X Table structure may be at a non-zero offset into the
>> device BAR, and we should account for that.

NAK: The base is just being use to pass to the hypervisor, which
then takes care to add the offset. Recent hypervisors will actually
only consume this to issue a warning if not matching what gets
read from the corresponding BAR. Earlier hypervisors used this
instead of reading the BAR.

Jan

>> Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
>> CC: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>> ---
>>  arch/x86/pci/xen.c |    4 +++-
>>  1 file changed, 3 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
>> index 94e7662..0e8a196 100644
>> --- a/arch/x86/pci/xen.c
>> +++ b/arch/x86/pci/xen.c
>> @@ -300,8 +300,10 @@ static int xen_initdom_setup_msi_irqs(struct pci_dev *dev, int nvec, int type)
>>                         pci_read_config_dword(dev, pos + PCI_MSIX_TABLE,
>>                                               &table_offset);
>>                         bir = (u8)(table_offset & PCI_MSIX_FLAGS_BIRMASK);
>> +                       table_offset &= PCI_MSIX_TABLE_OFFSET;
>>
>> -                       map_irq.table_base = pci_resource_start(dev, bir);
>> +                       map_irq.table_base = pci_resource_start(dev, bir) +
>> +                               table_offset;
>>                         map_irq.entry_nr = msidesc->msi_attrib.entry_nr;
>>                 }
>>
>>

  reply	other threads:[~2013-04-25  9:40 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-04-22 23:10 [PATCH v4 00/22] PCI: Cache MSI/MSI-X capability offsets, other cleanup Bjorn Helgaas
2013-04-22 23:10 ` [PATCH v4 01/22] [SCSI] megaraid_sas: Use correct #define for MSI-X capability Bjorn Helgaas
2013-04-22 23:52   ` Radford, Adam
2013-04-22 23:54   ` Fwd: " Bjorn Helgaas
2013-04-23  0:25     ` adam radford
2013-04-22 23:10 ` [PATCH v4 02/22] PCI: Use u8, not int, for PM capability offset Bjorn Helgaas
2013-04-22 23:32   ` Rafael J. Wysocki
2013-04-22 23:10 ` [PATCH v4 03/22] PCI: Cache MSI/MSI-X capability offsets in struct pci_dev Bjorn Helgaas
2013-04-22 23:10 ` [PATCH v4 04/22] PCI: Remove MSI/MSI-X cap check in pci_msi_check_device() Bjorn Helgaas
2013-04-22 23:10 ` [PATCH v4 05/22] PCI: Use cached MSI cap while enabling MSI interrupts Bjorn Helgaas
2013-04-22 23:10 ` [PATCH v4 06/22] PCI: Use cached MSI-X cap while enabling MSI-X Bjorn Helgaas
2013-04-22 23:11 ` [PATCH v4 07/22] PCI: Clean up MSI/MSI-X capability #defines Bjorn Helgaas
2013-04-22 23:11 ` [PATCH v4 08/22] PCI: Use cached MSI/MSI-X offsets from dev, not from msi_desc Bjorn Helgaas
2013-04-22 23:11 ` [PATCH v4 09/22] PCI: Drop msi_control_reg() macro and use PCI_MSI_FLAGS directly Bjorn Helgaas
2013-04-22 23:11 ` [PATCH v4 10/22] PCI: Drop msi_lower_address_reg() and msi_upper_address_reg() macros Bjorn Helgaas
2013-04-22 23:11 ` [PATCH v4 11/22] PCI: Drop msi_data_reg() macro Bjorn Helgaas
2013-04-22 23:11 ` [PATCH v4 12/22] PCI: Drop is_64bit_address() and is_mask_bit_support() macros Bjorn Helgaas
2013-04-22 23:11 ` [PATCH v4 13/22] PCI: Drop msix_table_offset_reg() and msix_pba_offset_reg() macros Bjorn Helgaas
2013-04-22 23:11 ` [PATCH v4 14/22] PCI: Use msix_table_size() directly, drop multi_msix_capable() Bjorn Helgaas
2013-04-22 23:11 ` [PATCH v4 15/22] PCI: Drop msi_mask_reg() and remove drivers/pci/msi.h Bjorn Helgaas
2013-04-22 23:12 ` [PATCH v4 16/22] PCI: Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK Bjorn Helgaas
2013-04-22 23:12 ` [PATCH v4 17/22] PCI: Remove "extern" from function declarations Bjorn Helgaas
2013-04-22 23:12 ` [PATCH v4 18/22] xen/pci: Pay attention to PCI_MSIX_TABLE_OFFSET Bjorn Helgaas
2013-04-24 16:34   ` Bjorn Helgaas
2013-04-25  9:40     ` Jan Beulich [this message]
2013-04-25  9:40       ` [Xen-devel] " Jan Beulich
2013-04-25 16:42       ` Bjorn Helgaas
2013-04-26  7:16         ` Jan Beulich
2013-04-26  7:16           ` Jan Beulich
2013-04-26 14:50           ` Bjorn Helgaas
2013-04-22 23:12 ` [PATCH v4 19/22] xen/pci: Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK Bjorn Helgaas
2013-04-24 16:35   ` Bjorn Helgaas
2013-04-22 23:12 ` [PATCH v4 20/22] xen/pci: Used cached MSI-X capability offset Bjorn Helgaas
2013-04-24 16:35   ` Bjorn Helgaas
2013-04-22 23:12 ` [PATCH v4 21/22] vfio-pci: Use PCI_MSIX_TABLE_BIR, not PCI_MSIX_FLAGS_BIRMASK Bjorn Helgaas
2013-04-23 20:12   ` Alex Williamson
2013-04-22 23:12 ` [PATCH v4 22/22] vfio-pci: Use cached MSI/MSI-X capabilities Bjorn Helgaas
2013-04-23 20:13   ` Alex Williamson
2013-04-24 17:48 ` [PATCH v4 00/22] PCI: Cache MSI/MSI-X capability offsets, other cleanup Bjorn Helgaas

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=5179164902000078000D0A26@nat28.tlf.novell.com \
    --to=jbeulich@suse.com \
    --cc=bhelgaas@google.com \
    --cc=jeremy@goop.org \
    --cc=konrad.wilk@oracle.com \
    --cc=linux-pci@vger.kernel.org \
    --cc=shangw@linux.vnet.ibm.com \
    --cc=xen-devel@lists.xensource.com \
    /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 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.