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

From: Guenter Roeck
Date: Tue Feb 13 2018 - 09:37:41 EST


On 02/13/2018 06:20 AM, Andrey Smirnov wrote:
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.

Makes sense, since the driver still works if NVMEM is not enabled at all.

I'll submit a patch to that effect shortly.

Thanks,
Guenter