[linux-next:master 10391/10906] drivers/scsi/mpi3mr/mpi3mr_os.c:389:41: sparse: sparse: cast to restricted __le64

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux