All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@lst.de>
To: iommu@lists.linux-foundation.org
Cc: Robin Murphy <robin.murphy@arm.com>,
	Vineet Gupta <vgupta@synopsys.com>,
	"Matwey V. Kornilov" <matwey@sai.msu.ru>,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	linux-snps-arc@lists.infradead.org,
	Ezequiel Garcia <ezequiel@collabora.com>,
	linux-media@vger.kernel.org, linux-arm-kernel@vger.kernel.org,
	dri-devel@lists.freedesktop.org, sparclinux@vger.kernel.org,
	openrisc@lists.librecores.org, linux-parisc@vger.kernel.org,
	linux-mips@vger.kernel.org
Subject: [PATCH 03/10] arm64/iommu: implement support for DMA_ATTR_NON_CONSISTENT
Date: Sat,  8 Dec 2018 09:36:55 -0800	[thread overview]
Message-ID: <20181208173702.15158-4-hch@lst.de> (raw)
In-Reply-To: <20181208173702.15158-1-hch@lst.de>

DMA_ATTR_NON_CONSISTENT forces contiguous allocations as we don't
want to remap, and is otherwise forced down the same pass as if we
were always on a coherent device.  No new code required except for
a few conditionals.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/arm64/mm/dma-mapping.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index d39b60113539..0010688ca30e 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -240,7 +240,8 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
 				dma_free_from_pool(addr, size);
 			addr = NULL;
 		}
-	} else if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	} else if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS |
+			DMA_ATTR_NON_CONSISTENT)) {
 		pgprot_t prot = arch_dma_mmap_pgprot(dev, PAGE_KERNEL, attrs);
 		struct page *page;
 
@@ -256,7 +257,7 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
 			return NULL;
 		}
 
-		if (coherent) {
+		if (coherent || (attrs & DMA_ATTR_NON_CONSISTENT)) {
 			memset(addr, 0, size);
 			return addr;
 		}
@@ -309,7 +310,8 @@ static void __iommu_free_attrs(struct device *dev, size_t size, void *cpu_addr,
 	if (dma_in_atomic_pool(cpu_addr, size)) {
 		iommu_dma_unmap_page(dev, handle, iosize, 0, 0);
 		dma_free_from_pool(cpu_addr, size);
-	} else if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	} else if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS |
+			DMA_ATTR_NON_CONSISTENT)) {
 		struct page *page = vmalloc_to_page(cpu_addr);
 
 		iommu_dma_unmap_page(dev, handle, iosize, 0, attrs);
@@ -342,10 +344,11 @@ static int __iommu_mmap_attrs(struct device *dev, struct vm_area_struct *vma,
 	if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
 		return ret;
 
-	if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NON_CONSISTENT)) {
 		unsigned long pfn;
 
-		if (dev_is_dma_coherent(dev))
+		if (dev_is_dma_coherent(dev) ||
+		    (attrs & DMA_ATTR_NON_CONSISTENT))
 			pfn = virt_to_pfn(cpu_addr);
 		else
 			pfn = vmalloc_to_pfn(cpu_addr);
@@ -366,10 +369,11 @@ static int __iommu_get_sgtable(struct device *dev, struct sg_table *sgt,
 	unsigned int count = PAGE_ALIGN(size) >> PAGE_SHIFT;
 	struct vm_struct *area = find_vm_area(cpu_addr);
 
-	if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NON_CONSISTENT)) {
 		struct page *page;
 
-		if (dev_is_dma_coherent(dev))
+		if (dev_is_dma_coherent(dev) ||
+		    (attrs & DMA_ATTR_NON_CONSISTENT))
 			page = virt_to_page(cpu_addr);
 		else
 			page = vmalloc_to_page(cpu_addr);
-- 
2.19.2


WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: iommu@lists.linux-foundation.org
Cc: linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	Vineet Gupta <vgupta@synopsys.com>,
	Robin Murphy <robin.murphy@arm.com>,
	dri-devel@lists.freedesktop.org,
	"Matwey V. Kornilov" <matwey@sai.msu.ru>,
	openrisc@lists.librecores.org,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	sparclinux@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	Ezequiel Garcia <ezequiel@collabora.com>,
	linux-arm-kernel@vger.kernel.org, linux-media@vger.kernel.org
Subject: [PATCH 03/10] arm64/iommu: implement support for DMA_ATTR_NON_CONSISTENT
Date: Sat, 08 Dec 2018 17:36:55 +0000	[thread overview]
Message-ID: <20181208173702.15158-4-hch@lst.de> (raw)
In-Reply-To: <20181208173702.15158-1-hch@lst.de>

DMA_ATTR_NON_CONSISTENT forces contiguous allocations as we don't
want to remap, and is otherwise forced down the same pass as if we
were always on a coherent device.  No new code required except for
a few conditionals.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/arm64/mm/dma-mapping.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index d39b60113539..0010688ca30e 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -240,7 +240,8 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
 				dma_free_from_pool(addr, size);
 			addr = NULL;
 		}
