[dm-devel] [dm:dm-5.10 3/6] drivers/md/dm-table.c:1507:28: error: implicit declaration of function 'lcm_not_zero'; did you mean

kernel test robot lkp at intel.com
Tue Sep 15 03:52:26 UTC 2020


tree:   https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git dm-5.10
head:   86958eac97c2edd72a4a36ac2c7c257aee639711
commit: 7a888ac0a16dbdff2889066f35580575c56ebf0c [3/6] dm table: stack 'chunk_sectors' limit to account for target-specific splitting
config: microblaze-randconfig-r033-20200913 (attached as .config)
compiler: microblaze-linux-gcc (GCC) 9.3.0
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
        git checkout 7a888ac0a16dbdff2889066f35580575c56ebf0c
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=microblaze 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp at intel.com>

All errors (new ones prefixed by >>):

   drivers/md/dm-table.c: In function 'dm_calculate_queue_limits':
>> drivers/md/dm-table.c:1507:28: error: implicit declaration of function 'lcm_not_zero'; did you mean 'min_not_zero'? [-Werror=implicit-function-declaration]
    1507 |    limits->chunk_sectors = lcm_not_zero(ti->max_io_len,
         |                            ^~~~~~~~~~~~
         |                            min_not_zero
   cc1: some warnings being treated as errors

# https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git/commit/?id=7a888ac0a16dbdff2889066f35580575c56ebf0c
git remote add dm https://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm.git
git fetch --no-tags dm dm-5.10
git checkout 7a888ac0a16dbdff2889066f35580575c56ebf0c
vim +1507 drivers/md/dm-table.c

  1467	
  1468	/*
  1469	 * Establish the new table's queue_limits and validate them.
  1470	 */
  1471	int dm_calculate_queue_limits(struct dm_table *table,
  1472				      struct queue_limits *limits)
  1473	{
  1474		struct dm_target *ti;
  1475		struct queue_limits ti_limits;
  1476		unsigned i;
  1477		enum blk_zoned_model zoned_model = BLK_ZONED_NONE;
  1478		unsigned int zone_sectors = 0;
  1479	
  1480		blk_set_stacking_limits(limits);
  1481	
  1482		for (i = 0; i < dm_table_get_num_targets(table); i++) {
  1483			blk_set_stacking_limits(&ti_limits);
  1484	
  1485			ti = dm_table_get_target(table, i);
  1486	
  1487			if (!ti->type->iterate_devices)
  1488				goto combine_limits;
  1489	
  1490			/*
  1491			 * Combine queue limits of all the devices this target uses.
  1492			 */
  1493			ti->type->iterate_devices(ti, dm_set_device_limits,
  1494						  &ti_limits);
  1495	
  1496			if (zoned_model == BLK_ZONED_NONE && ti_limits.zoned != BLK_ZONED_NONE) {
  1497				/*
  1498				 * After stacking all limits, validate all devices
  1499				 * in table support this zoned model and zone sectors.
  1500				 */
  1501				zoned_model = ti_limits.zoned;
  1502				zone_sectors = ti_limits.chunk_sectors;
  1503			}
  1504	
  1505			/* Stack chunk_sectors if target-specific splitting is required */
  1506			if (ti->max_io_len)
> 1507				limits->chunk_sectors = lcm_not_zero(ti->max_io_len,
  1508								     ti_limits.chunk_sectors);
  1509			/* Set I/O hints portion of queue limits */
  1510			if (ti->type->io_hints)
  1511				ti->type->io_hints(ti, &ti_limits);
  1512	
  1513			/*
  1514			 * Check each device area is consistent with the target's
  1515			 * overall queue limits.
  1516			 */
  1517			if (ti->type->iterate_devices(ti, device_area_is_invalid,
  1518						      &ti_limits))
  1519				return -EINVAL;
  1520	
  1521	combine_limits:
  1522			/*
  1523			 * Merge this target's queue limits into the overall limits
  1524			 * for the table.
  1525			 */
  1526			if (blk_stack_limits(limits, &ti_limits, 0) < 0)
  1527				DMWARN("%s: adding target device "
  1528				       "(start sect %llu len %llu) "
  1529				       "caused an alignment inconsistency",
  1530				       dm_device_name(table->md),
  1531				       (unsigned long long) ti->begin,
  1532				       (unsigned long long) ti->len);
  1533		}
  1534	
  1535		/*
  1536		 * Verify that the zoned model and zone sectors, as determined before
  1537		 * any .io_hints override, are the same across all devices in the table.
  1538		 * - this is especially relevant if .io_hints is emulating a disk-managed
  1539		 *   zoned model (aka BLK_ZONED_NONE) on host-managed zoned block devices.
  1540		 * BUT...
  1541		 */
  1542		if (limits->zoned != BLK_ZONED_NONE) {
  1543			/*
  1544			 * ...IF the above limits stacking determined a zoned model
  1545			 * validate that all of the table's devices conform to it.
  1546			 */
  1547			zoned_model = limits->zoned;
  1548			zone_sectors = limits->chunk_sectors;
  1549		}
  1550		if (validate_hardware_zoned_model(table, zoned_model, zone_sectors))
  1551			return -EINVAL;
  1552	
  1553		return validate_hardware_logical_block_alignment(table, limits);
  1554	}
  1555	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: .config.gz
Type: application/gzip
Size: 29552 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20200915/5477751a/attachment.gz>


More information about the dm-devel mailing list