lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202508091640.gvFPjI6O-lkp@intel.com>
Date: Sat, 9 Aug 2025 16:17:09 +0800
From: kernel test robot <lkp@...el.com>
To: Abinash Singh <abinashsinghlalotra@...il.com>, bvanassche@....org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
	James.Bottomley@...senpartnership.com,
	abinashsinghlalotra@...il.com, dlemoal@...nel.org,
	linux-kernel@...r.kernel.org, linux-scsi@...r.kernel.org,
	martin.petersen@...cle.com
Subject: Re: [PATCH v5 2/2] scsi: sd: Fix build warning in
 sd_revalidate_disk()

Hi Abinash,

kernel test robot noticed the following build errors:

[auto build test ERROR on jejb-scsi/for-next]
[also build test ERROR on mkp-scsi/for-next linus/master v6.16 next-20250808]
[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/Abinash-Singh/scsi-sd-make-sd_revalidate_disk-return-void/20250809-045941
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi.git for-next
patch link:    https://lore.kernel.org/r/20250808205819.29517-3-abinashsinghlalotra%40gmail.com
patch subject: [PATCH v5 2/2] scsi: sd: Fix build warning in sd_revalidate_disk()
config: x86_64-buildonly-randconfig-002-20250809 (https://download.01.org/0day-ci/archive/20250809/202508091640.gvFPjI6O-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250809/202508091640.gvFPjI6O-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202508091640.gvFPjI6O-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/scsi/sd.c:3709:16: error: call to undeclared function 'size'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    3709 |         lim = kmalloc(size(*lim), GFP_KERNEL);
         |                       ^
   drivers/scsi/sd.c:3709:16: note: did you mean 'ksize'?
   include/linux/slab.h:491:8: note: 'ksize' declared here
     491 | size_t ksize(const void *objp);
         |        ^
   1 error generated.


vim +/size +3709 drivers/scsi/sd.c

  3683	
  3684	/**
  3685	 *	sd_revalidate_disk - called the first time a new disk is seen,
  3686	 *	performs disk spin up, read_capacity, etc.
  3687	 *	@disk: struct gendisk we care about
  3688	 **/
  3689	static void sd_revalidate_disk(struct gendisk *disk)
  3690	{
  3691		struct scsi_disk *sdkp = scsi_disk(disk);
  3692		struct scsi_device *sdp = sdkp->device;
  3693		sector_t old_capacity = sdkp->capacity;
  3694		struct queue_limits *lim = NULL;
  3695		unsigned char *buffer = NULL;
  3696		unsigned int dev_max;
  3697		int err;
  3698	
  3699		SCSI_LOG_HLQUEUE(3, sd_printk(KERN_INFO, sdkp,
  3700					      "sd_revalidate_disk\n"));
  3701	
  3702		/*
  3703		 * If the device is offline, don't try and read capacity or any
  3704		 * of the other niceties.
  3705		 */
  3706		if (!scsi_device_online(sdp))
  3707			goto out;
  3708	
> 3709		lim = kmalloc(size(*lim), GFP_KERNEL);
  3710		if (!lim) {
  3711			sd_printk(KERN_WARNING, sdkp,
  3712				"sd_revalidate_disk: Disk limit allocation failure.\n");
  3713			goto out;
  3714		}
  3715	
  3716		buffer = kmalloc(SD_BUF_SIZE, GFP_KERNEL);
  3717		if (!buffer) {
  3718			sd_printk(KERN_WARNING, sdkp, "sd_revalidate_disk: Memory "
  3719				  "allocation failure.\n");
  3720			goto out;
  3721		}
  3722	
  3723		sd_spinup_disk(sdkp);
  3724	
  3725		*lim = queue_limits_start_update(sdkp->disk->queue);
  3726	
  3727		/*
  3728		 * Without media there is no reason to ask; moreover, some devices
  3729		 * react badly if we do.
  3730		 */
  3731		if (sdkp->media_present) {
  3732			sd_read_capacity(sdkp, lim, buffer);
  3733			/*
  3734			 * Some USB/UAS devices return generic values for mode pages
  3735			 * until the media has been accessed. Trigger a READ operation
  3736			 * to force the device to populate mode pages.
  3737			 */
  3738			if (sdp->read_before_ms)
  3739				sd_read_block_zero(sdkp);
  3740			/*
  3741			 * set the default to rotational.  All non-rotational devices
  3742			 * support the block characteristics VPD page, which will
  3743			 * cause this to be updated correctly and any device which
  3744			 * doesn't support it should be treated as rotational.
  3745			 */
  3746			lim->features |= (BLK_FEAT_ROTATIONAL | BLK_FEAT_ADD_RANDOM);
  3747	
  3748			if (scsi_device_supports_vpd(sdp)) {
  3749				sd_read_block_provisioning(sdkp);
  3750				sd_read_block_limits(sdkp, lim);
  3751				sd_read_block_limits_ext(sdkp);
  3752				sd_read_block_characteristics(sdkp, lim);
  3753				sd_zbc_read_zones(sdkp, lim, buffer);
  3754			}
  3755	
  3756			sd_config_discard(sdkp, lim, sd_discard_mode(sdkp));
  3757	
  3758			sd_print_capacity(sdkp, old_capacity);
  3759	
  3760			sd_read_write_protect_flag(sdkp, buffer);
  3761			sd_read_cache_type(sdkp, buffer);
  3762			sd_read_io_hints(sdkp, buffer);
  3763			sd_read_app_tag_own(sdkp, buffer);
  3764			sd_read_write_same(sdkp, buffer);
  3765			sd_read_security(sdkp, buffer);
  3766			sd_config_protection(sdkp, lim);
  3767		}
  3768	
  3769		/*
  3770		 * We now have all cache related info, determine how we deal
  3771		 * with flush requests.
  3772		 */
  3773		sd_set_flush_flag(sdkp, lim);
  3774	
  3775		/* Initial block count limit based on CDB TRANSFER LENGTH field size. */
  3776		dev_max = sdp->use_16_for_rw ? SD_MAX_XFER_BLOCKS : SD_DEF_XFER_BLOCKS;
  3777	
  3778		/* Some devices report a maximum block count for READ/WRITE requests. */
  3779		dev_max = min_not_zero(dev_max, sdkp->max_xfer_blocks);
  3780		lim->max_dev_sectors = logical_to_sectors(sdp, dev_max);
  3781	
  3782		if (sd_validate_min_xfer_size(sdkp))
  3783			lim->io_min = logical_to_bytes(sdp, sdkp->min_xfer_blocks);
  3784		else
  3785			lim->io_min = 0;
  3786	
  3787		/*
  3788		 * Limit default to SCSI host optimal sector limit if set. There may be
  3789		 * an impact on performance for when the size of a request exceeds this
  3790		 * host limit.
  3791		 */
  3792		lim->io_opt = sdp->host->opt_sectors << SECTOR_SHIFT;
  3793		if (sd_validate_opt_xfer_size(sdkp, dev_max)) {
  3794			lim->io_opt = min_not_zero(lim->io_opt,
  3795					logical_to_bytes(sdp, sdkp->opt_xfer_blocks));
  3796		}
  3797	
  3798		sdkp->first_scan = 0;
  3799	
  3800		set_capacity_and_notify(disk, logical_to_sectors(sdp, sdkp->capacity));
  3801		sd_config_write_same(sdkp, lim);
  3802	
  3803		err = queue_limits_commit_update_frozen(sdkp->disk->queue, lim);
  3804		if (err)
  3805			goto out;
  3806	
  3807		/*
  3808		 * Query concurrent positioning ranges after
  3809		 * queue_limits_commit_update() unlocked q->limits_lock to avoid
  3810		 * deadlock with q->sysfs_dir_lock and q->sysfs_lock.
  3811		 */
  3812		if (sdkp->media_present && scsi_device_supports_vpd(sdp))
  3813			sd_read_cpr(sdkp);
  3814	
  3815		/*
  3816		 * For a zoned drive, revalidating the zones can be done only once
  3817		 * the gendisk capacity is set. So if this fails, set back the gendisk
  3818		 * capacity to 0.
  3819		 */
  3820		if (sd_zbc_revalidate_zones(sdkp))
  3821			set_capacity_and_notify(disk, 0);
  3822	
  3823	 out:
  3824		kfree(lim);
  3825		kfree(buffer);
  3826	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