Re: [PATCH 19/26] x86/tdx: Make pages shared in ioremap()

From: Dave Hansen
Date: Tue Jan 04 2022 - 20:38:36 EST


On 1/4/22 4:57 PM, Kirill A. Shutemov wrote:
>> My read of STRICT_MM_TYPECHECKS was that "typedef unsigned long
>> pgprot_t" produces better code, but "typedef struct { unsigned long
>> pgprot; } pgprot_t;" produces better type checking.
> Apart from pgprot_t, __pgprot() and pgrot_val() helpers are defined
> differently depending on STRICT_MM_TYPECHECKS.
>
>> I just compiled these patches on sparc with no issues.
> Hm. I can't see how
>
> #define pgprot_val(x) (x)
>
> can work to access value for the pgprot_t defined as a struct.

Oh, I must just be compiling with the strict type checks on all the
time. I do really wonder if these are useful these days or if the hacks
were for ancient compilers.

In any case, this would be pretty easy to fix by just removing the
!STRICT_MM_TYPECHECKS pgprot_val() and defning the STRICT_MM_TYPECHECKS
universally.