Change remove code so that we first detach
the driver from userspace, then clean up the
clock and then clean up the memory we allocated.
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
 
 static int pnx4008_wdt_remove(struct platform_device *pdev)
 {
-       if (wdt_mem) {
-               release_resource(wdt_mem);
-               kfree(wdt_mem);
-               wdt_mem = NULL;
-       }
+       misc_deregister(&pnx4008_wdt_miscdev);
        if (wdt_clk) {
                clk_set_rate(wdt_clk, 0);
                clk_put(wdt_clk);
                wdt_clk = NULL;
        }
-       misc_deregister(&pnx4008_wdt_miscdev);
+       if (wdt_mem) {
+               release_resource(wdt_mem);
+               kfree(wdt_mem);
+               wdt_mem = NULL;
+       }
        return 0;
 }