-	} else if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	} else if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS |
+			DMA_ATTR_NON_CONSISTENT)) {
 		pgprot_t prot = arch_dma_mmap_pgprot(dev, PAGE_KERNEL, attrs);
 		struct page *page;
 
@@ -256,7 +257,7 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
 			return NULL;
 		}
 
-		if (coherent) {
+		if (coherent || (attrs & DMA_ATTR_NON_CONSISTENT)) {
 			memset(addr, 0, size);
 			return addr;
 		}
@@ -309,7 +310,8 @@ static void __iommu_free_attrs(struct device *dev, size_t size, void *cpu_addr,
 	if (dma_in_atomic_pool(cpu_addr, size)) {
 		iommu_dma_unmap_page(dev, handle, iosize, 0, 0);
 		dma_free_from_pool(cpu_addr, size);
-	} else if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	} else if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS |
+			DMA_ATTR_NON_CONSISTENT)) {
 		struct page *page = vmalloc_to_page(cpu_addr);
 
 		iommu_dma_unmap_page(dev, handle, iosize, 0, attrs);
@@ -342,10 +344,11 @@ static int __iommu_mmap_attrs(struct device *dev, struct vm_area_struct *vma,
 	if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
 		return ret;
 
-	if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NON_CONSISTENT)) {
 		unsigned long pfn;
 
-		if (dev_is_dma_coherent(dev))
+		if (dev_is_dma_coherent(dev) ||
+		    (attrs & DMA_ATTR_NON_CONSISTENT))
 			pfn = virt_to_pfn(cpu_addr);
 		else
 			pfn = vmalloc_to_pfn(cpu_addr);
@@ -366,10 +369,11 @@ static int __iommu_get_sgtable(struct device *dev, struct sg_table *sgt,
 	unsigned int count = PAGE_ALIGN(size) >> PAGE_SHIFT;
 	struct vm_struct *area = find_vm_area(cpu_addr);
 
-	if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NON_CONSISTENT)) {
 		struct page *page;
 
-		if (dev_is_dma_coherent(dev))
+		if (dev_is_dma_coherent(dev) ||
+		    (attrs & DMA_ATTR_NON_CONSISTENT))
 			page = virt_to_page(cpu_addr);
 		else
 			page = vmalloc_to_page(cpu_addr);
-- 
2.19.2

WARNING: multiple messages have this Message-ID (diff)
From: hch@lst.de (Christoph Hellwig)
To: linux-snps-arc@lists.infradead.org
Subject: [PATCH 03/10] arm64/iommu: implement support for DMA_ATTR_NON_CONSISTENT
Date: Sat,  8 Dec 2018 09:36:55 -0800	[thread overview]
Message-ID: <20181208173702.15158-4-hch@lst.de> (raw)
In-Reply-To: <20181208173702.15158-1-hch@lst.de>

DMA_ATTR_NON_CONSISTENT forces contiguous allocations as we don't
want to remap, and is otherwise forced down the same pass as if we
were always on a coherent device.  No new code required except for
a few conditionals.

Signed-off-by: Christoph Hellwig <hch at lst.de>
---
 arch/arm64/mm/dma-mapping.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index d39b60113539..0010688ca30e 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -240,7 +240,8 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
 				dma_free_from_pool(addr, size);
 			addr = NULL;
 		}
