Re: ERROR: modpost: "gpmc_omap_get_nand_ops" [drivers/mtd/nand/raw/omap2_nand.ko] undefined!

Krzysztof Kozlowski
2022-01-18T12:02:09Z

On 18/01/2022 12:51, Roger Quadros wrote:
> Hi Krzysztof,
>
> On 17/01/2022 15:08, Krzysztof Kozlowski wrote:
>> On 17/01/2022 13:35, Roger Quadros wrote:
>>> Hi,
>>>
>>> On 17/01/2022 12:51, kernel test robot wrote:
>>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>>> head: 0c947b893d69231a9add855939da7c66237ab44f
>>>> commit: dbcb124acebd8148e9e858a231f1798956dd3ca6 mtd: rawnand: omap2: Select GPMC device driver for ARCH_K3
>>>> date: 4 weeks ago
>>>> config: arm64-randconfig-r001-20220117 (https://download.01.org/0day-ci/archive/20220117/202201171805.5HeoR4rS-lkp@intel.com/config)
>>>> compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 5f782d25a742302d25ef3c8b84b54f7483c2deb9)
>>>> 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
>>>> # install arm64 cross compiling tool for clang build
>>>> # apt-get install binutils-aarch64-linux-gnu
>>>> # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=dbcb124acebd8148e9e858a231f1798956dd3ca6
>>>> git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
>>>> git fetch --no-tags linus master
>>>> git checkout dbcb124acebd8148e9e858a231f1798956dd3ca6
>>>> # save the config file to linux build tree
>>>> mkdir build_dir
>>>> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash
>>>>
>>>> If you fix the issue, kindly add following tag as appropriate
>>>> Reported-by: kernel test robot <lkp@intel.com>
>>>>
>>>> All errors (new ones prefixed by >>, old ones prefixed by <<):
>>>>
>>>>>> ERROR: modpost: "gpmc_omap_get_nand_ops" [drivers/mtd/nand/raw/omap2_nand.ko] undefined!
>>>
>>> The issue is that CONFIG_MEMORY is not set so OMAP_GPMC driver is not built causing the above undefined symbol error.
>>>
>>>>
>>>> Kconfig warnings: (for reference only)
>>>> WARNING: unmet direct dependencies detected for OMAP_GPMC
>>>> Depends on MEMORY && OF_ADDRESS
>>>> Selected by
>>>> - MTD_NAND_OMAP2 && MTD && MTD_RAW_NAND && (ARCH_OMAP2PLUS || ARCH_KEYSTONE || COMPILE_TEST && HAS_IOMEM && ARCH_K3
>>>>
>>>
>>> A possible fix would be to select MEMORY along with OMAP_GPMC at the below location
>>>
>>> config MTD_NAND_OMAP2
>>> tristate "OMAP2, OMAP3, OMAP4 and Keystone NAND controller"
>>> depends on ARCH_OMAP2PLUS || ARCH_KEYSTONE || ARCH_K3 || COMPILE_TEST
>>> depends on HAS_IOMEM
>>> select MEMORY
>>> ^^
>>> select OMAP_GPMC if ARCH_K3
>>> help
>>> Support for NAND flash on Texas Instruments OMAP2, OMAP3, OMAP4
>>> and Keystone platforms.
>>>
>>>
>>> Is this OK?
>>
>> Instead rather "select MEMORY if ARCH_K3"?
>
> I think we should drop "if ARCH_K3" for both for simplicity as the driver is using gpmc_omap_get_nand_ops() from that driver.
>

Then it's fine.

Best regards,
Krzysztof