diff options
| author | Anup Patel <apatel@ventanamicro.com> | 2025-10-17 21:30:05 -0600 |
|---|---|---|
| committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2025-10-29 14:07:04 +0100 |
| commit | 00b58d2c25d10fecffbebaa0c369fc9d0a6de397 (patch) | |
| tree | d1f6961f8da75461f711845fb1afcce4e31d817c /arch/riscv | |
| parent | c7849e8cb22a9f43207499167aea072694837c68 (diff) | |
| download | linux-00b58d2c25d10fecffbebaa0c369fc9d0a6de397.tar.gz linux-00b58d2c25d10fecffbebaa0c369fc9d0a6de397.tar.bz2 linux-00b58d2c25d10fecffbebaa0c369fc9d0a6de397.zip | |
RISC-V: Define pgprot_dmacoherent() for non-coherent devices
[ Upstream commit ca525d53f994d45c8140968b571372c45f555ac1 ]
The pgprot_dmacoherent() is used when allocating memory for
non-coherent devices and by default pgprot_dmacoherent() is
same as pgprot_noncached() unless architecture overrides it.
Currently, there is no pgprot_dmacoherent() definition for
RISC-V hence non-coherent device memory is being mapped as
IO thereby making CPU access to such memory slow.
Define pgprot_dmacoherent() to be same as pgprot_writecombine()
for RISC-V so that CPU access non-coherent device memory as
NOCACHE which is better than accessing it as IO.
Fixes: ff689fd21cb1 ("riscv: add RISC-V Svpbmt extension support")
Signed-off-by: Anup Patel <apatel@ventanamicro.com>
Tested-by: Han Gao <rabenda.cn@gmail.com>
Tested-by: Guo Ren (Alibaba DAMO Academy) <guoren@kernel.org>
Link: https://lore.kernel.org/r/20250820152316.1012757-1-apatel@ventanamicro.com
Signed-off-by: Paul Walmsley <pjw@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'arch/riscv')
| -rw-r--r-- | arch/riscv/include/asm/pgtable.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h index 332a6bf72b1d..987cfe87e782 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -618,6 +618,8 @@ static inline pgprot_t pgprot_writecombine(pgprot_t _prot) return __pgprot(prot); } +#define pgprot_dmacoherent pgprot_writecombine + /* * THP functions */ |
