Re: [PATCH 2/7] x86/mm: Drop page table entry address output from pxd_ERROR()

From: Anshuman Khandual
Date: Sun Sep 15 2024 - 22:54:42 EST




On 9/13/24 22:51, Dave Hansen wrote:
> On 9/13/24 01:44, Anshuman Khandual wrote:
>> This drops page table entry address output from all pxd_ERROR() definitions
>> which now matches with other architectures. This also prevents build issues
>> while transitioning into pxdp_get() based page table entry accesses.
>
> Could you be a _little_ more specific than "build issues"? Is it that
> you want to do:
>
> void pmd_clear_bad(pmd_t *pmd)
> {
> - pmd_ERROR(*pmd);
> + pmd_ERROR(pmdp_get(pmd));
> pmd_clear(pmd);
> }
>
> But the pmd_ERROR() macro would expand that to:
>
> &pmdp_get(pmd)
>
> which is nonsense?

Yes, that's the one which fails the build with the following warning.

error: lvalue required as unary '&' operand

Will update the commit message with these details about the build problem.

>
> Having the PTEs' kernel addresses _is_ handy, but I guess they're
> scrambled on most end users' systems now and anybody that's actively
> debugging can just use a kprobe or something to dump the pmd_clear_bad()
> argument directly.

Right.