Re: arch/arm64/include/asm/atomic_ll_sc.h:298:9: error: unknown type name 'u128'

Anna-Maria Behnsen
2024-02-26T17:19:10Z

"Arnd Bergmann" <arnd@arndb.de> writes:

> On Mon, Feb 26, 2024, at 17:00, Anna-Maria Behnsen wrote:
>> "Arnd Bergmann" <arnd@arndb.de> writes:
>>> Commit a0d2fcd62ac2 ("vdso/ARM: Make union vdso_data_store
>>> available for all architectures") introduced a reference to
>>> the asm/page.h in include/vdso/datapage.h, but this is outside
>>> of the vdso/*.h namespace and doesn't work in the compat vdso.
>>
>> But the asm namespace works for the vdso namespace. Only linux headers
>> do not work, or am I wrong?
>
> The vdso namespace was added to have something that works for
> userspace code in both compat 32-bit mode and native (32 or
> 64) bit mode, while anything outside of include/vdso may not
> work here.
>
>> PAGE_SIZE is defined in asm/page-def.h for arm64. So this could be a
>> fast fix (tested with clang-14):
>>
>> ---8<----
>> --- a/include/vdso/datapage.h
>> +++ b/include/vdso/datapage.h
>> @@ -19,7 +19,11 @@
>> #include <vdso/time32.h>
>> #include <vdso/time64.h>
>>
>> +#ifdef CONFIG_ARM64
>> +#include <asm/page-def.h>
>> +#else
>> #include <asm/page.h>
>> +#endif
>>
>> #ifdef CONFIG_ARCH_HAS_VDSO_DATA
>> #include <asm/vdso/data.h>
>> ---8<---
>
> I've sent my own patch now, which is something we probably want
> anyway, but is obviously much more invasive thank your four-line
> patch.

Yes I saw it already.

> Maybe we can put your quick fix in the tip tree for the moment
> and I put my patches into the asm-generic tree, then
> we can do the trivial cleanup from my final patch later.
>

I'll send a quick fix and reference there to your future cleanup queue.

Thanks,

Anna-Maria