linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Serge Semin <Sergey.Semin@baikalelectronics.ru>
To: Gustavo Pimentel <gustavo.pimentel@synopsys.com>,
	Vinod Koul <vkoul@kernel.org>, Jingoo Han <jingoohan1@gmail.com>,
	Bjorn Helgaas <bhelgaas@google.com>,
	Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
	Frank Li <Frank.Li@nxp.com>,
	Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>,
	Christoph Hellwig <hch@lst.de>,
	Marek Szyprowski <m.szyprowski@samsung.com>,
	Robin Murphy <robin.murphy@arm.com>,
	Vladimir Murzin <vladimir.murzin@arm.com>
Cc: "Serge Semin" <Sergey.Semin@baikalelectronics.ru>,
	"Serge Semin" <fancer.lancer@gmail.com>,
	"Alexey Malahov" <Alexey.Malahov@baikalelectronics.ru>,
	"Pavel Parkhomenko" <Pavel.Parkhomenko@baikalelectronics.ru>,
	"Rob Herring" <robh@kernel.org>,
	"Krzysztof Wilczyński" <kw@linux.com>,
	linux-pci@vger.kernel.org, dmaengine@vger.kernel.org,
	linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org
Subject: [PATCH v2 01/26] dma-direct: take dma-ranges/offsets into account in resource mapping
Date: Wed, 4 May 2022 01:50:39 +0300	[thread overview]
Message-ID: <20220503225104.12108-2-Sergey.Semin@baikalelectronics.ru> (raw)
In-Reply-To: <20220503225104.12108-1-Sergey.Semin@baikalelectronics.ru>

A basic device-specific linear memory mapping was introduced back in
commit ("dma: Take into account dma_pfn_offset") as a single-valued offset
preserved in the device.dma_pfn_offset field, which was initialized for
instance by means of the "dma-ranges" DT property. Afterwards the
functionality was extended to support more than one device-specific region
defined in the device.dma_range_map list of maps. But all of these
improvements concerned a single pointer, page or sg DMA-mapping methods,
while the system resource mapping function turned to miss the
corresponding modification. Thus the dma_direct_map_resource() method now
just casts the CPU physical address to the device DMA address with no
dma-ranges-based mapping taking into account, which is obviously wrong.
Let's fix it by using the phys_to_dma_direct() method to get the
device-specific bus address from the passed memory resource for the case
of the directly mapped DMA.

Fixes: 25f1e1887088 ("dma: Take into account dma_pfn_offset")
Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
---
 kernel/dma/direct.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c