-	} else if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	} else if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS |
+			DMA_ATTR_NON_CONSISTENT)) {
 		pgprot_t prot = arch_dma_mmap_pgprot(dev, PAGE_KERNEL, attrs);
 		struct page *page;
 
@@ -256,7 +257,7 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
 			return NULL;
 		}
 
-		if (coherent) {
+		if (coherent || (attrs & DMA_ATTR_NON_CONSISTENT)) {
 			memset(addr, 0, size);
 			return addr;
 		}
@@ -309,7 +310,8 @@ static void __iommu_free_attrs(struct device *dev, size_t size, void *cpu_addr,
 	if (dma_in_atomic_pool(cpu_addr, size)) {
 		iommu_dma_unmap_page(dev, handle, iosize, 0, 0);
 		dma_free_from_pool(cpu_addr, size);
-	} else if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	} else if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS |
+			DMA_ATTR_NON_CONSISTENT)) {
 		struct page *page = vmalloc_to_page(cpu_addr);
 
 		iommu_dma_unmap_page(dev, handle, iosize, 0, attrs);
@@ -342,10 +344,11 @@ static int __iommu_mmap_attrs(struct device *dev, struct vm_area_struct *vma,
 	if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
 		return ret;
 
-	if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NON_CONSISTENT)) {
 		unsigned long pfn;
 
-		if (dev_is_dma_coherent(dev))
+		if (dev_is_dma_coherent(dev) ||
+		    (attrs & DMA_ATTR_NON_CONSISTENT))
 			pfn = virt_to_pfn(cpu_addr);
 		else
 			pfn = vmalloc_to_pfn(cpu_addr);
@@ -366,10 +369,11 @@ static int __iommu_get_sgtable(struct device *dev, struct sg_table *sgt,
 	unsigned int count = PAGE_ALIGN(size) >> PAGE_SHIFT;
 	struct vm_struct *area = find_vm_area(cpu_addr);
 
-	if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NON_CONSISTENT)) {
 		struct page *page;
 
-		if (dev_is_dma_coherent(dev))
+		if (dev_is_dma_coherent(dev) ||
+		    (attrs & DMA_ATTR_NON_CONSISTENT))
 			page = virt_to_page(cpu_addr);
 		else
 			page = vmalloc_to_page(cpu_addr);
-- 
2.19.2

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: iommu@lists.linux-foundation.org
Cc: linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org,
	Vineet Gupta <vgupta@synopsys.com>,
	Robin Murphy <robin.murphy@arm.com>,
	dri-devel@lists.freedesktop.org,
	"Matwey V. Kornilov" <matwey@sai.msu.ru>,
	openrisc@lists.librecores.org,
	Laurent Pinchart <laurent.pinchart@ideasonboard.com>,
	sparclinux@vger.kernel.org, linux-snps-arc@lists.infradead.org,
	Ezequiel Garcia <ezequiel@collabora.com>,
	linux-arm-kernel@vger.kernel.org, linux-media@vger.kernel.org
Subject: [PATCH 03/10] arm64/iommu: implement support for DMA_ATTR_NON_CONSISTENT
Date: Sat,  8 Dec 2018 09:36:55 -0800	[thread overview]
Message-ID: <20181208173702.15158-4-hch@lst.de> (raw)
In-Reply-To: <20181208173702.15158-1-hch@lst.de>

DMA_ATTR_NON_CONSISTENT forces contiguous allocations as we don't
want to remap, and is otherwise forced down the same pass as if we
were always on a coherent device.  No new code required except for
a few conditionals.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/arm64/mm/dma-mapping.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index d39b60113539..0010688ca30e 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -240,7 +240,8 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
 				dma_free_from_pool(addr, size);
 			addr = NULL;
 		}
