On Wed, November 25, 2015 02:44, Guenter Roeck wrote: > The "running" flag should no longer be needed. watchdog_active() > should provide that information. I'm going to need to keep that because I need to know if it's running in the interrupt handler, and wdd->lock is a mutex. >> @@ -306,17 +202,18 @@ unregister_timer: >> >> static int bcm63xx_wdt_remove(struct platform_device *pdev) >> { >> - if (!nowayout) >> - bcm63xx_wdt_hw_stop(); >> + struct watchdog_device *wdd = platform_get_drvdata(pdev); >> >> - misc_deregister(&bcm63xx_wdt_miscdev); >> bcm63xx_timer_unregister(TIMER_WDT_ID); >> + watchdog_unregister_device(wdd); > > Shouldn't that come first, before unregistering the timer ? No, because wdd->dev is used in the interrupt handler. I will have to move registration of the interrupt to after creating the watchdog because it could currently be used before wdd->dev is set. -- Simon Arlott -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html