diff --git a/drivers/char/watchdog/indydog.c b/drivers/char/watchdog/indydog.c
index cbd19e5a94782b0a70f836cd3b56acdc7edefa3d..23fc36473f341845681b890f0e25cba7a21f991d 100644
--- a/drivers/char/watchdog/indydog.c
+++ b/drivers/char/watchdog/indydog.c
@@ -12,6 +12,7 @@
  */
 
 #include <linux/module.h>
+#include <linux/moduleparam.h>
 #include <linux/config.h>
 #include <linux/types.h>
 #include <linux/kernel.h>
@@ -87,12 +88,9 @@ static int indydog_release(struct inode *inode, struct file *file)
 {
 	/* Shut off the timer.
 	 * Lock it in if it's a module and we defined ...NOWAYOUT */
-	if (!nowayout) {
-		u32 mc_ctrl0 = sgimc->cpuctrl0;
-		mc_ctrl0 &= ~SGIMC_CCTRL0_WDOG;
-		sgimc->cpuctrl0 = mc_ctrl0;
-		printk(KERN_INFO "Stopped watchdog timer.\n");
-	}
+	if (!nowayout)
+		indydog_stop();		/* Turn the WDT off */
+
 	indydog_alive = 0;
 
 	return 0;