-	} else if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	} else if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS |
+			DMA_ATTR_NON_CONSISTENT)) {
 		pgprot_t prot = arch_dma_mmap_pgprot(dev, PAGE_KERNEL, attrs);
 		struct page *page;
 
@@ -256,7 +257,7 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
 			return NULL;
 		}
 
-		if (coherent) {
+		if (coherent || (attrs & DMA_ATTR_NON_CONSISTENT)) {
 			memset(addr, 0, size);
 			return addr;
 		}
@@ -309,7 +310,8 @@ static void __iommu_free_attrs(struct device *dev, size_t size, void *cpu_addr,
 	if (dma_in_atomic_pool(cpu_addr, size)) {
 		iommu_dma_unmap_page(dev, handle, iosize, 0, 0);
 		dma_free_from_pool(cpu_addr, size);
-	} else if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	} else if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS |
+			DMA_ATTR_NON_CONSISTENT)) {
 		struct page *page = vmalloc_to_page(cpu_addr);
 
 		iommu_dma_unmap_page(dev, handle, iosize, 0, attrs);
@@ -342,10 +344,11 @@ static int __iommu_mmap_attrs(struct device *dev, struct vm_area_struct *vma,
 	if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
 		return ret;
 
-	if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NON_CONSISTENT)) {
 		unsigned long pfn;
 
-		if (dev_is_dma_coherent(dev))
+		if (dev_is_dma_coherent(dev) ||
+		    (attrs & DMA_ATTR_NON_CONSISTENT))
 			pfn = virt_to_pfn(cpu_addr);
 		else
 			pfn = vmalloc_to_pfn(cpu_addr);
@@ -366,10 +369,11 @@ static int __iommu_get_sgtable(struct device *dev, struct sg_table *sgt,
 	unsigned int count = PAGE_ALIGN(size) >> PAGE_SHIFT;
 	struct vm_struct *area = find_vm_area(cpu_addr);
 
-	if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NON_CONSISTENT)) {
 		struct page *page;
 
-		if (dev_is_dma_coherent(dev))
+		if (dev_is_dma_coherent(dev) ||
+		    (attrs & DMA_ATTR_NON_CONSISTENT))
 			page = virt_to_page(cpu_addr);
 		else
 			page = vmalloc_to_page(cpu_addr);
-- 
2.19.2

WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de>
To: openrisc@lists.librecores.org
Subject: [OpenRISC] [PATCH 03/10] arm64/iommu: implement support for DMA_ATTR_NON_CONSISTENT
Date: Sat,  8 Dec 2018 09:36:55 -0800	[thread overview]
Message-ID: <20181208173702.15158-4-hch@lst.de> (raw)
In-Reply-To: <20181208173702.15158-1-hch@lst.de>

DMA_ATTR_NON_CONSISTENT forces contiguous allocations as we don't
want to remap, and is otherwise forced down the same pass as if we
were always on a coherent device.  No new code required except for
a few conditionals.

Signed-off-by: Christoph Hellwig <hch@lst.de>
---
 arch/arm64/mm/dma-mapping.c | 18 +++++++++++-------
 1 file changed, 11 insertions(+), 7 deletions(-)

diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index d39b60113539..0010688ca30e 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -240,7 +240,8 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
 				dma_free_from_pool(addr, size);
 			addr = NULL;
 		}