index 9743c6ccce1a..bc06db74dfdb 100644
--- a/kernel/dma/direct.c
+++ b/kernel/dma/direct.c
@@ -497,7 +497,7 @@ int dma_direct_map_sg(struct device *dev, struct scatterlist *sgl, int nents,
 dma_addr_t dma_direct_map_resource(struct device *dev, phys_addr_t paddr,
 		size_t size, enum dma_data_direction dir, unsigned long attrs)
 {
-	dma_addr_t dma_addr = paddr;
+	dma_addr_t dma_addr = phys_to_dma_direct(dev, paddr);
 
 	if (unlikely(!dma_capable(dev, dma_addr, size, false))) {
 		dev_err_once(dev,
-- 
2.35.1


  reply	other threads:[~2022-05-03 22:51 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-03 22:50 [PATCH v2 00/26] dmaengine: dw-edma: Add RP/EP local DMA controllers support Serge Semin
2022-05-03 22:50 ` Serge Semin [this message]
2022-05-09  6:15   ` [PATCH v2 01/26] dma-direct: take dma-ranges/offsets into account in resource mapping Christoph Hellwig
2022-05-12 23:28     ` Serge Semin
2022-05-03 22:50 ` [PATCH v2 02/26] dmaengine: Fix dma_slave_config.dst_addr description Serge Semin
2022-05-12 14:18   ` Manivannan Sadhasivam
2022-05-03 22:50 ` [PATCH v2 03/26] dmaengine: dw-edma: Release requested IRQs on failure Serge Semin
2022-05-12 14:39   ` Manivannan Sadhasivam
2022-05-03 22:50 ` [PATCH v2 04/26] dmaengine: dw-edma: Convert ll/dt phys-address to PCIe bus/DMA address Serge Semin
2022-05-03 22:50 ` [PATCH v2 05/26] dmaengine: dw-edma: Fix missing src/dst address of the interleaved xfers Serge Semin
2022-05-03 22:50 ` [PATCH v2 06/26] dmaengine: dw-edma: Don't permit non-inc " Serge Semin
2022-05-12 14:41   ` Manivannan Sadhasivam
2022-05-03 22:50 ` [PATCH v2 07/26] dmaengine: dw-edma: Fix invalid interleaved xfers semantics Serge Semin
2022-05-12 15:16   ` Manivannan Sadhasivam
2022-05-03 22:50 ` [PATCH v2 08/26] dmaengine: dw-edma: Add CPU to PCIe bus address translation Serge Semin
2022-05-03 22:50 ` [PATCH v2 09/26] dmaengine: dw-edma: Add PCIe bus address getter to the remote EP glue-driver Serge Semin
2022-05-03 22:50 ` [PATCH v2 10/26] dmaengine: dw-edma: Drop chancnt initialization Serge Semin
2022-05-03 22:50 ` [PATCH v2 11/26] dmaengine: dw-edma: Fix DebugFS reg entry type Serge Semin
2022-05-03 22:50 ` [PATCH v2 12/26] dmaengine: dw-edma: Stop checking debugfs_create_*() return value Serge Semin
2022-05-03 22:50 ` [PATCH v2 13/26] dmaengine: dw-edma: Add dw_edma prefix to the DebugFS nodes descriptor Serge Semin
2022-05-03 22:50 ` [PATCH v2 14/26] dmaengine: dw-edma: Convert DebugFS descs to being kz-allocated Serge Semin
2022-05-12 15:17   ` Manivannan Sadhasivam
2022-05-03 22:50 ` [PATCH v2 15/26] dmaengine: dw-edma: Rename DebugFS dentry variables to 'dent' Serge Semin
2022-05-12 15:19   ` Manivannan Sadhasivam
2022-05-03 22:50 ` [PATCH v2 16/26] dmaengine: dw-edma: Simplify the DebugFS context CSRs init procedure Serge Semin
2022-05-12 15:20   ` Manivannan Sadhasivam
2022-05-03 22:50 ` [PATCH v2 17/26] dmaengine: dw-edma: Move eDMA data pointer to DebugFS node descriptor Serge Semin
2022-05-03 22:50 ` [PATCH v2 18/26] dmaengine: dw-edma: Join Write/Read channels into a single device Serge Semin
2022-05-03 22:50 ` [PATCH v2 19/26] dmaengine: dw-edma: Use DMA-engine device DebugFS subdirectory Serge Semin
2022-05-03 22:50 ` [PATCH v2 20/26] dmaengine: dw-edma: Use non-atomic io-64 methods Serge Semin
2022-05-12 15:21   ` Manivannan Sadhasivam
2022-05-03 22:50 ` [PATCH v2 21/26] dmaengine: dw-edma: Drop DT-region allocation Serge Semin
2022-05-03 22:51 ` [PATCH v2 22/26] dmaengine: dw-edma: Replace chip ID number with device name Serge Semin
2022-05-03 22:51 ` [PATCH v2 23/26] dmaengine: dw-edma: Bypass dma-ranges mapping for the local setup Serge Semin
2022-05-24 13:19   ` Manivannan Sadhasivam
2022-05-25  8:56     ` Serge Semin
2022-05-03 22:51 ` [PATCH v2 24/26] dmaengine: dw-edma: Skip cleanup procedure if no private data found Serge Semin
2022-05-12 15:23   ` Manivannan Sadhasivam
2022-05-12 17:38     ` Serge Semin
2022-05-03 22:51 ` [PATCH v2 25/26] PCI: dwc: Add generic iATU/eDMA CSRs space detection method Serge Semin
2022-05-03 22:51 ` [PATCH v2 26/26] PCI: dwc: Add DW eDMA engine support Serge Semin
2022-05-12 14:11 ` [PATCH v2 00/26] dmaengine: dw-edma: Add RP/EP local DMA controllers support Manivannan Sadhasivam

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=20220503225104.12108-2-Sergey.Semin@baikalelectronics.ru \
    --to=sergey.semin@baikalelectronics.ru \
    --cc=Alexey.Malahov@baikalelectronics.ru \
    --cc=Frank.Li@nxp.com \
    --cc=Pavel.Parkhomenko@baikalelectronics.ru \
    --cc=bhelgaas@google.com \
    --cc=dmaengine@vger.kernel.org \
    --cc=fancer.lancer@gmail.com \
    --cc=gustavo.pimentel@synopsys.com \
    --cc=hch@lst.de \
    --cc=iommu@lists.linux-foundation.org \
    --cc=jingoohan1@gmail.com \
    --cc=kw@linux.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lorenzo.pieralisi@arm.com \
    --cc=m.szyprowski@samsung.com \
    --cc=manivannan.sadhasivam@linaro.org \
    --cc=robh@kernel.org \
    --cc=robin.murphy@arm.com \
    --cc=vkoul@kernel.org \
    --cc=vladimir.murzin@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 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).