From: kernel test robot <lkp@intel.com>
To: "Mike Rapoport (Microsoft)" <rppt@kernel.org>,
Dave Hansen <dave.hansen@linux.intel.com>
Cc: oe-kbuild-all@lists.linux.dev, Andy Lutomirski <luto@kernel.org>,
Borislav Petkov <bp@alien8.de>,
Ihor Solodrai <ihor.solodrai@linux.dev>,
Ingo Molnar <mingo@redhat.com>, Mike Rapoport <rppt@kernel.org>,
Nathan Chancellor <nathan@kernel.org>,
"H. Peter Anvin" <hpa@zytor.com>,
Peter Zijlstra <peterz@infradead.org>,
Thomas Gleixner <tglx@kernel.org>,
x86@kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v2] x86/mm/pat: use pr_warn() for early W^X warnings
Date: Sat, 12 Sep 2026 09:23:35 +0800 [thread overview]
Message-ID: <202609120931.Bo3Gyiqu-lkp@intel.com> (raw)
In-Reply-To: <20260911-fixes-verify-rwx-v2-1-e2cde39b6693@kernel.org>
Hi Mike,
kernel test robot noticed the following build errors:
[auto build test ERROR on ebaf7c9bbb1e16523d7036e7e1225ad2dfcc6482]
url: https://github.com/intel-lab-lkp/linux/commits/Mike-Rapoport-Microsoft/x86-mm-pat-use-pr_warn-for-early-W-X-warnings/20260911-142843
base: ebaf7c9bbb1e16523d7036e7e1225ad2dfcc6482
patch link: https://lore.kernel.org/r/20260911-fixes-verify-rwx-v2-1-e2cde39b6693%40kernel.org
patch subject: [PATCH v2] x86/mm/pat: use pr_warn() for early W^X warnings
config: i386-allnoconfig (https://download.01.org/0day-ci/archive/20260912/202609120931.Bo3Gyiqu-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260912/202609120931.Bo3Gyiqu-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202609120931.Bo3Gyiqu-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from include/asm-generic/bug.h:31,
from arch/x86/include/asm/bug.h:195,
from arch/x86/include/asm/alternative.h:9,
from arch/x86/include/asm/barrier.h:5,
from include/asm-generic/bitops/generic-non-atomic.h:7,
from include/linux/bitops.h:28,
from include/linux/log2.h:12,
from arch/x86/include/asm/div64.h:8,
from include/linux/math.h:6,
from include/linux/math64.h:6,
from include/linux/time.h:6,
from include/linux/stat.h:19,
from include/linux/fs_dirent.h:5,
from include/linux/fs/super_types.h:5,
from include/linux/fs/super.h:5,
from include/linux/fs.h:5,
from include/linux/highmem.h:5,
from arch/x86/mm/pat/set_memory.c:6:
arch/x86/mm/pat/set_memory.c: In function 'verify_rwx':
>> arch/x86/mm/pat/set_memory.c:708:30: error: expected ')' before numeric constant
708 | pr_warn_once(1, "CPA detected W^X violation: %016llx -> %016llx range: 0x%016lx - 0x%016lx PFN %lx\n",
| ^
include/linux/printk.h:483:25: note: in definition of macro 'printk_index_wrap'
483 | _p_func(_fmt, ##__VA_ARGS__); \
| ^~~~
include/linux/once_lite.h:31:25: note: in expansion of macro 'printk'
31 | func(__VA_ARGS__); \
| ^~~~
include/linux/once_lite.h:11:9: note: in expansion of macro 'DO_ONCE_LITE_IF'
11 | DO_ONCE_LITE_IF(true, func, ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
include/linux/printk.h:650:9: note: in expansion of macro 'DO_ONCE_LITE'
650 | DO_ONCE_LITE(printk, fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~~
include/linux/printk.h:669:9: note: in expansion of macro 'printk_once'
669 | printk_once(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~
include/linux/printk.h:669:34: note: in expansion of macro 'pr_fmt'
669 | printk_once(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~
arch/x86/mm/pat/set_memory.c:708:17: note: in expansion of macro 'pr_warn_once'
708 | pr_warn_once(1, "CPA detected W^X violation: %016llx -> %016llx range: 0x%016lx - 0x%016lx PFN %lx\n",
| ^~~~~~~~~~~~
include/linux/printk.h:483:24: note: to match this '('
483 | _p_func(_fmt, ##__VA_ARGS__); \
| ^
include/linux/printk.h:511:26: note: in expansion of macro 'printk_index_wrap'
511 | #define printk(fmt, ...) printk_index_wrap(_printk, fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~~~
include/linux/once_lite.h:31:25: note: in expansion of macro 'printk'
31 | func(__VA_ARGS__); \
| ^~~~
include/linux/once_lite.h:11:9: note: in expansion of macro 'DO_ONCE_LITE_IF'
11 | DO_ONCE_LITE_IF(true, func, ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
include/linux/printk.h:650:9: note: in expansion of macro 'DO_ONCE_LITE'
650 | DO_ONCE_LITE(printk, fmt, ##__VA_ARGS__)
| ^~~~~~~~~~~~
include/linux/printk.h:669:9: note: in expansion of macro 'printk_once'
669 | printk_once(KERN_WARNING pr_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~
arch/x86/mm/pat/set_memory.c:708:17: note: in expansion of macro 'pr_warn_once'
708 | pr_warn_once(1, "CPA detected W^X violation: %016llx -> %016llx range: 0x%016lx - 0x%016lx PFN %lx\n",
| ^~~~~~~~~~~~
vim +708 arch/x86/mm/pat/set_memory.c
667
668 /*
669 * Validate strict W^X semantics.
670 */
671 static inline pgprot_t verify_rwx(pgprot_t old, pgprot_t new, unsigned long start,
672 unsigned long pfn, unsigned long npg,
673 bool nx, bool rw)
674 {
675 unsigned long end;
676
677 /*
678 * 32-bit has some unfixable W+X issues, like EFI code
679 * and writeable data being in the same page. Disable
680 * detection and enforcement there.
681 */
682 if (IS_ENABLED(CONFIG_X86_32))
683 return new;
684
685 /* Only verify when NX is supported: */
686 if (!(__supported_pte_mask & _PAGE_NX))
687 return new;
688
689 if (!((pgprot_val(old) ^ pgprot_val(new)) & (_PAGE_RW | _PAGE_NX)))
690 return new;
691
692 if ((pgprot_val(new) & (_PAGE_RW | _PAGE_NX)) != _PAGE_RW)
693 return new;
694
695 /* Non-leaf translation entries can disable writing or execution. */
696 if (!rw || nx)
697 return new;
698
699 end = start + npg * PAGE_SIZE - 1;
700
701 /*
702 * If the kernel text is still RWX, gently complain, this could be a
703 * false positive.
704 * Once debug_checkwx() becomes mandatory for CONFIG_STRICT_KERNEL_RWX,
705 * the warning can be removed completely.
706 */
707 if (!kernel_set_to_readonly) {
> 708 pr_warn_once(1, "CPA detected W^X violation: %016llx -> %016llx range: 0x%016lx - 0x%016lx PFN %lx\n",
709 (unsigned long long)pgprot_val(old),
710 (unsigned long long)pgprot_val(new),
711 start, end, pfn);
712 return new;
713 }
714
715 WARN_ONCE(1, "CPA detected W^X violation: %016llx -> %016llx range: 0x%016lx - 0x%016lx PFN %lx\n",
716 (unsigned long long)pgprot_val(old),
717 (unsigned long long)pgprot_val(new),
718 start, end, pfn);
719
720 /*
721 * For now, allow all permission change attempts by returning the
722 * attempted permissions. This can 'return old' to actively
723 * refuse the permission change at a later time.
724 */
725 return new;
726 }
727
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2026-09-12 1:25 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-11 11:28 Mike Rapoport (Microsoft)
2026-09-12 1:23 ` kernel test robot
2026-09-12 1:23 ` kernel test robot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202609120931.Bo3Gyiqu-lkp@intel.com \
--to=lkp@intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=ihor.solodrai@linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=nathan@kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=peterz@infradead.org \
--cc=rppt@kernel.org \
--cc=tglx@kernel.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®