From: Suravee Suthikulanit <suravee.suthikulpanit@amd.com>
To: Arnd Bergmann <arnd@arndb.de>, Robin Murphy <robin.murphy@arm.com>
Cc: bhelgaas@google.com, rjw@rjwysocki.net, lenb@kernel.org,
catalin.marinas@arm.com, will.deacon@arm.com,
thomas.lendacky@amd.com, herbert@gondor.apana.org.au,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org, hanjun.guo@linaro.org,
davem@davemloft.net, linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH V5 8/9] PCI: OF: Move of_pci_dma_configure() to pci_dma_configure()
Date: Wed, 18 Nov 2015 10:54:59 -0600 [thread overview]
Message-ID: <564CAD63.3020306@amd.com> (raw)
In-Reply-To: <3822315.uJPjk3L2zB@wuerfel>
Hi All,
On 11/18/2015 6:41 AM, Arnd Bergmann wrote:
> On Wednesday 18 November 2015 12:00:32 Robin Murphy wrote:
>> On 17/11/15 15:00, Robin Murphy wrote:
>>> On 28/10/15 22:50, Suravee Suthikulpanit wrote:
>>>> Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
>>>> Acked-by: Rob Herring <robh+dt@kernel.org>
>>>> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>> CC: Rafael J. Wysocki <rjw@rjwysocki.net>
>> [...]
>>>> +/**
>>>> + * pci_dma_configure - Setup DMA configuration
>>>> + * @dev: ptr to pci_dev struct of the PCI device
>>>> + *
>>>> + * Function to update PCI devices's DMA configuration using the same
>>>> + * info from the OF node of host bridge's parent (if any).
>>>> + */
>>>> +static void pci_dma_configure(struct pci_dev *dev)
>>>> +{
>>>> + struct device *bridge = pci_get_host_bridge_device(dev);
>>>> +
>>>> + if (IS_ENABLED(CONFIG_OF) && dev->dev.of_node) {
>>>
>>> Previously I was seeing of_dma_configure, and thus of_iommu_configure,
>>> called for every PCI device on Juno. The check above now prevents this
>>> happening, since the PCI devices are probed directly from the bus and
>>> don't have OF nodes of their own. They now get left in some
>>> half-configured state where arch_setup_dma_ops isn't called either.
>>
>> Just to follow up on that, Arnd's patch to tidy up dma_get_ops (now
>> queued[1]) makes this even worse, since preventing arch_setup_dma_ops
>> being called means the PCI devices now get the dummy DMA ops which leave
>> the drivers failing to probe at all, IOMMU hacks or not
>
> Ok, glad we found that with my patch then. We really have to
> configure the DMA (offset/size/coherency/iommu) for all devices that might
> be masters, otherwise things can randomly go wrong.
>
> ARnd
Robin is correct. Thanks for catching the bug. Rafael, do you want me to
submit just the fixed-up patch on top of what we had earlier. Or do you
want a new revision (V6)?
Thanks,
Suravee
WARNING: multiple messages have this Message-ID (diff)
From: Suravee Suthikulanit <suravee.suthikulpanit@amd.com>
To: Arnd Bergmann <arnd@arndb.de>, Robin Murphy <robin.murphy@arm.com>
Cc: <bhelgaas@google.com>, <rjw@rjwysocki.net>, <lenb@kernel.org>,
<catalin.marinas@arm.com>, <will.deacon@arm.com>,
<thomas.lendacky@amd.com>, <herbert@gondor.apana.org.au>,
<linux-pci@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<linux-acpi@vger.kernel.org>, <hanjun.guo@linaro.org>,
<davem@davemloft.net>, <linux-arm-kernel@lists.infradead.org>
Subject: Re: [PATCH V5 8/9] PCI: OF: Move of_pci_dma_configure() to pci_dma_configure()
Date: Wed, 18 Nov 2015 10:54:59 -0600 [thread overview]
Message-ID: <564CAD63.3020306@amd.com> (raw)
In-Reply-To: <3822315.uJPjk3L2zB@wuerfel>
Hi All,
On 11/18/2015 6:41 AM, Arnd Bergmann wrote:
> On Wednesday 18 November 2015 12:00:32 Robin Murphy wrote:
>> On 17/11/15 15:00, Robin Murphy wrote:
>>> On 28/10/15 22:50, Suravee Suthikulpanit wrote:
>>>> Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
>>>> Acked-by: Rob Herring <robh+dt@kernel.org>
>>>> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>> CC: Rafael J. Wysocki <rjw@rjwysocki.net>
>> [...]
>>>> +/**
>>>> + * pci_dma_configure - Setup DMA configuration
>>>> + * @dev: ptr to pci_dev struct of the PCI device
>>>> + *
>>>> + * Function to update PCI devices's DMA configuration using the same
>>>> + * info from the OF node of host bridge's parent (if any).
>>>> + */
>>>> +static void pci_dma_configure(struct pci_dev *dev)
>>>> +{
>>>> + struct device *bridge = pci_get_host_bridge_device(dev);
>>>> +
>>>> + if (IS_ENABLED(CONFIG_OF) && dev->dev.of_node) {
>>>
>>> Previously I was seeing of_dma_configure, and thus of_iommu_configure,
>>> called for every PCI device on Juno. The check above now prevents this
>>> happening, since the PCI devices are probed directly from the bus and
>>> don't have OF nodes of their own. They now get left in some
>>> half-configured state where arch_setup_dma_ops isn't called either.
>>
>> Just to follow up on that, Arnd's patch to tidy up dma_get_ops (now
>> queued[1]) makes this even worse, since preventing arch_setup_dma_ops
>> being called means the PCI devices now get the dummy DMA ops which leave
>> the drivers failing to probe at all, IOMMU hacks or not
>
> Ok, glad we found that with my patch then. We really have to
> configure the DMA (offset/size/coherency/iommu) for all devices that might
> be masters, otherwise things can randomly go wrong.
>
> ARnd
Robin is correct. Thanks for catching the bug. Rafael, do you want me to
submit just the fixed-up patch on top of what we had earlier. Or do you
want a new revision (V6)?
Thanks,
Suravee
WARNING: multiple messages have this Message-ID (diff)
From: suravee.suthikulpanit@amd.com (Suravee Suthikulanit)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH V5 8/9] PCI: OF: Move of_pci_dma_configure() to pci_dma_configure()
Date: Wed, 18 Nov 2015 10:54:59 -0600 [thread overview]
Message-ID: <564CAD63.3020306@amd.com> (raw)
In-Reply-To: <3822315.uJPjk3L2zB@wuerfel>
Hi All,
On 11/18/2015 6:41 AM, Arnd Bergmann wrote:
> On Wednesday 18 November 2015 12:00:32 Robin Murphy wrote:
>> On 17/11/15 15:00, Robin Murphy wrote:
>>> On 28/10/15 22:50, Suravee Suthikulpanit wrote:
>>>> Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
>>>> Acked-by: Rob Herring <robh+dt@kernel.org>
>>>> Acked-by: Bjorn Helgaas <bhelgaas@google.com>
>>>> Reviewed-by: Hanjun Guo <hanjun.guo@linaro.org>
>>>> CC: Rafael J. Wysocki <rjw@rjwysocki.net>
>> [...]
>>>> +/**
>>>> + * pci_dma_configure - Setup DMA configuration
>>>> + * @dev: ptr to pci_dev struct of the PCI device
>>>> + *
>>>> + * Function to update PCI devices's DMA configuration using the same
>>>> + * info from the OF node of host bridge's parent (if any).
>>>> + */
>>>> +static void pci_dma_configure(struct pci_dev *dev)
>>>> +{
>>>> + struct device *bridge = pci_get_host_bridge_device(dev);
>>>> +
>>>> + if (IS_ENABLED(CONFIG_OF) && dev->dev.of_node) {
>>>
>>> Previously I was seeing of_dma_configure, and thus of_iommu_configure,
>>> called for every PCI device on Juno. The check above now prevents this
>>> happening, since the PCI devices are probed directly from the bus and
>>> don't have OF nodes of their own. They now get left in some
>>> half-configured state where arch_setup_dma_ops isn't called either.
>>
>> Just to follow up on that, Arnd's patch to tidy up dma_get_ops (now
>> queued[1]) makes this even worse, since preventing arch_setup_dma_ops
>> being called means the PCI devices now get the dummy DMA ops which leave
>> the drivers failing to probe at all, IOMMU hacks or not
>
> Ok, glad we found that with my patch then. We really have to
> configure the DMA (offset/size/coherency/iommu) for all devices that might
> be masters, otherwise things can randomly go wrong.
>
> ARnd
Robin is correct. Thanks for catching the bug. Rafael, do you want me to
submit just the fixed-up patch on top of what we had earlier. Or do you
want a new revision (V6)?
Thanks,
Suravee
next prev parent reply other threads:[~2015-11-18 16:55 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-28 22:50 [PATCH V5 0/9] PCI: ACPI: Setting up DMA coherency for PCI device from _CCA attribute Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` [PATCH V5 1/9] ACPI: Honor ACPI _CCA attribute setting Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` [PATCH V5 2/9] device property: Introducing enum dev_dma_attr Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` [PATCH V5 3/9] ACPI: Adding DMA Attribute APIs for ACPI Device Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` [PATCH V5 4/9] device property: Adding DMA Attribute APIs for Generic Devices Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` [PATCH V5 5/9] device property: ACPI: Make use of the new DMA Attribute APIs Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` [PATCH V5 6/9] device property: ACPI: Remove unused DMA APIs Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` [PATCH V5 7/9] of/pci: Fix pci_get_host_bridge_device leak Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` [PATCH V5 8/9] PCI: OF: Move of_pci_dma_configure() to pci_dma_configure() Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-11-17 15:00 ` Robin Murphy
2015-11-17 15:00 ` Robin Murphy
2015-11-18 12:00 ` Robin Murphy
2015-11-18 12:00 ` Robin Murphy
2015-11-18 12:41 ` Arnd Bergmann
2015-11-18 12:41 ` Arnd Bergmann
2015-11-18 12:41 ` Arnd Bergmann
2015-11-18 15:10 ` Suravee Suthikulanit
2015-11-18 15:10 ` Suravee Suthikulanit
2015-11-18 15:10 ` Suravee Suthikulanit
2015-11-18 16:54 ` Suravee Suthikulanit [this message]
2015-11-18 16:54 ` Suravee Suthikulanit
2015-11-18 16:54 ` Suravee Suthikulanit
2015-11-18 21:24 ` Rafael J. Wysocki
2015-11-18 21:24 ` Rafael J. Wysocki
2015-10-28 22:50 ` [PATCH V5 9/9] PCI: ACPI: Add support for PCI device DMA coherency Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-28 22:50 ` Suravee Suthikulpanit
2015-10-29 6:35 ` [PATCH V5 0/9] PCI: ACPI: Setting up DMA coherency for PCI device from _CCA attribute Hanjun Guo
2015-10-29 6:35 ` Hanjun Guo
2015-10-29 6:35 ` Hanjun Guo
2015-11-02 1:01 ` Rafael J. Wysocki
2015-11-02 1:01 ` Rafael J. Wysocki
2015-11-02 15:52 ` Suravee Suthikulanit
2015-11-02 15:52 ` Suravee Suthikulanit
2015-11-02 15:52 ` Suravee Suthikulanit
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=564CAD63.3020306@amd.com \
--to=suravee.suthikulpanit@amd.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=catalin.marinas@arm.com \
--cc=davem@davemloft.net \
--cc=hanjun.guo@linaro.org \
--cc=herbert@gondor.apana.org.au \
--cc=lenb@kernel.org \
--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=rjw@rjwysocki.net \
--cc=robin.murphy@arm.com \
--cc=thomas.lendacky@amd.com \
--cc=will.deacon@arm.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.