Hi Joel, I love your patch! Yet something to improve: [auto build test ERROR on linus/master] [also build test ERROR on v5.8-rc6 next-20200724] [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] url: https://github.com/0day-ci/linux/commits/Joel-Stanley/spi-nor-Remove-unused-spi-nor-o-rule/20200722-170150 base: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 4fa640dc52302b5e62b01b05c755b055549633ae config: arm-randconfig-r036-20200726 (attached as .config) compiler: arm-linux-gnueabi-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 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot All errors (new ones prefixed by >>): arm-linux-gnueabi-ld: drivers/mtd/spi-nor/controllers/aspeed-smc.o: in function `aspeed_smc_setup_flash': >> drivers/mtd/spi-nor/controllers/aspeed-smc.c:829: undefined reference to `spi_nor_scan' vim +829 drivers/mtd/spi-nor/controllers/aspeed-smc.c 45397787536434 drivers/mtd/spi-nor/aspeed-smc.c Tudor Ambarus 2019-09-24 758 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 759 static int aspeed_smc_setup_flash(struct aspeed_smc_controller *controller, ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 760 struct device_node *np, struct resource *r) ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 761 { cfc5604c488ccd drivers/mtd/spi-nor/aspeed-smc.c Cyrille Pitchen 2017-04-25 762 const struct spi_nor_hwcaps hwcaps = { cfc5604c488ccd drivers/mtd/spi-nor/aspeed-smc.c Cyrille Pitchen 2017-04-25 763 .mask = SNOR_HWCAPS_READ | cfc5604c488ccd drivers/mtd/spi-nor/aspeed-smc.c Cyrille Pitchen 2017-04-25 764 SNOR_HWCAPS_READ_FAST | cfc5604c488ccd drivers/mtd/spi-nor/aspeed-smc.c Cyrille Pitchen 2017-04-25 765 SNOR_HWCAPS_PP, cfc5604c488ccd drivers/mtd/spi-nor/aspeed-smc.c Cyrille Pitchen 2017-04-25 766 }; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 767 const struct aspeed_smc_info *info = controller->info; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 768 struct device *dev = controller->dev; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 769 struct device_node *child; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 770 unsigned int cs; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 771 int ret = -ENODEV; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 772 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 773 for_each_available_child_of_node(np, child) { ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 774 struct aspeed_smc_chip *chip; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 775 struct spi_nor *nor; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 776 struct mtd_info *mtd; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 777 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 778 /* This driver does not support NAND or NOR flash devices. */ ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 779 if (!of_device_is_compatible(child, "jedec,spi-nor")) ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 780 continue; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 781 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 782 ret = of_property_read_u32(child, "reg", &cs); ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 783 if (ret) { ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 784 dev_err(dev, "Couldn't not read chip select.\n"); ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 785 break; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 786 } ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 787 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 788 if (cs >= info->nce) { ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 789 dev_err(dev, "Chip select %d out of range.\n", ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 790 cs); ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 791 ret = -ERANGE; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 792 break; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 793 } ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 794 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 795 if (controller->chips[cs]) { ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 796 dev_err(dev, "Chip select %d already in use by %s\n", ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 797 cs, dev_name(controller->chips[cs]->nor.dev)); ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 798 ret = -EBUSY; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 799 break; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 800 } ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 801 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 802 chip = devm_kzalloc(controller->dev, sizeof(*chip), GFP_KERNEL); ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 803 if (!chip) { ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 804 ret = -ENOMEM; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 805 break; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 806 } ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 807 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 808 chip->controller = controller; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 809 chip->ctl = controller->regs + info->ctl0 + cs * 4; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 810 chip->cs = cs; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 811 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 812 nor = &chip->nor; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 813 mtd = &nor->mtd; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 814 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 815 nor->dev = dev; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 816 nor->priv = chip; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 817 spi_nor_set_flash_node(nor, child); 45397787536434 drivers/mtd/spi-nor/aspeed-smc.c Tudor Ambarus 2019-09-24 818 nor->controller_ops = &aspeed_smc_controller_ops; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 819 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 820 ret = aspeed_smc_chip_setup_init(chip, r); ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 821 if (ret) ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 822 break; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 823 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 824 /* cfc5604c488ccd drivers/mtd/spi-nor/aspeed-smc.c Cyrille Pitchen 2017-04-25 825 * TODO: Add support for Dual and Quad SPI protocols ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 826 * attach when board support is present as determined ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 827 * by of property. ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 828 */ cfc5604c488ccd drivers/mtd/spi-nor/aspeed-smc.c Cyrille Pitchen 2017-04-25 @829 ret = spi_nor_scan(nor, NULL, &hwcaps); ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 830 if (ret) ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 831 break; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 832 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 833 ret = aspeed_smc_chip_setup_finish(chip); ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 834 if (ret) ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 835 break; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 836 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 837 ret = mtd_device_register(mtd, NULL, 0); ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 838 if (ret) ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 839 break; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 840 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 841 controller->chips[cs] = chip; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 842 } ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 843 6597f0b0516ab0 drivers/mtd/spi-nor/aspeed-smc.c Nishka Dasgupta 2019-08-08 844 if (ret) { 6597f0b0516ab0 drivers/mtd/spi-nor/aspeed-smc.c Nishka Dasgupta 2019-08-08 845 of_node_put(child); ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 846 aspeed_smc_unregister(controller); 6597f0b0516ab0 drivers/mtd/spi-nor/aspeed-smc.c Nishka Dasgupta 2019-08-08 847 } ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 848 ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 849 return ret; ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 850 } ceb720c71b6309 drivers/mtd/spi-nor/aspeed-smc.c Cédric Le Goater 2016-12-21 851 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org