Re: drivers/watchdog/rave-sp-wdt.c:278: undefined reference to `nvmem_cell_get'

From: Andrey Smirnov
Date: Tue Feb 13 2018 - 09:20:27 EST


On Tue, Feb 13, 2018 at 1:30 AM, Lee Jones <lee.jones@xxxxxxxxxx> wrote:
> On Tue, 13 Feb 2018, kbuild test robot wrote:
>
>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>> head: 178e834c47b0d01352c48730235aae69898fbc02
>> commit: c3bb333457218ca4ed9553be47c0f567b4ef8a38 watchdog: Add RAVE SP watchdog driver
>> date: 5 weeks ago
>> config: x86_64-randconfig-u0-02131401 (attached as .config)
>> compiler: gcc-5 (Debian 5.5.0-3) 5.4.1 20171010
>> reproduce:
>> git checkout c3bb333457218ca4ed9553be47c0f567b4ef8a38
>> # save the attached .config to linux build tree
>> make ARCH=x86_64
>>
>> All errors (new ones prefixed by >>):
>>
>> drivers/watchdog/rave-sp-wdt.o: In function `rave_sp_wdt_probe':
>> >> drivers/watchdog/rave-sp-wdt.c:278: undefined reference to `nvmem_cell_get'
>> >> drivers/watchdog/rave-sp-wdt.c:281: undefined reference to `nvmem_cell_read'
>> >> drivers/watchdog/rave-sp-wdt.c:287: undefined reference to `nvmem_cell_put'
>> make[2]: *** [vmlinux] Error 1
>
> Looks like the RAVE Watchdog driver should select NVMEM?
>

AFAICT, this is happening when RAVE SP core and watchdog drivers are
built as built-in and NVMEM is selected as module. Looking at other
users on NVMEM in the kernel is seems that the pattern to prevent this
problem is to add "depends on NVMEM || !NVMEM" line to consumer's
Kconfig entry.

I'll submit a patch to that effect shortly.

Thanks,
Andrey Smirnov