watchdog: s3c2410_wdt - Fix removing of platform device
When removing the watchdog platform device, we need to disable the access to userspace first. It makes no sense to remove the drivers clock, irq's, ... and then disable userspace access. the order of removal has also been changed so that it is the reverse of probing (this way the clock is also disabled sooner). Cc: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
This commit is contained in:
parent
2d53056973
commit
9a37256313
|
@ -532,21 +532,22 @@ static int __devinit s3c2410wdt_probe(struct platform_device *pdev)
|
|||
|
||||
static int __devexit s3c2410wdt_remove(struct platform_device *dev)
|
||||
{
|
||||
misc_deregister(&s3c2410wdt_miscdev);
|
||||
|
||||
s3c2410wdt_cpufreq_deregister();
|
||||
|
||||
release_resource(wdt_mem);
|
||||
kfree(wdt_mem);
|
||||
wdt_mem = NULL;
|
||||
|
||||
free_irq(wdt_irq->start, dev);
|
||||
wdt_irq = NULL;
|
||||
|
||||
clk_disable(wdt_clock);
|
||||
clk_put(wdt_clock);
|
||||
wdt_clock = NULL;
|
||||
|
||||
free_irq(wdt_irq->start, dev);
|
||||
wdt_irq = NULL;
|
||||
|
||||
iounmap(wdt_base);
|
||||
misc_deregister(&s3c2410wdt_miscdev);
|
||||
|
||||
release_resource(wdt_mem);
|
||||
kfree(wdt_mem);
|
||||
wdt_mem = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue