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 vim +278 drivers/watchdog/rave-sp-wdt.c 252 253 static int rave_sp_wdt_probe(struct platform_device *pdev) 254 { 255 struct device *dev = &pdev->dev; 256 struct watchdog_device *wdd; 257 struct rave_sp_wdt *sp_wd; 258 struct nvmem_cell *cell; 259 __le16 timeout = 0; 260 int ret; 261 262 sp_wd = devm_kzalloc(dev, sizeof(*sp_wd), GFP_KERNEL); 263 if (!sp_wd) 264 return -ENOMEM; 265 266 sp_wd->variant = of_device_get_match_data(dev); 267 sp_wd->sp = dev_get_drvdata(dev->parent); 268 269 wdd = &sp_wd->wdd; 270 wdd->parent = dev; 271 wdd->info = &rave_sp_wdt_info; 272 wdd->ops = &rave_sp_wdt_ops; 273 wdd->min_timeout = sp_wd->variant->min_timeout; 274 wdd->max_timeout = sp_wd->variant->max_timeout; 275 wdd->status = WATCHDOG_NOWAYOUT_INIT_STATUS; 276 wdd->timeout = 60; 277 > 278 cell = nvmem_cell_get(dev, "wdt-timeout"); 279 if (!IS_ERR(cell)) { 280 size_t len; > 281 void *value = nvmem_cell_read(cell, &len); 282 283 if (!IS_ERR(value)) { 284 memcpy(&timeout, value, min(len, sizeof(timeout))); 285 kfree(value); 286 } > 287 nvmem_cell_put(cell); 288 } 289 watchdog_init_timeout(wdd, le16_to_cpu(timeout), dev); 290 watchdog_set_restart_priority(wdd, 255); 291 watchdog_stop_on_unregister(wdd); 292 293 sp_wd->reboot_notifier.notifier_call = rave_sp_wdt_reboot_notifier; 294 ret = devm_register_reboot_notifier(dev, &sp_wd->reboot_notifier); 295 if (ret) { 296 dev_err(dev, "Failed to register reboot notifier\n"); 297 return ret; 298 } 299 300 /* 301 * We don't know if watchdog is running now. To be sure, let's 302 * start it and depend on watchdog core to ping it 303 */ 304 wdd->max_hw_heartbeat_ms = wdd->max_timeout * 1000; 305 ret = rave_sp_wdt_start(wdd); 306 if (ret) { 307 dev_err(dev, "Watchdog didn't start\n"); 308 return ret; 309 } 310 311 ret = devm_watchdog_register_device(dev, wdd); 312 if (ret) { 313 dev_err(dev, "Failed to register watchdog device\n"); 314 rave_sp_wdt_stop(wdd); 315 return ret; 316 } 317 318 return 0; 319 } 320 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
.config.gz
Description: application/gzip