On 03/31/2014 03:30 AM, One Thousand Gnomes wrote:
+ wdt->cdns_wdt_notifier.notifier_call = &cdns_wdt_notify_sys;
+ /* Register the reboot notifier */
+ ret = register_reboot_notifier(&wdt->cdns_wdt_notifier);
+ if (ret != 0) {
+ dev_err(&pdev->dev, "cannot register reboot notifier err=%d)\n",
+ ret);
+ return ret;
Your ordering is wrong. If the box reboots between here and the spin lock
in it further down it'll crash in your notifier.
Not only that, the callback also ends up using watchdog_get_drvdata()
which is only set after registering the notifier.
Guenter
As
+ spin_lock_init(&wdt->io_lock);
is needed before the code your notifier calls will work.
+ dev_info(&pdev->dev, "Xilinx Watchdog Timer at %p with timeout %ds%s\n",
+ wdt->regs, cdns_wdt_device->timeout,
+ nowayout ? ", nowayout" : "");
dev_dbg
if every driver felt the need to announce itself on boot you'd have pages
and pages of junk.
Alan
--
To unsubscribe from this list: send the line "unsubscribe linux-watchdog" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html