tree: https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git topic/ppc-kvm head: 51696f39cbee5bb684e7959c0c98b5f54548aa34 commit: 023c3c96ca4d196c09d554d5a98900406e4d7ecb [9/41] KVM: PPC: Book3S HV P9: implement kvmppc_xive_pull_vcpu in C config: powerpc-allyesconfig (attached as .config) compiler: powerpc64-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # apt-get install sparse # sparse version: v0.6.3-341-g8af24329-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/commit/?id=023c3c96ca4d196c09d554d5a98900406e4d7ecb git remote add powerpc https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git git fetch --no-tags powerpc topic/ppc-kvm git checkout 023c3c96ca4d196c09d554d5a98900406e4d7ecb # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' W=1 ARCH=powerpc If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot sparse warnings: (new ones prefixed by >>) arch/powerpc/kvm/book3s_xive.c: note: in included file: arch/powerpc/kvm/book3s_xive_template.c:26:15: sparse: sparse: cast to restricted __be16 arch/powerpc/kvm/book3s_xive_template.c:339:39: sparse: sparse: incorrect type in initializer (different base types) @@ expected restricted __be64 [usertype] qw1 @@ got unsigned long @@ arch/powerpc/kvm/book3s_xive_template.c:339:39: sparse: expected restricted __be64 [usertype] qw1 arch/powerpc/kvm/book3s_xive_template.c:339:39: sparse: got unsigned long arch/powerpc/kvm/book3s_xive.c:79:49: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned long v @@ got restricted __be64 [usertype] w01 @@ arch/powerpc/kvm/book3s_xive.c:79:49: sparse: expected unsigned long v arch/powerpc/kvm/book3s_xive.c:79:49: sparse: got restricted __be64 [usertype] w01 arch/powerpc/kvm/book3s_xive.c:80:32: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected unsigned int v @@ got restricted __be32 [usertype] xive_cam_word @@ arch/powerpc/kvm/book3s_xive.c:80:32: sparse: expected unsigned int v arch/powerpc/kvm/book3s_xive.c:80:32: sparse: got restricted __be32 [usertype] xive_cam_word >> arch/powerpc/kvm/book3s_xive.c:151:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be64 [usertype] w01 @@ got unsigned long @@ arch/powerpc/kvm/book3s_xive.c:151:41: sparse: expected restricted __be64 [usertype] w01 arch/powerpc/kvm/book3s_xive.c:151:41: sparse: got unsigned long vim +151 arch/powerpc/kvm/book3s_xive.c 129 130 /* 131 * Pull a vcpu's context from the XIVE on guest exit. 132 * This assumes we are in virtual mode (MMU on) 133 */ 134 void kvmppc_xive_pull_vcpu(struct kvm_vcpu *vcpu) 135 { 136 void __iomem *tima = local_paca->kvm_hstate.xive_tima_virt; 137 138 if (!vcpu->arch.xive_pushed) 139 return; 140 141 /* 142 * Should not have been pushed if there is no tima 143 */ 144 if (WARN_ON(!tima)) 145 return; 146 147 eieio(); 148 /* First load to pull the context, we ignore the value */ 149 __raw_readl(tima + TM_SPC_PULL_OS_CTX); 150 /* Second load to recover the context state (Words 0 and 1) */ > 151 vcpu->arch.xive_saved_state.w01 = __raw_readq(tima + TM_QW1_OS); 152 153 /* Fixup some of the state for the next load */ 154 vcpu->arch.xive_saved_state.lsmfb = 0; 155 vcpu->arch.xive_saved_state.ack = 0xff; 156 vcpu->arch.xive_pushed = 0; 157 eieio(); 158 } 159 EXPORT_SYMBOL_GPL(kvmppc_xive_pull_vcpu); 160 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org