Hi Dmitry, I love your patch! Yet something to improve: [auto build test ERROR on tegra/for-next] [also build test ERROR on block/for-next linus/master v5.6-rc5 next-20200306] [cannot apply to ulf.hansson-mmc/next] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Dmitry-Osipenko/Introduce-NVIDIA-Tegra-Partition-Tablex/20200306-124106 base: https://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux.git for-next config: arm64-randconfig-a001-20200308 (attached as .config) compiler: aarch64-linux-gcc (GCC) 7.5.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.5.0 make.cross ARCH=arm64 If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): block/partitions/tegra.o: In function `tegra_partition_table_emmc_boot_offset': block/partitions/tegra.c:379: undefined reference to `mmc_bdev_to_card' block/partitions/tegra.c:379:(.text+0x674): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `mmc_bdev_to_card' block/partitions/tegra.c:389: undefined reference to `mmc_card_is_blockaddr' block/partitions/tegra.c:389:(.text+0x6a4): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `mmc_card_is_blockaddr' >> block/partitions/tegra.c:424: undefined reference to `mmc_bdev_to_part_type' block/partitions/tegra.c:424:(.text+0x748): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `mmc_bdev_to_part_type' >> block/partitions/tegra.c:417: undefined reference to `mmc_bdev_to_area_type' block/partitions/tegra.c:417:(.text+0xbec): relocation truncated to fit: R_AARCH64_CALL26 against undefined symbol `mmc_bdev_to_area_type' vim +424 block/partitions/tegra.c 375 376 static int 377 tegra_partition_table_emmc_boot_offset(struct tegra_partition_table_parser *ptp) 378 { 379 struct mmc_card *card = mmc_bdev_to_card(ptp->state->bdev); 380 const struct of_device_id *matched; 381 int part_type, area_type; 382 const u32 *sdhci_bases; 383 u32 sdhci_base; 384 unsigned int i; 385 int err; 386 387 /* filter out unexpected/untested boot sources */ 388 if (!card || card->ext_csd.rev < 3 || 389 !mmc_card_is_blockaddr(card) || 390 mmc_card_is_removable(card->host)) 391 return -1; 392 393 /* skip everything unrelated to Tegra eMMC */ 394 matched = of_match_node(tegra_sdhci_match, card->host->parent->of_node); 395 if (!matched) 396 return -1; 397 398 sdhci_bases = matched->data; 399 400 /* figure out SDHCI instance ID by the base address */ 401 err = of_property_read_u32_index(card->host->parent->of_node, 402 "reg", 0, &sdhci_base); 403 if (err) 404 return -1; 405 406 for (i = 0; i < TEGRA_PT_SDHCI_DEVICE_INSTANCES; i++) { 407 if (sdhci_base == sdhci_bases[i]) 408 break; 409 } 410 411 if (i == TEGRA_PT_SDHCI_DEVICE_INSTANCES) 412 return -1; 413 414 ptp->dev_id = TEGRA_PT_SDHCI_DEVICE_ID; 415 ptp->dev_instance = i; 416 > 417 area_type = mmc_bdev_to_area_type(ptp->state->bdev); 418 419 if (WARN_ON(area_type < 0)) 420 return -1; 421 422 switch (area_type) { 423 case MMC_BLK_DATA_AREA_BOOT: > 424 part_type = mmc_bdev_to_part_type(ptp->state->bdev); 425 426 if (WARN_ON(part_type < 0)) 427 return -1; 428 429 ptp->boot_id = part_type - EXT_CSD_PART_CONFIG_ACC_BOOT0; 430 ptp->snapshot_mode = true; 431 break; 432 433 case MMC_BLK_DATA_AREA_MAIN: 434 break; 435 436 default: 437 TEGRA_PT_ERR(ptp, "unexpected area_type: %u\n", area_type); 438 return -1; 439 } 440 441 ptp->card = card; 442 443 /* 444 * eMMC storage has two special boot partitions in addition to the 445 * main one. NVIDIA's bootloader linearizes eMMC boot0->boot1->main 446 * accesses, this means that the partition table addresses are shifted 447 * by the size of boot partitions. In accordance with the eMMC 448 * specification, the boot partition size is calculated as follows: 449 * 450 * boot partition size = 128K byte x BOOT_SIZE_MULT 451 * 452 * This function returns number of sectors occupied by the both boot 453 * partitions. 454 */ 455 return card->ext_csd.raw_boot_mult * SZ_128K / 456 SECTOR_SIZE * MMC_NUM_BOOT_PARTITION; 457 } 458 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip