Re: [PATCH -fixes] dma-mapping: add default implementation to arch_dma_{set|clear}_uncached

From: Yangyu Chen
Date: Tue Jul 09 2024 - 07:45:36 EST




> On Jul 9, 2024, at 19:19, Christoph Hellwig <hch@xxxxxx> wrote:
>
> On Tue, Jul 09, 2024 at 05:25:29PM +0800, Yangyu Chen wrote:
>> Currently, we have some code in kernel/dma/direct.c which references
>> arch_dma_set_uncached and arch_dma_clear_uncached. However, many
>> architectures do not provide these symbols, and the code currently
>> relies on compiler optimization to cut the unnecessary code. When the
>> compiler fails to optimize it, the code will reference the symbol and
>> cause a link error. I found this bug when developing some new extensions
>> for RISC-V on LLVM. The error message is shown below:
>
> Same comment as for the last one. I think your compiler misbehaves,
> and the typical reason for that would be if you disable all
> optimizations.
>

The reason is that some optimizations failed to apply after adding
some passes. I will fix the compiler later. Whatever, we should not
rely on this optimization to get the code being successfully compiled.