CC: [email protected] CC: [email protected] TO: Sebastian Andrzej Siewior <[email protected]> CC: Thomas Gleixner <[email protected]>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 09162bc32c880a791c6c0668ce0745cf7958f576 commit: a6d996cbd38b42341ad3fce74506b9fdc280e395 x86/alternatives: Acquire pte lock with interrupts enabled date: 3 months ago :::::: branch date: 4 hours ago :::::: commit date: 3 months ago config: x86_64-randconfig-s022-20201115 (attached as .config) compiler: gcc-9 (Debian 9.3.0-15) 9.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.3-107-gaf3512a6-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=a6d996cbd38b42341ad3fce74506b9fdc280e395 git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git git fetch --no-tags linus master git checkout a6d996cbd38b42341ad3fce74506b9fdc280e395 # save the attached .config to linux build tree make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=x86_64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <[email protected]> "sparse warnings: (new ones prefixed by >>)" arch/x86/kernel/alternative.c: note: in included file (through arch/x86/include/asm/msr.h, arch/x86/include/asm/processor.h, arch/x86/include/asm/cpufeature.h, ...): >> arch/x86/include/asm/paravirt.h:765:16: sparse: sparse: context imbalance in >> '__text_poke' - different lock contexts for basic block vim +/__text_poke +765 arch/x86/include/asm/paravirt.h 2e47d3e6c35bb5b include/asm-x86/paravirt.h Glauber de Oliveira Costa 2008-01-30 724 ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 725 /* ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 726 * Generate a thunk around a function which saves all caller-save ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 727 * registers except for the return value. This allows C functions to ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 728 * be called from assembler code where fewer than normal registers are ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 729 * available. It may also help code generation around calls from C ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 730 * code if the common case doesn't use many registers. ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 731 * ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 732 * When a callee is wrapped in a thunk, the caller can assume that all ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 733 * arg regs and all scratch registers are preserved across the ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 734 * call. The return value in rax/eax will not be saved, even for void ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 735 * functions. ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 736 */ 87b240cbe3e51bf arch/x86/include/asm/paravirt.h Josh Poimboeuf 2016-01-21 737 #define PV_THUNK_NAME(func) "__raw_callee_save_" #func ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 738 #define PV_CALLEE_SAVE_REGS_THUNK(func) \ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 739 extern typeof(func) __raw_callee_save_##func; \ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 740 \ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 741 asm(".pushsection .text;" \ 87b240cbe3e51bf arch/x86/include/asm/paravirt.h Josh Poimboeuf 2016-01-21 742 ".globl " PV_THUNK_NAME(func) ";" \ 87b240cbe3e51bf arch/x86/include/asm/paravirt.h Josh Poimboeuf 2016-01-21 743 ".type " PV_THUNK_NAME(func) ", @function;" \ 87b240cbe3e51bf arch/x86/include/asm/paravirt.h Josh Poimboeuf 2016-01-21 744 PV_THUNK_NAME(func) ":" \ 87b240cbe3e51bf arch/x86/include/asm/paravirt.h Josh Poimboeuf 2016-01-21 745 FRAME_BEGIN \ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 746 PV_SAVE_ALL_CALLER_REGS \ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 747 "call " #func ";" \ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 748 PV_RESTORE_ALL_CALLER_REGS \ 87b240cbe3e51bf arch/x86/include/asm/paravirt.h Josh Poimboeuf 2016-01-21 749 FRAME_END \ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 750 "ret;" \ 083db6764821996 arch/x86/include/asm/paravirt.h Josh Poimboeuf 2019-07-17 751 ".size " PV_THUNK_NAME(func) ", .-" PV_THUNK_NAME(func) ";" \ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 752 ".popsection") ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 753 ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 754 /* Get a reference to a callee-save function */ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 755 #define PV_CALLEE_SAVE(func) \ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 756 ((struct paravirt_callee_save) { __raw_callee_save_##func }) ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 757 ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 758 /* Promise that "func" already uses the right calling convention */ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 759 #define __PV_IS_CALLEE_SAVE(func) \ ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 760 ((struct paravirt_callee_save) { func }) ecb93d1ccd0aac6 arch/x86/include/asm/paravirt.h Jeremy Fitzhardinge 2009-01-28 761 6da63eb241a05b0 arch/x86/include/asm/paravirt.h Juergen Gross 2018-08-28 762 #ifdef CONFIG_PARAVIRT_XXL b5908548537ccd3 arch/x86/include/asm/paravirt.h Steven Rostedt 2010-11-10 763 static inline notrace unsigned long arch_local_save_flags(void) 139ec7c416248b9 include/asm-i386/paravirt.h Rusty Russell 2006-12-07 764 { 5c83511bdb9832c arch/x86/include/asm/paravirt.h Juergen Gross 2018-08-28 @765 return PVOP_CALLEE0(unsigned long, irq.save_fl); 139ec7c416248b9 include/asm-i386/paravirt.h Rusty Russell 2006-12-07 766 } 139ec7c416248b9 include/asm-i386/paravirt.h Rusty Russell 2006-12-07 767 :::::: The code at line 765 was first introduced by commit :::::: 5c83511bdb9832c86be20fb86b783356e2f58062 x86/paravirt: Use a single ops structure :::::: TO: Juergen Gross <[email protected]> :::::: CC: Thomas Gleixner <[email protected]> --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/[email protected]
.config.gz
Description: application/gzip
_______________________________________________ kbuild mailing list -- [email protected] To unsubscribe send an email to [email protected]
