All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/2] Handle Cavium ThunderX2 PCI topology quirk
@ 2017-04-03 13:15 ` Jayachandran C
  0 siblings, 0 replies; 64+ messages in thread
From: Jayachandran C @ 2017-04-03 13:15 UTC (permalink / raw)
  To: Bjorn Helgaas, linux-pci, Alex Williamson, iommu
  Cc: Jon Masters, Robin Murphy, Jayachandran C, linux-arm-kernel

Hi Bjorn, Alex,

Sending this again (with a trivial fix to author name), please review.
Updated summary below:

Here is v4 of the patchset to handle the PCIe topology quirk of Cavium
ThunderX2 systems (previously known as Broadcom Vulcan).

The earlier discussions on this can be seen at:
http://www.spinics.net/lists/linux-pci/msg51001.html
https://patchwork.ozlabs.org/patch/582633/ and
https://lists.linuxfoundation.org/pipermail/iommu/2016-June/017681.html

The earlier discussion on this patchset ended with a suggestion that it
may be possible to fix up this quirk by handling the issue in the
function argument of pci_for_each_dma_alias(). But at that point we did
not have the codebase to make the changes since the full ACPI and OF code
for SMMU and GIC ITS was not upstream.

Now that the changes are upstream, I tried to fix it in both the SMMU
and the GIC ITS code based on this suggestion, the changes needed are at:
 https://github.com/jchandra-cavm/linux/commits/rid-xlate-fixup

The problems with this approach are:
 - of the 14 uses of pci_for_each_dma_alias in the function in the kernel
   tree, I have to fixup 6 callers (which is all but one ofthe callers
   outside x86)
 - 4 of these can be reasonably handled (please see the github repo above),
   but the calls in drivers/irqchip/irq-gic-v3-its-pci-msi.c and
   drivers/iommu/iommu.c cannot be reasonably fixed up.
 - Even without the 2 above two changes I can get it to work for now.
   But pci_for_each_dma_alias does not work as expected on this platform
   and we have to be aware of that for all future uses of the function.
  
For now, I have ruled out the approach, and I have rebased the earlier
patch on to 4.11-rc and submitting again for review. The changes are:

v3->v4:
 - new address of author

v2>v3:
 - changed device flag name from PCI_DEV_FLAGS_DMA_ALIAS_ROOT to
   PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT
 - updated commit message to make the quirk clearer.

Let me know your comments and suggestions.

Thanks,
JC.


Jayachandran C (2):
  PCI: Add device flag PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT
  PCI: quirks: Fix ThunderX2 dma alias handling

 drivers/pci/quirks.c | 14 ++++++++++++++
 drivers/pci/search.c |  4 ++++
 include/linux/pci.h  |  2 ++
 3 files changed, 20 insertions(+)

-- 
2.7.4


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 64+ messages in thread

end of thread, other threads:[~2017-04-13  6:43 UTC | newest]

Thread overview: 64+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-03 13:15 [PATCH v4 0/2] Handle Cavium ThunderX2 PCI topology quirk Jayachandran C
2017-04-03 13:15 ` Jayachandran C
2017-04-03 13:15 ` Jayachandran C
2017-04-03 13:15 ` [PATCH v4 1/2] PCI: Add device flag PCI_DEV_FLAGS_BRIDGE_XLATE_ROOT Jayachandran C
2017-04-03 13:15   ` Jayachandran C
2017-04-03 13:15   ` Jayachandran C
2017-04-03 14:59   ` Robin Murphy
2017-04-03 14:59     ` Robin Murphy
2017-04-03 14:59     ` Robin Murphy
2017-04-03 13:15 ` [PATCH v4 2/2] PCI: quirks: Fix ThunderX2 dma alias handling Jayachandran C
2017-04-03 13:15   ` Jayachandran C
2017-04-03 13:15   ` Jayachandran C
2017-04-03 15:07   ` Robin Murphy
2017-04-03 15:07     ` Robin Murphy
2017-04-03 15:07     ` Robin Murphy
2017-04-04 11:50     ` Jayachandran C
2017-04-04 11:50       ` Jayachandran C
2017-04-04 11:50       ` Jayachandran C
2017-04-04 14:28       ` Robin Murphy
2017-04-04 14:28         ` Robin Murphy
2017-04-04 14:28         ` Robin Murphy
2017-04-10 11:38         ` Jayachandran C
2017-04-10 11:38           ` Jayachandran C
2017-04-10 11:38           ` Jayachandran C
2017-04-13  6:43         ` Jon Masters
2017-04-13  6:43           ` Jon Masters
2017-04-11  1:28   ` Bjorn Helgaas
2017-04-11  1:28     ` Bjorn Helgaas
2017-04-11  7:10     ` Jayachandran C
2017-04-11  7:10       ` Jayachandran C
2017-04-11  7:10       ` Jayachandran C
2017-04-11 13:41       ` Bjorn Helgaas
2017-04-11 13:41         ` Bjorn Helgaas
2017-04-11 13:41         ` Bjorn Helgaas
2017-04-11 15:27         ` Jayachandran C
2017-04-11 15:27           ` Jayachandran C
2017-04-11 15:27           ` Jayachandran C
2017-04-11 15:43           ` Jon Masters
2017-04-11 15:43             ` Jon Masters
2017-04-12 16:21           ` Bjorn Helgaas
2017-04-12 16:21             ` Bjorn Helgaas
2017-04-12 16:21             ` Bjorn Helgaas
2017-04-12 18:10             ` Jayachandran C
2017-04-12 18:10               ` Jayachandran C
2017-04-12 18:10               ` Jayachandran C
2017-04-12 19:11               ` Bjorn Helgaas
2017-04-12 19:11                 ` Bjorn Helgaas
2017-04-12 19:11                 ` Bjorn Helgaas
2017-04-12 20:41                 ` Jayachandran C
2017-04-12 20:41                   ` Jayachandran C
2017-04-12 20:41                   ` Jayachandran C
2017-04-12 23:18                   ` Bjorn Helgaas
2017-04-12 23:18                     ` Bjorn Helgaas
2017-04-12 23:18                     ` Bjorn Helgaas
2017-04-11 15:34         ` Robin Murphy
2017-04-11 15:34           ` Robin Murphy
2017-04-11 15:34           ` Robin Murphy
2017-04-11 13:44 ` [PATCH v4 0/2] Handle Cavium ThunderX2 PCI topology quirk Bjorn Helgaas
2017-04-11 13:44   ` Bjorn Helgaas
2017-04-11 13:44   ` Bjorn Helgaas
     [not found]   ` <CABhMZUXNhKSQALAHP1CBNfWMuw0J0XQ2rzusP4WR_HHH9ox5Yw@mail.gmail.com>
     [not found]     ` <CABhMZUXh=X5k1DQhUcaXD4t9GWfXms80xWV7sAh0ZXD8YK794g@mail.gmail.com>
2017-04-11 14:23       ` Bjorn Helgaas
2017-04-11 14:23         ` Bjorn Helgaas
2017-04-11 16:01   ` David Daney
2017-04-11 16:01     ` David Daney

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.