[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