lkml.org 
[lkml]   [2022]   [May]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 3/4] scsi: core: Cap shost max_sectors according to DMA optimum mapping limits
    Hi John,

    url: https://github.com/intel-lab-lkp/linux/commits/John-Garry/DMA-mapping-changes-for-SCSI-core/20220520-163049
    base: https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git next
    config: s390-randconfig-m031-20220519 (https://download.01.org/0day-ci/archive/20220521/202205210545.gkS834ds-lkp@intel.com/config)
    compiler: s390-linux-gcc (GCC) 11.3.0

    If you fix the issue, kindly add following tag where applicable
    Reported-by: kernel test robot <lkp@intel.com>
    Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

    smatch warnings:
    drivers/scsi/hosts.c:243 scsi_add_host_with_dma() warn: variable dereferenced before check 'dma_dev' (see line 228)

    vim +/dma_dev +243 drivers/scsi/hosts.c

    d139b9bd0e52dd James Bottomley 2009-11-05 209 int scsi_add_host_with_dma(struct Scsi_Host *shost, struct device *dev,
    d139b9bd0e52dd James Bottomley 2009-11-05 210 struct device *dma_dev)
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 211 {
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 212 struct scsi_host_template *sht = shost->hostt;
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 213 int error = -EINVAL;
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 214
    91921e016a2199 Hannes Reinecke 2014-06-25 215 shost_printk(KERN_INFO, shost, "%s\n",
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 216 sht->info ? sht->info(shost) : sht->name);
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 217
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 218 if (!shost->can_queue) {
    91921e016a2199 Hannes Reinecke 2014-06-25 219 shost_printk(KERN_ERR, shost,
    91921e016a2199 Hannes Reinecke 2014-06-25 220 "can_queue = 0 no longer supported\n");
    542bd1377a9630 James Bottomley 2008-04-21 221 goto fail;
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 222 }
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 223
    50b6cb3516365c Dexuan Cui 2021-10-07 224 /* Use min_t(int, ...) in case shost->can_queue exceeds SHRT_MAX */
    50b6cb3516365c Dexuan Cui 2021-10-07 225 shost->cmd_per_lun = min_t(int, shost->cmd_per_lun,
    ea2f0f77538c50 John Garry 2021-05-19 226 shost->can_queue);
    ea2f0f77538c50 John Garry 2021-05-19 227
    2ad7ba6ca08593 John Garry 2022-05-20 @228 if (dma_dev->dma_mask) {
    ^^^^^^^^^^^^^^^^^
    The patch adds a new unchecked dereference

    2ad7ba6ca08593 John Garry 2022-05-20 229 shost->max_sectors = min_t(unsigned int, shost->max_sectors,
    2ad7ba6ca08593 John Garry 2022-05-20 230 dma_opt_mapping_size(dma_dev) >> SECTOR_SHIFT);
    2ad7ba6ca08593 John Garry 2022-05-20 231 }
    2ad7ba6ca08593 John Garry 2022-05-20 232
    0a6ac4ee7c2109 Christoph Hellwig 2017-01-03 233 error = scsi_init_sense_cache(shost);
    0a6ac4ee7c2109 Christoph Hellwig 2017-01-03 234 if (error)
    0a6ac4ee7c2109 Christoph Hellwig 2017-01-03 235 goto fail;
    0a6ac4ee7c2109 Christoph Hellwig 2017-01-03 236
    d285203cf647d7 Christoph Hellwig 2014-01-17 237 error = scsi_mq_setup_tags(shost);
    542bd1377a9630 James Bottomley 2008-04-21 238 if (error)
    542bd1377a9630 James Bottomley 2008-04-21 239 goto fail;
    d285203cf647d7 Christoph Hellwig 2014-01-17 240
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 241 if (!shost->shost_gendev.parent)
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 242 shost->shost_gendev.parent = dev ? dev : &platform_bus;
    3c8d9a957d0ae6 James Bottomley 2012-05-04 @243 if (!dma_dev)
    ^^^^^^^^
    The old code checked for NULL

    3c8d9a957d0ae6 James Bottomley 2012-05-04 244 dma_dev = shost->shost_gendev.parent;
    3c8d9a957d0ae6 James Bottomley 2012-05-04 245
    d139b9bd0e52dd James Bottomley 2009-11-05 246 shost->dma_dev = dma_dev;
    ^1da177e4c3f41 Linus Torvalds 2005-04-16 247
    5c6fab9d558470 Mika Westerberg 2016-02-18 248 /*
    5c6fab9d558470 Mika Westerberg 2016-02-18 249 * Increase usage count temporarily here so that calling
    5c6fab9d558470 Mika Westerberg 2016-02-18 250 * scsi_autopm_put_host() will trigger runtime idle if there is
    5c6fab9d558470 Mika Westerberg 2016-02-18 251 * nothing else preventing suspending the device.
    5c6fab9d558470 Mika Westerberg 2016-02-18 252 */
    5c6fab9d558470 Mika Westerberg 2016-02-18 253 pm_runtime_get_noresume(&shost->shost_gendev);
    bc4f24014de58f Alan Stern 2010-06-17 254 pm_runtime_set_active(&shost->shost_gendev);
    bc4f24014de58f Alan Stern 2010-06-17 255 pm_runtime_enable(&shost->shost_gendev);
    bc4f24014de58f Alan Stern 2010-06-17 256 device_enable_async_suspend(&shost->shost_gendev);
    bc4f24014de58f Alan Stern 2010-06-17 257

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

    \
     
     \ /
      Last update: 2022-05-23 13:13    [W:2.526 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site