tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 6014cfa5bf32cf8c5c58b3cfd5ee0e1542c8a825 commit: c196bc4dce42bdcc2c69ec106d176f427c56003a [10391/10906] scsi: mpi3mr: Reduce VD queue depth on detecting throttling config: x86_64-allmodconfig (https://download.01.org/0day-ci/archive/20220717/202207171205.dVOd2fGM-lkp@xxxxxxxxx/config) compiler: gcc-11 (Debian 11.3.0-3) 11.3.0 reproduce: # apt-get install sparse # sparse version: v0.6.4-39-gce1a6720-dirty # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=c196bc4dce42bdcc2c69ec106d176f427c56003a git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout c196bc4dce42bdcc2c69ec106d176f427c56003a # save the config file mkdir build_dir && cp config build_dir/.config make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/misc/lkdtm/ drivers/platform/surface/ drivers/platform/x86/intel/ drivers/scsi/mpi3mr/ kernel/trace/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@xxxxxxxxx> sparse warnings: (new ones prefixed by >>) >> drivers/scsi/mpi3mr/mpi3mr_os.c:389:41: sparse: sparse: cast to restricted __le64 >> drivers/scsi/mpi3mr/mpi3mr_os.c:1663:23: sparse: sparse: cast from restricted __le64 drivers/scsi/mpi3mr/mpi3mr_os.c:2592:82: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le16 [usertype] application_tag_translation_mask @@ got int @@ drivers/scsi/mpi3mr/mpi3mr_os.c:2592:82: sparse: expected restricted __le16 [usertype] application_tag_translation_mask drivers/scsi/mpi3mr/mpi3mr_os.c:2592:82: sparse: got int vim +389 drivers/scsi/mpi3mr/mpi3mr_os.c 358 359 /** 360 * mpi3mr_queue_qd_reduction_event - Queue TG QD reduction event 361 * @mrioc: Adapter instance reference 362 * @tg: Throttle group information pointer 363 * 364 * Accessor to queue on synthetically generated driver event to 365 * the event worker thread, the driver event will be used to 366 * reduce the QD of all VDs in the TG from the worker thread. 367 * 368 * Return: None. 369 */ 370 static void mpi3mr_queue_qd_reduction_event(struct mpi3mr_ioc *mrioc, 371 struct mpi3mr_throttle_group_info *tg) 372 { 373 struct mpi3mr_fwevt *fwevt; 374 u16 sz = sizeof(struct mpi3mr_throttle_group_info *); 375 376 /* 377 * If the QD reduction event is already queued due to throttle and if 378 * the QD is not restored through device info change event 379 * then dont queue further reduction events 380 */ 381 if (tg->fw_qd != tg->modified_qd) 382 return; 383 384 fwevt = mpi3mr_alloc_fwevt(sz); 385 if (!fwevt) { 386 ioc_warn(mrioc, "failed to queue TG QD reduction event\n"); 387 return; 388 } > 389 *(__le64 *)fwevt->event_data = (__le64)tg; 390 fwevt->mrioc = mrioc; 391 fwevt->event_id = MPI3MR_DRIVER_EVENT_TG_QD_REDUCTION; 392 fwevt->send_ack = 0; 393 fwevt->process_evt = 1; 394 fwevt->evt_ctx = 0; 395 fwevt->event_data_size = sz; 396 tg->modified_qd = max_t(u16, (tg->fw_qd * tg->qd_reduction) / 10, 8); 397 398 dprint_event_bh(mrioc, "qd reduction event queued for tg_id(%d)\n", 399 tg->id); 400 mpi3mr_fwevt_add_to_list(mrioc, fwevt); 401 } 402 -- 0-DAY CI Kernel Test Service https://01.org/lkp