[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <decae9e4-3446-2384-4fc5-4982b747ac03@yadro.com>
Date: Tue, 31 Jan 2023 15:29:58 +0300
From: Evgenii Shatokhin <e.shatokhin@...ro.com>
To: Will McVicker <willmcvicker@...gle.com>,
Lorenzo Pieralisi <lpieralisi@...nel.org>
CC: <kernel-team@...roid.com>, Vidya Sagar <vidyas@...dia.com>,
Christoph Hellwig <hch@...radead.org>,
Robin Murphy <robin.murphy@....com>,
<linux-pci@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
Gustavo Pimentel <gustavo.pimentel@...opsys.com>,
Jingoo Han <jingoohan1@...il.com>,
Rob Herring <robh@...nel.org>,
Krzysztof WilczyĆski <kw@...ux.com>,
Bjorn Helgaas <bhelgaas@...gle.com>, <linux@...ro.com>
Subject: Re: [PATCH v6 0/2] PCI: dwc: Add support for 64-bit MSI target
addresses
Hi,
On 26.08.2022 02:54, Will McVicker wrote:
> Hi All,
>
> I've update patch 2/2 to address Robin's suggestions. This includes:
>
> * Dropping the while-loop for retrying with a 64-bit mask in favor of
> retrying within the error if-statement.
> * Using an int for the DMA mask instead of a bool and ternary operation.
>
> Thanks again for the reviews and sorry for the extra revision today!
> Hopefully this is the last one :) If not, I'd be fine to submit patch 1/2
> without 2/2 to avoid resending patch 1/2 for future revisions of patch 2/2
> (unless I don't need to do that anyway).
The first patch of the series made it into the mainline kernel, but, it
seems, the second one ("PCI: dwc: Add support for 64-bit MSI target
address") did not. As of 6.2-rc6, it is still missing.
Was it intentionally dropped because of some issues or, perhaps, just by
accident? If it was by accident, could you please queue it for inclusion
into mainline again?
Support for 64-bit MSI target addresses is needed for some of our SoCs.
I ran into a situation when there was no available RAM in ZONE_DMA32
during initialization of PCIe host. Hence, dmam_alloc_coherent() failed
in dw_pcie_msi_host_init() and initialization failed with -ENOMEM:
[ 0.374834] dw-pcie 4000000.pcie0: host bridge /soc/pcie0@...0000 ranges:
[ 0.375813] dw-pcie 4000000.pcie0: MEM
0x0041000000..0x004fffffff -> 0x0041000000
[ 0.376171] dw-pcie 4000000.pcie0: IB MEM
0x0400000000..0x07ffffffff -> 0x0400000000
[ 0.377914] dw-pcie 4000000.pcie0: Failed to alloc and map MSI data
[ 0.378191] dw-pcie 4000000.pcie0: Failed to initialize host
[ 0.378255] dw-pcie: probe of 4000000.pcie0 failed with error -12
Mainline kernel 6.2-rc6 was used in that test.
The hardware supports 64-bit target addresses, so the patch "PCI: dwc:
Add support for 64-bit MSI target address" should help with this
particular failure.
>
> Thanks,
> Will
>
> Will McVicker (2):
> PCI: dwc: Drop dependency on ZONE_DMA32
>
> v6:
> * Retrying DMA allocation with 64-bit mask within the error if-statement.
> * Use an int for the DMA mask instead of a bool and ternary operation.
>
> v5:
> * Updated patch 2/2 to first try with a 32-bit DMA mask. On failure,
> retry with a 64-bit mask if supported.
>
> v4:
> * Updated commit descriptions.
> * Renamed msi_64b -> msi_64bit.
> * Dropped msi_64bit ternary use.
> * Dropped export of dw_pcie_msi_capabilities.
>
> v3:
> * Switched to a managed DMA allocation.
> * Simplified the DMA allocation cleanup.
> * Dropped msi_page from struct dw_pcie_rp.
> * Allocating a u64 instead of a full page.
>
> v2:
> * Fixed build error caught by kernel test robot
> * Fixed error handling reported by Isaac Manjarres
> PCI: dwc: Add support for 64-bit MSI target address
>
> .../pci/controller/dwc/pcie-designware-host.c | 43 +++++++++----------
> drivers/pci/controller/dwc/pcie-designware.c | 8 ++++
> drivers/pci/controller/dwc/pcie-designware.h | 2 +-
> 3 files changed, 30 insertions(+), 23 deletions(-)
>
>
> base-commit: 568035b01cfb107af8d2e4bd2fb9aea22cf5b868
Thank you in advance.
Regards,
Evgenii
Powered by blists - more mailing lists