-	} else if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	} else if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS |
+			DMA_ATTR_NON_CONSISTENT)) {
 		pgprot_t prot = arch_dma_mmap_pgprot(dev, PAGE_KERNEL, attrs);
 		struct page *page;
 
@@ -256,7 +257,7 @@ static void *__iommu_alloc_attrs(struct device *dev, size_t size,
 			return NULL;
 		}
 
-		if (coherent) {
+		if (coherent || (attrs & DMA_ATTR_NON_CONSISTENT)) {
 			memset(addr, 0, size);
 			return addr;
 		}
@@ -309,7 +310,8 @@ static void __iommu_free_attrs(struct device *dev, size_t size, void *cpu_addr,
 	if (dma_in_atomic_pool(cpu_addr, size)) {
 		iommu_dma_unmap_page(dev, handle, iosize, 0, 0);
 		dma_free_from_pool(cpu_addr, size);
-	} else if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	} else if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS |
+			DMA_ATTR_NON_CONSISTENT)) {
 		struct page *page = vmalloc_to_page(cpu_addr);
 
 		iommu_dma_unmap_page(dev, handle, iosize, 0, attrs);
@@ -342,10 +344,11 @@ static int __iommu_mmap_attrs(struct device *dev, struct vm_area_struct *vma,
 	if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
 		return ret;
 
-	if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NON_CONSISTENT)) {
 		unsigned long pfn;
 
-		if (dev_is_dma_coherent(dev))
+		if (dev_is_dma_coherent(dev) ||
+		    (attrs & DMA_ATTR_NON_CONSISTENT))
 			pfn = virt_to_pfn(cpu_addr);
 		else
 			pfn = vmalloc_to_pfn(cpu_addr);
@@ -366,10 +369,11 @@ static int __iommu_get_sgtable(struct device *dev, struct sg_table *sgt,
 	unsigned int count = PAGE_ALIGN(size) >> PAGE_SHIFT;
 	struct vm_struct *area = find_vm_area(cpu_addr);
 
-	if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
+	if (attrs & (DMA_ATTR_FORCE_CONTIGUOUS | DMA_ATTR_NON_CONSISTENT)) {
 		struct page *page;
 
-		if (dev_is_dma_coherent(dev))
+		if (dev_is_dma_coherent(dev) ||
+		    (attrs & DMA_ATTR_NON_CONSISTENT))
 			page = virt_to_page(cpu_addr);
 		else
 			page = vmalloc_to_page(cpu_addr);
-- 
2.19.2


  parent reply	other threads:[~2018-12-08 17:37 UTC|newest]

Thread overview: 221+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-08 17:36 make the non-consistent DMA allocator more userful Christoph Hellwig
2018-12-08 17:36 ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:36 ` Christoph Hellwig
2018-12-08 17:36 ` Christoph Hellwig
2018-12-08 17:36 ` Christoph Hellwig
2018-12-08 17:36 ` [PATCH 01/10] dma-direct: provide a generic implementation of DMA_ATTR_NON_CONSISTENT Christoph Hellwig
2018-12-08 17:36   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36 ` [PATCH 02/10] arm64/iommu: don't remap contiguous allocations for coherent devices Christoph Hellwig
2018-12-08 17:36   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-10 19:19   ` Robin Murphy
2018-12-10 19:19     ` [OpenRISC] " Robin Murphy
2018-12-10 19:19     ` Robin Murphy
2018-12-10 19:19     ` Robin Murphy
2018-12-10 19:19     ` Robin Murphy
2018-12-10 19:25     ` Christoph Hellwig
2018-12-10 19:25       ` [OpenRISC] " Christoph Hellwig
2018-12-10 19:25       ` Christoph Hellwig
2018-12-10 19:25       ` Christoph Hellwig
2018-12-10 19:25       ` Christoph Hellwig
2018-12-08 17:36 ` Christoph Hellwig [this message]
2018-12-08 17:36   ` [OpenRISC] [PATCH 03/10] arm64/iommu: implement support for DMA_ATTR_NON_CONSISTENT Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36 ` [PATCH 04/10] arm: implement DMA_ATTR_NON_CONSISTENT Christoph Hellwig
2018-12-08 17:36   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 22:52   ` Ezequiel Garcia
2018-12-08 22:52     ` [OpenRISC] " Ezequiel Garcia
2018-12-08 22:52     ` Ezequiel Garcia
2018-12-08 22:52     ` Ezequiel Garcia
2018-12-08 22:52     ` Ezequiel Garcia
2018-12-10 19:16     ` Christoph Hellwig
2018-12-10 19:16       ` [OpenRISC] " Christoph Hellwig
2018-12-10 19:16       ` Christoph Hellwig
2018-12-10 19:16       ` Christoph Hellwig
2018-12-10 19:16       ` Christoph Hellwig
2018-12-08 17:36 ` [PATCH 05/10] sparc64/iommu: move code around a bit Christoph Hellwig
2018-12-08 17:36   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-09  4:58   ` David Miller
2018-12-09  4:58     ` [OpenRISC] " David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-08 17:36 ` [PATCH 06/10] sparc64/iommu: implement DMA_ATTR_NON_CONSISTENT Christoph Hellwig
2018-12-08 17:36   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-09  4:58   ` David Miller
2018-12-09  4:58     ` [OpenRISC] " David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-08 17:36 ` [PATCH 07/10] sparc64/pci_sun4v: move code around a bit Christoph Hellwig
2018-12-08 17:36   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-08 17:36   ` Christoph Hellwig
2018-12-09  4:58   ` David Miller
2018-12-09  4:58     ` [OpenRISC] " David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-08 17:37 ` [PATCH 08/10] sparc64/pci_sun4v: implement DMA_ATTR_NON_CONSISTENT Christoph Hellwig
2018-12-08 17:37   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:37   ` Christoph Hellwig
2018-12-08 17:37   ` Christoph Hellwig
2018-12-08 17:37   ` Christoph Hellwig
2018-12-09  4:58   ` David Miller
2018-12-09  4:58     ` [OpenRISC] " David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-08 17:37 ` [PATCH 09/10] dma-mapping: skip declared coherent memory for DMA_ATTR_NON_CONSISTENT Christoph Hellwig
2018-12-08 17:37   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:37   ` Christoph Hellwig
2018-12-08 17:37   ` Christoph Hellwig
2018-12-08 17:37   ` Christoph Hellwig
2018-12-08 17:37 ` [PATCH 10/10] Documentation: update the description " Christoph Hellwig
2018-12-08 17:37   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:37   ` Christoph Hellwig
2018-12-08 17:37   ` Christoph Hellwig
2018-12-08 17:37   ` Christoph Hellwig
2018-12-08 17:41 make the non-consistent DMA allocator more userful (resend) Christoph Hellwig
2018-12-08 17:41 ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:41 ` Christoph Hellwig
2018-12-08 17:41 ` Christoph Hellwig
2018-12-08 17:41 ` Christoph Hellwig
2018-12-08 17:41 ` Christoph Hellwig
2018-12-08 17:41 ` [PATCH 1/6] sparc: remove no needed sbus_dma_ops methods Christoph Hellwig
2018-12-08 17:41   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-09  4:57   ` David Miller
2018-12-09  4:57     ` [OpenRISC] " David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-08 17:41 ` [PATCH 2/6] sparc: factor the dma coherent mapping into helper Christoph Hellwig
2018-12-08 17:41   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-09  4:57   ` David Miller
2018-12-09  4:57     ` [OpenRISC] " David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-08 17:41 ` [PATCH 3/6] sparc: remove the sparc32_dma_ops indirection Christoph Hellwig
2018-12-08 17:41   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-09  4:57   ` David Miller
2018-12-09  4:57     ` [OpenRISC] " David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-15  6:30   ` Guenter Roeck
2018-12-15  6:30     ` [OpenRISC] " Guenter Roeck
2018-12-15  6:30     ` Guenter Roeck
2018-12-15  6:30     ` Guenter Roeck
2018-12-15  6:30     ` Guenter Roeck
2018-12-15  6:30     ` Guenter Roeck
2018-12-15 10:47     ` Christoph Hellwig
2018-12-15 10:47       ` [OpenRISC] " Christoph Hellwig
2018-12-15 10:47       ` Christoph Hellwig
2018-12-15 10:47       ` Christoph Hellwig
2018-12-15 10:47       ` Christoph Hellwig
2018-12-15 10:47       ` Christoph Hellwig
2018-12-15 14:57       ` Guenter Roeck
2018-12-15 14:57         ` [OpenRISC] " Guenter Roeck
2018-12-15 14:57         ` Guenter Roeck
2018-12-15 14:57         ` Guenter Roeck
2018-12-15 14:57         ` Guenter Roeck
2018-12-15 14:57         ` Guenter Roeck
2018-12-08 17:41 ` [PATCH 4/6] sparc: remove not required includes from dma-mapping.h Christoph Hellwig
2018-12-08 17:41   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-09  4:57   ` David Miller
2018-12-09  4:57     ` [OpenRISC] " David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-09  4:57     ` David Miller
2018-12-08 17:41 ` [PATCH 5/6] sparc: move the leon PCI memory space comment to <asm/leon.h> Christoph Hellwig
2018-12-08 17:41   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-09  4:58   ` David Miller
2018-12-09  4:58     ` [OpenRISC] " David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-08 17:41 ` [PATCH 6/6] sparc: merge 32-bit and 64-bit version of pci.h Christoph Hellwig
2018-12-08 17:41   ` [OpenRISC] " Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-08 17:41   ` Christoph Hellwig
2018-12-09  4:58   ` David Miller
2018-12-09  4:58     ` [OpenRISC] " David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-09  4:58     ` David Miller
2018-12-10 16:32     ` Christoph Hellwig
2018-12-10 16:32       ` [OpenRISC] " Christoph Hellwig
2018-12-10 16:32       ` Christoph Hellwig
2018-12-10 16:32       ` Christoph Hellwig
2018-12-10 16:32       ` Christoph Hellwig
2018-12-10 16:32       ` Christoph Hellwig
2018-12-10 18:10       ` David Miller
2018-12-10 18:10         ` [OpenRISC] " David Miller
2018-12-10 18:10         ` David Miller
2018-12-10 18:10         ` David Miller
2018-12-10 18:10         ` David Miller
2018-12-10 18:10         ` David Miller
2018-12-10 19:22         ` Christoph Hellwig
2018-12-10 19:22           ` [OpenRISC] " Christoph Hellwig
2018-12-10 19:22           ` Christoph Hellwig
2018-12-10 19:22           ` Christoph Hellwig
2018-12-10 19:22           ` Christoph Hellwig
2018-12-10 19:22           ` Christoph Hellwig
2018-12-10 19:33           ` David Miller
2018-12-10 19:33             ` [OpenRISC] " David Miller
2018-12-10 19:33             ` David Miller
2018-12-10 19:33             ` David Miller
2018-12-10 19:33             ` David Miller
2018-12-10 19:33             ` David Miller
2018-12-11 13:46             ` Christoph Hellwig
2018-12-11 13:46               ` [OpenRISC] " Christoph Hellwig
2018-12-11 13:46               ` Christoph Hellwig
2018-12-11 13:46               ` Christoph Hellwig
2018-12-11 13:46               ` Christoph Hellwig
2018-12-11 13:46               ` Christoph Hellwig

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=20181208173702.15158-4-hch@lst.de \
    --to=hch@lst.de \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=ezequiel@collabora.com \
    --cc=iommu@lists.linux-foundation.org \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-arm-kernel@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=linux-mips@vger.kernel.org \
    --cc=linux-parisc@vger.kernel.org \
    --cc=linux-snps-arc@lists.infradead.org \
    --cc=matwey@sai.msu.ru \
    --cc=openrisc@lists.librecores.org \
    --cc=robin.murphy@arm.com \
    --cc=sparclinux@vger.kernel.org \
    --cc=vgupta@synopsys.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.