Ping? On 03.05.22 15:22, Juergen Gross wrote: > x86_has_pat_wp() is using a wrong test, as it relies on the normal > PAT configuration used by the kernel. In case the PAT MSR has been > setup by another entity (e.g. BIOS or Xen hypervisor) it might return > false even if the PAT configuration is allowing WP mappings. > > Fixes: 1f6f655e01ad ("x86/mm: Add a x86_has_pat_wp() helper") > Signed-off-by: Juergen Gross > --- > arch/x86/mm/init.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c > index d8cfce221275..71e182ebced3 100644 > --- a/arch/x86/mm/init.c > +++ b/arch/x86/mm/init.c > @@ -80,7 +80,8 @@ static uint8_t __pte2cachemode_tbl[8] = { > /* Check that the write-protect PAT entry is set for write-protect */ > bool x86_has_pat_wp(void) > { > - return __pte2cachemode_tbl[_PAGE_CACHE_MODE_WP] == _PAGE_CACHE_MODE_WP; > + return __pte2cachemode_tbl[__cachemode2pte_tbl[_PAGE_CACHE_MODE_WP]] == > + _PAGE_CACHE_MODE_WP; > } > > enum page_cache_mode pgprot2cachemode(pgprot_t pgprot)