Re: [RFC PATCH 02/34] ARM: mm: make 2-level pgd_t a scalar

"David Hildenbrand (Arm)" <[email protected]> Wed, 15 Jul 2026 11:41:41 +0200
Newsgroups org.kernel.vger.linux-csky,dev.linux.lists.loongarch,org.infradead.lists.kvm-riscv,org.infradead.lists.linux-riscv,org.kernel.vger.linux-arch,org.kernel.vger.linux-kernel,org.kernel.vger.linux-m68k,org.kernel.vger.linux-mips,org.kernel.vger.linux-openrisc
Message-ID <[email protected]>
On 7/15/26 08:15, Arnd Bergmann wrote:
> On Mon, Jul 13, 2026, at 15:55, Yeoreum Yun wrote:
> 
>>  typedef pteval_t pte_t;
>>  typedef pmdval_t pmd_t;
>> -typedef pmdval_t pgd_t[2];
>> +typedef pgdval_t pgd_t;
>>  typedef pteval_t pgprot_t;
>>
> 
> Just noticed one more issue here, I think this will break these
> two macros that now access four entries instead of two:
> 
> #define copy_pmd(pmdpd,pmdps)           \
>         do {                            \
>                 pmdpd[0] = pmdps[0];    \
>                 pmdpd[1] = pmdps[1];    \
>                 flush_pmd_entry(pmdpd); \
>         } while (0)
> 
> #define pmd_clear(pmdp)                 \
>         do {                            \
>                 pmdp[0] = __pmd(0);     \
>                 pmdp[1] = __pmd(0);     \
>                 clean_pmd_entry(pmdp);  \
>         } while (0)

Yeah, let me look into it now that I understand roughly which tricks ARM is
playing there :)

-- 
Cheers,

David