lkml.org 
[lkml]   [2023]   [Jun]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Date
SubjectRe: [PATCH 21/21] dma-mapping: replace custom code with generic implementation
On Thu, Apr 13, 2023 at 2:52 PM Arnd Bergmann <arnd@arndb.de> wrote:
> On Thu, Apr 13, 2023, at 14:13, Biju Das wrote:
> > FYI, this patch breaks on RZ/G2L SMARC EVK board and Arnd will send V2
> > for fixing this issue.
> >
> > [10:53] <biju> [ 3.384408] Unable to handle kernel paging request at
> > virtual address 000000004afb0080
>
> Right, sorry about this, I accidentally removed the 'phys_to_virt()'
> conversion on arm64.

Meh, I missed that, so I ended up bisecting this same failure...

This patch is now commit 801f1883c4bb70cc ("dma-mapping: replace
custom code with generic implementation") in esmil/jh7100-dmapool,
and broke booting on R-Car Gen3.

The following gmail-whitespace-damaged patch fixes that:

diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index 97b7cea5eb23aedd..77e0b68b43e5849a 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -15,17 +15,23 @@

static inline void arch_dma_cache_wback(phys_addr_t paddr, size_t size)
{
- dcache_clean_poc(paddr, paddr + size);
+ unsigned long start = (unsigned long)phys_to_virt(paddr);
+
+ dcache_clean_poc(start, start + size);
}

static inline void arch_dma_cache_inv(phys_addr_t paddr, size_t size)
{
- dcache_inval_poc(paddr, paddr + size);
+ unsigned long start = (unsigned long)phys_to_virt(paddr);
+
+ dcache_inval_poc(start, start + size);
}

static inline void arch_dma_cache_wback_inv(phys_addr_t paddr, size_t size)
{
- dcache_clean_inval_poc(paddr, paddr + size);
+ unsigned long start = (unsigned long)phys_to_virt(paddr);
+
+ dcache_clean_inval_poc(start, start + size);
}

static inline bool arch_sync_dma_clean_before_fromdevice(void)
Gr{oetje,eeting}s,
Geert


--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds

\
 
 \ /
  Last update: 2023-06-27 18:53    [W:0.102 / U:0.188 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site