From: Christoph Hellwig <hch@lst.de> To: Greg Ungerer <gerg@linux-m68k.org>, iommu@lists.linux.dev Cc: Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt <palmer@dabbelt.com>, Conor Dooley <conor@kernel.org>, Geert Uytterhoeven <geert+renesas@glider.be>, Magnus Damm <magnus.damm@gmail.com>, Robin Murphy <robin.murphy@arm.com>, Marek Szyprowski <m.szyprowski@samsung.com>, Geert Uytterhoeven <geert@linux-m68k.org>, Wei Fang <wei.fang@nxp.com>, Shenwei Wang <shenwei.wang@nxp.com>, Clark Wang <xiaoning.wang@nxp.com>, NXP Linux Team <linux-imx@nxp.com>, linux-m68k@lists.linux-m68k.org, netdev@vger.kernel.org, linux-riscv@lists.infradead.org, linux-renesas-soc@vger.kernel.org, Jim Quinlan <james.quinlan@broadcom.com> Subject: [PATCH 11/12] m68k: don't provide arch_dma_alloc for nommu/coldfire Date: Mon, 16 Oct 2023 07:47:53 +0200 [thread overview] Message-ID: <20231016054755.915155-12-hch@lst.de> (raw) In-Reply-To: <20231016054755.915155-1-hch@lst.de> Coldfire cores configured with a data cache can't provide coherent DMA allocations at all. Instead of returning non-coherent kernel memory in this case, return NULL and fail the allocation. The only driver that used to rely on the previous behavior (fec) has been switched to use non-coherent allocations for this case recently. Signed-off-by: Christoph Hellwig <hch@lst.de> --- arch/m68k/Kconfig | 1 - arch/m68k/kernel/dma.c | 23 ----------------------- 2 files changed, 24 deletions(-) diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 6c585eae89f4dc..c1c0faffb0d413 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -3,7 +3,6 @@ config M68K bool default y select ARCH_32BIT_OFF_T - select ARCH_DMA_ALLOC if M68K_NONCOHERENT_DMA && COLDFIRE select ARCH_HAS_BINFMT_FLAT select ARCH_HAS_CPU_FINALIZE_INIT if MMU select ARCH_HAS_CURRENT_STACK_POINTER diff --git a/arch/m68k/kernel/dma.c b/arch/m68k/kernel/dma.c index f83870cfa79b37..eef63d032abb53 100644 --- a/arch/m68k/kernel/dma.c +++ b/arch/m68k/kernel/dma.c @@ -33,29 +33,6 @@ pgprot_t pgprot_dmacoherent(pgprot_t prot) } return prot; } -#else -void *arch_dma_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle, - gfp_t gfp, unsigned long attrs) -{ - void *ret; - - if (dev == NULL || (*dev->dma_mask < 0xffffffff)) - gfp |= GFP_DMA; - ret = (void *)__get_free_pages(gfp, get_order(size)); - - if (ret != NULL) { - memset(ret, 0, size); - *dma_handle = virt_to_phys(ret); - } - return ret; -} - -void arch_dma_free(struct device *dev, size_t size, void *vaddr, - dma_addr_t dma_handle, unsigned long attrs) -{ - free_pages((unsigned long)vaddr, get_order(size)); -} - #endif /* CONFIG_MMU && !CONFIG_COLDFIRE */ void arch_sync_dma_for_device(phys_addr_t handle, size_t size, -- 2.39.2
WARNING: multiple messages have this Message-ID (diff)
From: Christoph Hellwig <hch@lst.de> To: Greg Ungerer <gerg@linux-m68k.org>, iommu@lists.linux.dev Cc: Paul Walmsley <paul.walmsley@sifive.com>, Palmer Dabbelt <palmer@dabbelt.com>, Conor Dooley <conor@kernel.org>, Geert Uytterhoeven <geert+renesas@glider.be>, Magnus Damm <magnus.damm@gmail.com>, Robin Murphy <robin.murphy@arm.com>, Marek Szyprowski <m.szyprowski@samsung.com>, Geert Uytterhoeven <geert@linux-m68k.org>, Wei Fang <wei.fang@nxp.com>, Shenwei Wang <shenwei.wang@nxp.com>, Clark Wang <xiaoning.wang@nxp.com>, NXP Linux Team <linux-imx@nxp.com>, linux-m68k@lists.linux-m68k.org, netdev@vger.kernel.org, linux-riscv@lists.infradead.org, linux-renesas-soc@vger.kernel.org, Jim Quinlan <james.quinlan@broadcom.com> Subject: [PATCH 11/12] m68k: don't provide arch_dma_alloc for nommu/coldfire Date: Mon, 16 Oct 2023 07:47:53 +0200 [thread overview] Message-ID: <20231016054755.915155-12-hch@lst.de> (raw) In-Reply-To: <20231016054755.915155-1-hch@lst.de> Coldfire cores configured with a data cache can't provide coherent DMA allocations at all. Instead of returning non-coherent kernel memory in this case, return NULL and fail the allocation. The only driver that used to rely on the previous behavior (fec) has been switched to use non-coherent allocations for this case recently. Signed-off-by: Christoph Hellwig <hch@lst.de> --- arch/m68k/Kconfig | 1 - arch/m68k/kernel/dma.c | 23 ----------------------- 2 files changed, 24 deletions(-) diff --git a/arch/m68k/Kconfig b/arch/m68k/Kconfig index 6c585eae89f4dc..c1c0faffb0d413 100644 --- a/arch/m68k/Kconfig +++ b/arch/m68k/Kconfig @@ -3,7 +3,6 @@ config M68K bool default y select ARCH_32BIT_OFF_T - select ARCH_DMA_ALLOC if M68K_NONCOHERENT_DMA && COLDFIRE select ARCH_HAS_BINFMT_FLAT select ARCH_HAS_CPU_FINALIZE_INIT if MMU select ARCH_HAS_CURRENT_STACK_POINTER diff --git a/arch/m68k/kernel/dma.c b/arch/m68k/kernel/dma.c index f83870cfa79b37..eef63d032abb53 100644 --- a/arch/m68k/kernel/dma.c +++ b/arch/m68k/kernel/dma.c @@ -33,29 +33,6 @@ pgprot_t pgprot_dmacoherent(pgprot_t prot) } return prot; } -#else -void *arch_dma_alloc(struct device *dev, size_t size, dma_addr_t *dma_handle, - gfp_t gfp, unsigned long attrs) -{ - void *ret; - - if (dev == NULL || (*dev->dma_mask < 0xffffffff)) - gfp |= GFP_DMA; - ret = (void *)__get_free_pages(gfp, get_order(size)); - - if (ret != NULL) { - memset(ret, 0, size); - *dma_handle = virt_to_phys(ret); - } - return ret; -} - -void arch_dma_free(struct device *dev, size_t size, void *vaddr, - dma_addr_t dma_handle, unsigned long attrs) -{ - free_pages((unsigned long)vaddr, get_order(size)); -} - #endif /* CONFIG_MMU && !CONFIG_COLDFIRE */ void arch_sync_dma_for_device(phys_addr_t handle, size_t size, -- 2.39.2 _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2023-10-16 5:48 UTC|newest] Thread overview: 78+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-10-16 5:47 fix the non-coherent coldfire dma_alloc_coherent v2 Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-16 5:47 ` [PATCH 01/12] riscv: RISCV_NONSTANDARD_CACHE_OPS shouldn't depend on RISCV_DMA_NONCOHERENT Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-16 12:49 ` Conor Dooley 2023-10-16 12:49 ` Conor Dooley 2023-10-16 13:17 ` Christoph Hellwig 2023-10-16 13:17 ` Christoph Hellwig 2023-10-16 17:16 ` Conor Dooley 2023-10-16 17:16 ` Conor Dooley 2023-10-16 5:47 ` [PATCH 02/12] riscv: only select DMA_DIRECT_REMAP from RISCV_ISA_ZICBOM Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-16 11:18 ` Robin Murphy 2023-10-16 11:18 ` Robin Murphy 2023-10-16 12:55 ` Conor Dooley 2023-10-16 12:55 ` Conor Dooley 2023-10-16 15:39 ` Lad, Prabhakar 2023-10-16 15:39 ` Lad, Prabhakar 2023-10-16 5:47 ` [PATCH 03/12] soc: renesas: ARCH_R9A07G043 depends on !RISCV_ISA_ZICBOM Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-16 12:53 ` Conor Dooley 2023-10-16 12:53 ` Conor Dooley 2023-10-16 15:40 ` Lad, Prabhakar 2023-10-16 15:40 ` Lad, Prabhakar 2023-10-17 7:59 ` Geert Uytterhoeven 2023-10-17 7:59 ` Geert Uytterhoeven 2023-10-16 5:47 ` [PATCH 04/12] soc: renesas: select RISCV_DMA_NONCOHERENT from ARCH_R9A07G043 Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-16 12:52 ` Conor Dooley 2023-10-16 12:52 ` Conor Dooley 2023-10-16 13:17 ` Christoph Hellwig 2023-10-16 13:17 ` Christoph Hellwig 2023-10-17 10:44 ` Geert Uytterhoeven 2023-10-17 10:44 ` Geert Uytterhoeven 2023-10-17 12:46 ` Christoph Hellwig 2023-10-17 12:46 ` Christoph Hellwig 2023-10-17 13:12 ` Geert Uytterhoeven 2023-10-17 13:12 ` Geert Uytterhoeven 2023-10-16 15:42 ` Lad, Prabhakar 2023-10-16 15:42 ` Lad, Prabhakar 2023-10-17 8:20 ` Geert Uytterhoeven 2023-10-17 8:20 ` Geert Uytterhoeven 2023-10-16 5:47 ` [PATCH 05/12] dma-direct: add depdenencies to CONFIG_DMA_GLOBAL_POOL Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-16 11:18 ` Robin Murphy 2023-10-16 11:18 ` Robin Murphy 2023-10-16 15:44 ` Lad, Prabhakar 2023-10-16 15:44 ` Lad, Prabhakar 2023-10-16 5:47 ` [PATCH 06/12] dma-direct: add a CONFIG_ARCH_DMA_ALLOC symbol Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-16 11:33 ` Robin Murphy 2023-10-16 11:33 ` Robin Murphy 2023-10-16 5:47 ` [PATCH 07/12] dma-direct: simplify the use atomic pool logic in dma_direct_alloc Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-16 11:58 ` Robin Murphy 2023-10-16 11:58 ` Robin Murphy 2023-10-16 5:47 ` [PATCH 08/12] dma-direct: warn when coherent allocations aren't supported Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-16 11:59 ` Robin Murphy 2023-10-16 11:59 ` Robin Murphy 2023-10-16 5:47 ` [PATCH 09/12] m68k: use the coherent DMA code for coldfire without data cache Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-17 8:40 ` Geert Uytterhoeven 2023-10-17 8:40 ` Geert Uytterhoeven 2023-10-19 12:50 ` Greg Ungerer 2023-10-19 12:50 ` Greg Ungerer 2023-10-16 5:47 ` [PATCH 10/12] net: fec: use dma_alloc_noncoherent for data cache enabled coldfire Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-17 8:43 ` Geert Uytterhoeven 2023-10-17 8:43 ` Geert Uytterhoeven 2023-10-16 5:47 ` Christoph Hellwig [this message] 2023-10-16 5:47 ` [PATCH 11/12] m68k: don't provide arch_dma_alloc for nommu/coldfire Christoph Hellwig 2023-10-16 5:47 ` [PATCH 12/12] m68k: remove unused includes from dma.c Christoph Hellwig 2023-10-16 5:47 ` Christoph Hellwig 2023-10-17 8:48 ` Geert Uytterhoeven 2023-10-17 8:48 ` Geert Uytterhoeven 2023-10-19 13:09 ` fix the non-coherent coldfire dma_alloc_coherent v2 Greg Ungerer 2023-10-19 13:09 ` Greg Ungerer
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=20231016054755.915155-12-hch@lst.de \ --to=hch@lst.de \ --cc=conor@kernel.org \ --cc=geert+renesas@glider.be \ --cc=geert@linux-m68k.org \ --cc=gerg@linux-m68k.org \ --cc=iommu@lists.linux.dev \ --cc=james.quinlan@broadcom.com \ --cc=linux-imx@nxp.com \ --cc=linux-m68k@lists.linux-m68k.org \ --cc=linux-renesas-soc@vger.kernel.org \ --cc=linux-riscv@lists.infradead.org \ --cc=m.szyprowski@samsung.com \ --cc=magnus.damm@gmail.com \ --cc=netdev@vger.kernel.org \ --cc=palmer@dabbelt.com \ --cc=paul.walmsley@sifive.com \ --cc=robin.murphy@arm.com \ --cc=shenwei.wang@nxp.com \ --cc=wei.fang@nxp.com \ --cc=xiaoning.wang@nxp.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: linkBe 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.