* Re: [PATCH v3 16/16] x86/paravirt: Use alternatives for MSR access with paravirt
2026-02-18 13:49 ` [PATCH v3 16/16] x86/paravirt: Use alternatives for MSR access with paravirt kernel test robot
@ 2026-02-18 15:49 ` Juergen Gross
0 siblings, 0 replies; 2+ messages in thread
From: Juergen Gross @ 2026-02-18 15:49 UTC (permalink / raw)
To: kernel test robot, linux-kernel, x86, virtualization
Cc: llvm, oe-kbuild-all, Ajay Kaher, Alexey Makhalov,
Broadcom internal kernel review list, Thomas Gleixner,
Ingo Molnar, Borislav Petkov, Dave Hansen, H. Peter Anvin
[-- Attachment #1.1.1: Type: text/plain, Size: 10125 bytes --]
On 18.02.26 14:49, kernel test robot wrote:
> Hi Juergen,
>
> kernel test robot noticed the following build errors:
>
> [auto build test ERROR on linus/master]
> [also build test ERROR on next-20260217]
> [cannot apply to tip/x86/core kvm/queue kvm/next kvm/linux-next tip/x86/tdx v6.19]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>
> url: https://github.com/intel-lab-lkp/linux/commits/Juergen-Gross/x86-alternative-Support-alt_replace_call-with-instructions-after-call/20260218-163031
> base: linus/master
> patch link: https://lore.kernel.org/r/20260218082133.400602-17-jgross%40suse.com
> patch subject: [PATCH v3 16/16] x86/paravirt: Use alternatives for MSR access with paravirt
> config: x86_64-randconfig-001-20260218 (https://download.01.org/0day-ci/archive/20260218/202602182111.84MpXRx4-lkp@intel.com/config)
> compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260218/202602182111.84MpXRx4-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/202602182111.84MpXRx4-lkp@intel.com/
>
> All errors (new ones prefixed by >>):
>
> In file included from arch/x86/kernel/asm-offsets.c:9:
> In file included from include/linux/crypto.h:18:
> In file included from include/linux/slab.h:17:
> In file included from include/linux/gfp.h:7:
> In file included from include/linux/mmzone.h:22:
> In file included from include/linux/mm_types.h:16:
> In file included from include/linux/uprobes.h:18:
> In file included from include/linux/timer.h:6:
> In file included from include/linux/ktime.h:25:
> In file included from include/linux/jiffies.h:10:
> In file included from include/linux/time.h:60:
> In file included from include/linux/time32.h:13:
> In file included from include/linux/timex.h:67:
> In file included from arch/x86/include/asm/timex.h:6:
> In file included from arch/x86/include/asm/tsc.h:11:
> In file included from arch/x86/include/asm/msr.h:300:
>>> arch/x86/include/asm/paravirt-msr.h:114:23: error: unsupported inline asm: input with type 'u64' (aka 'unsigned long long') matching output with type 'int'
> 114 | PV_WRMSR_CONST(msr, val, EX_TYPE_WRMSR, write_msr, err);
> | ^~~ ~~~
> arch/x86/include/asm/paravirt-msr.h:91:16: note: expanded from macro 'PV_WRMSR_CONST'
> 89 | : [err] "=a" (__err), "=d" (rdx), ASM_CALL_CONSTRAINT \
> | ~~~~~
> 90 | : paravirt_ptr(pv_ops_msr, __func), \
> 91 | [val] "0" (__val), "1" ((__val) >> 32), \
> | ^~~~~
> arch/x86/include/asm/paravirt-msr.h:116:21: error: unsupported inline asm: input with type 'u64' (aka 'unsigned long long') matching output with type 'int'
> 116 | PV_WRMSR_VAR(msr, val, EX_TYPE_WRMSR, write_msr, err);
> | ^~~ ~~~
> arch/x86/include/asm/paravirt-msr.h:73:10: note: expanded from macro 'PV_WRMSR_VAR'
> 71 | : [err] "=a" (__err), "=d" (rdx), ASM_CALL_CONSTRAINT \
> | ~~~~~
> 72 | : paravirt_ptr(pv_ops_msr, __func), \
> 73 | "0" (__val), "1" ((__val) >> 32), "c" (__msr) \
> | ^~~~~
> arch/x86/include/asm/paravirt-msr.h:136:23: error: unsupported inline asm: input with type 'u64' (aka 'unsigned long long') matching output with type 'int'
> 136 | PV_WRMSR_CONST(msr, val, EX_TYPE_WRMSR_SAFE, write_msr_safe, err);
> | ^~~ ~~~
> arch/x86/include/asm/paravirt-msr.h:91:16: note: expanded from macro 'PV_WRMSR_CONST'
> 89 | : [err] "=a" (__err), "=d" (rdx), ASM_CALL_CONSTRAINT \
> | ~~~~~
> 90 | : paravirt_ptr(pv_ops_msr, __func), \
> 91 | [val] "0" (__val), "1" ((__val) >> 32), \
> | ^~~~~
> arch/x86/include/asm/paravirt-msr.h:138:21: error: unsupported inline asm: input with type 'u64' (aka 'unsigned long long') matching output with type 'int'
> 138 | PV_WRMSR_VAR(msr, val, EX_TYPE_WRMSR_SAFE, write_msr_safe, err);
> | ^~~ ~~~
> arch/x86/include/asm/paravirt-msr.h:73:10: note: expanded from macro 'PV_WRMSR_VAR'
> 71 | : [err] "=a" (__err), "=d" (rdx), ASM_CALL_CONSTRAINT \
> | ~~~~~
> 72 | : paravirt_ptr(pv_ops_msr, __func), \
> 73 | "0" (__val), "1" ((__val) >> 32), "c" (__msr) \
> | ^~~~~
> In file included from arch/x86/kernel/asm-offsets.c:10:
> In file included from include/crypto/aria.h:22:
> In file included from include/linux/module.h:20:
> In file included from include/linux/elf.h:6:
> In file included from arch/x86/include/asm/elf.h:10:
> In file included from arch/x86/include/asm/ia32.h:7:
> In file included from include/linux/compat.h:17:
> In file included from include/linux/fs.h:5:
> In file included from include/linux/fs/super.h:5:
> In file included from include/linux/fs/super_types.h:13:
> In file included from include/linux/percpu-rwsem.h:7:
> In file included from include/linux/rcuwait.h:6:
> In file included from include/linux/sched/signal.h:6:
> include/linux/signal.h:98:11: warning: array index 3 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
> 98 | return (set->sig[3] | set->sig[2] |
> | ^ ~
> arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
> 24 | unsigned long sig[_NSIG_WORDS];
> | ^
> In file included from arch/x86/kernel/asm-offsets.c:10:
> In file included from include/crypto/aria.h:22:
> In file included from include/linux/module.h:20:
> In file included from include/linux/elf.h:6:
> In file included from arch/x86/include/asm/elf.h:10:
> In file included from arch/x86/include/asm/ia32.h:7:
> In file included from include/linux/compat.h:17:
> In file included from include/linux/fs.h:5:
> In file included from include/linux/fs/super.h:5:
> In file included from include/linux/fs/super_types.h:13:
> In file included from include/linux/percpu-rwsem.h:7:
> In file included from include/linux/rcuwait.h:6:
> In file included from include/linux/sched/signal.h:6:
> include/linux/signal.h:98:25: warning: array index 2 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
> 98 | return (set->sig[3] | set->sig[2] |
> | ^ ~
> arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
> 24 | unsigned long sig[_NSIG_WORDS];
> | ^
> In file included from arch/x86/kernel/asm-offsets.c:10:
> In file included from include/crypto/aria.h:22:
> In file included from include/linux/module.h:20:
> In file included from include/linux/elf.h:6:
> In file included from arch/x86/include/asm/elf.h:10:
> In file included from arch/x86/include/asm/ia32.h:7:
> In file included from include/linux/compat.h:17:
> In file included from include/linux/fs.h:5:
> In file included from include/linux/fs/super.h:5:
> In file included from include/linux/fs/super_types.h:13:
> In file included from include/linux/percpu-rwsem.h:7:
> In file included from include/linux/rcuwait.h:6:
> In file included from include/linux/sched/signal.h:6:
> include/linux/signal.h:99:4: warning: array index 1 is past the end of the array (that has type 'unsigned long[1]') [-Warray-bounds]
> 99 | set->sig[1] | set->sig[0]) == 0;
> | ^ ~
> arch/x86/include/asm/signal.h:24:2: note: array 'sig' declared here
> 24 | unsigned long sig[_NSIG_WORDS];
> | ^
> In file included from arch/x86/kernel/asm-offsets.c:10:
> In file included from include/crypto/aria.h:22:
> In file included from include/linux/module.h:20:
> In file included from include/linux/elf.h:6:
> In file included from arch/x86/include/asm/elf.h:10:
> In file included from arch/x86/include/asm/ia32.h:7:
> In file included from include/linux/compat.h:17:
> In file included from include/linux/fs.h:5:
>
>
> vim +114 arch/x86/include/asm/paravirt-msr.h
>
> 108
> 109 static __always_inline void write_msr(u32 msr, u64 val)
> 110 {
> 111 int err;
> 112
> 113 if (__builtin_constant_p(msr))
> > 114 PV_WRMSR_CONST(msr, val, EX_TYPE_WRMSR, write_msr, err);
> 115 else
> 116 PV_WRMSR_VAR(msr, val, EX_TYPE_WRMSR, write_msr, err);
> 117 }
> 118
>
Will be fixed in V4.
Juergen
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3743 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread