Re: [PATCH 1/1] mpi3mr: Fix compilation errors observed on i386 arch

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

 



Hi Sreekanth,

I love your patch! Perhaps something to improve:

[auto build test WARNING on mkp-scsi/for-next]
[also build test WARNING on next-20220714]
[cannot apply to jejb-scsi/for-next linus/master v5.19-rc6]
[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/Sreekanth-Reddy/mpi3mr-Fix-compilation-errors-on-i386-arch/20220716-211058
base:   https://git.kernel.org/pub/scm/linux/kernel/git/mkp/scsi.git for-next
config: i386-randconfig-a013 (https://download.01.org/0day-ci/archive/20220717/202207170253.TJixMaQt-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 07022e6cf9b5b3baa642be53d0b3c3f1c403dbfd)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://github.com/intel-lab-lkp/linux/commit/1fe83692304d301bd0737ed16c8bd1bcd8c0fa90
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Sreekanth-Reddy/mpi3mr-Fix-compilation-errors-on-i386-arch/20220716-211058
        git checkout 1fe83692304d301bd0737ed16c8bd1bcd8c0fa90
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/scsi/mpi3mr/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All warnings (new ones prefixed by >>):

>> drivers/scsi/mpi3mr/mpi3mr_os.c:1663:3: warning: 'memcpy' will always overflow; destination buffer has size 4, but size argument is 8 [-Wfortify-source]
                   memcpy((char *)&tg, fwevt->event_data, sizeof(u64));
                   ^
   arch/x86/include/asm/string_32.h:150:25: note: expanded from macro 'memcpy'
   #define memcpy(t, f, n) __builtin_memcpy(t, f, n)
                           ^
   1 warning generated.


vim +/memcpy +1663 drivers/scsi/mpi3mr/mpi3mr_os.c

  1601	
  1602	/**
  1603	 * mpi3mr_fwevt_bh - Firmware event bottomhalf handler
  1604	 * @mrioc: Adapter instance reference
  1605	 * @fwevt: Firmware event reference
  1606	 *
  1607	 * Identifies the firmware event and calls corresponding bottomg
  1608	 * half handler and sends event acknowledgment if required.
  1609	 *
  1610	 * Return: Nothing.
  1611	 */
  1612	static void mpi3mr_fwevt_bh(struct mpi3mr_ioc *mrioc,
  1613		struct mpi3mr_fwevt *fwevt)
  1614	{
  1615		mpi3mr_fwevt_del_from_list(mrioc, fwevt);
  1616		mrioc->current_event = fwevt;
  1617	
  1618		if (mrioc->stop_drv_processing)
  1619			goto out;
  1620	
  1621		if (!fwevt->process_evt)
  1622			goto evt_ack;
  1623	
  1624		switch (fwevt->event_id) {
  1625		case MPI3_EVENT_DEVICE_ADDED:
  1626		{
  1627			struct mpi3_device_page0 *dev_pg0 =
  1628			    (struct mpi3_device_page0 *)fwevt->event_data;
  1629			mpi3mr_report_tgtdev_to_host(mrioc,
  1630			    le16_to_cpu(dev_pg0->persistent_id));
  1631			break;
  1632		}
  1633		case MPI3_EVENT_DEVICE_INFO_CHANGED:
  1634		{
  1635			mpi3mr_devinfochg_evt_bh(mrioc,
  1636			    (struct mpi3_device_page0 *)fwevt->event_data);
  1637			break;
  1638		}
  1639		case MPI3_EVENT_DEVICE_STATUS_CHANGE:
  1640		{
  1641			mpi3mr_devstatuschg_evt_bh(mrioc, fwevt);
  1642			break;
  1643		}
  1644		case MPI3_EVENT_SAS_TOPOLOGY_CHANGE_LIST:
  1645		{
  1646			mpi3mr_sastopochg_evt_bh(mrioc, fwevt);
  1647			break;
  1648		}
  1649		case MPI3_EVENT_PCIE_TOPOLOGY_CHANGE_LIST:
  1650		{
  1651			mpi3mr_pcietopochg_evt_bh(mrioc, fwevt);
  1652			break;
  1653		}
  1654		case MPI3_EVENT_LOG_DATA:
  1655		{
  1656			mpi3mr_logdata_evt_bh(mrioc, fwevt);
  1657			break;
  1658		}
  1659		case MPI3MR_DRIVER_EVENT_TG_QD_REDUCTION:
  1660		{
  1661			struct mpi3mr_throttle_group_info *tg;
  1662	
> 1663			memcpy((char *)&tg, fwevt->event_data, sizeof(u64));
  1664			dprint_event_bh(mrioc,
  1665			    "qd reduction event processed for tg_id(%d) reduction_needed(%d)\n",
  1666			    tg->id, tg->need_qd_reduction);
  1667			if (tg->need_qd_reduction) {
  1668				mpi3mr_set_qd_for_all_vd_in_tg(mrioc, tg);
  1669				tg->need_qd_reduction = 0;
  1670			}
  1671			break;
  1672		}
  1673		default:
  1674			break;
  1675		}
  1676	
  1677	evt_ack:
  1678		if (fwevt->send_ack)
  1679			mpi3mr_process_event_ack(mrioc, fwevt->event_id,
  1680			    fwevt->evt_ctx);
  1681	out:
  1682		/* Put fwevt reference count to neutralize kref_init increment */
  1683		mpi3mr_fwevt_put(fwevt);
  1684		mrioc->current_event = NULL;
  1685	}
  1686	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux