Re: [PATCH] dma-direct: Skip cache prep for HighMem coherent allocations
From: Marek Szyprowski
Date: Thu Jan 08 2026 - 08:59:22 EST
On 08.01.2026 11:50, Robin Murphy wrote:
> On 2026-01-02 3:51 pm, Aneesh Kumar K.V (Arm) wrote:
>> dma_direct_alloc() calls arch_dma_prep_coherent() to clean any dirty
>> cache lines from the kernel linear alias before creating a coherent
>> remapping.
>>
>> HighMem pages have no kernel alias mapping, so there are no alias cache
>> lines to clean. Skip arch_dma_prep_coherent() for HighMem allocations.
>
> This is assuming that caches are always cleaned when unmapping
> highmem, and no still-mapped highmem pages are dirty - how is that
> guaranteed? The fact that they're not in the linear map doesn't mean
> they don't necessarily have kernel aliases in either vmalloc
> pagetables or caches.
Right, so it is better to keep this unconditional
arch_dma_prep_coherent() call. I will drop it from dma-mapping-fixes then.
Best regards
--
Marek Szyprowski, PhD
Samsung R&D Institute Poland