projects/linux·commit f82567e5

[PATCH] Fix watchdog drivers to call emergency_reboot()

f82567e5 · Eric W. Biederman <[email protected]> · 2005-07-26 11:53:19 -06:00

If a watchdog driver has decided it is time to reboot the system
we know something is wrong and we are in interrupt context
so emergency_reboot() is what we want.

Signed-off-by: Eric W. Biederman <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Commit
f82567e55fcd25bb7addf2cfd8b79f36f409dc2e
Parents
4de8b9b7

Changes

4 files changed · +4 −4

drivers/char/watchdog/eurotechwdt.c

View file
diff --git a/drivers/char/watchdog/eurotechwdt.c b/drivers/char/watchdog/eurotechwdt.c
index d10e554..f1016e3 100644
--- a/drivers/char/watchdog/eurotechwdt.c
+++ b/drivers/char/watchdog/eurotechwdt.c
@@ -167,7 +167,7 @@ static irqreturn_t eurwdt_interrupt(int irq, void *dev_id, struct pt_regs *regs)
printk(KERN_CRIT "Would Reboot.\n");
#else
printk(KERN_CRIT "Initiating system reboot.\n");
- machine_restart(NULL);
+ emergency_restart(NULL);
#endif
return IRQ_HANDLED;
}

drivers/char/watchdog/softdog.c

View file
diff --git a/drivers/char/watchdog/softdog.c b/drivers/char/watchdog/softdog.c
index 1179034..0d93097 100644
--- a/drivers/char/watchdog/softdog.c
+++ b/drivers/char/watchdog/softdog.c
@@ -97,7 +97,7 @@ static void watchdog_fire(unsigned long data)
else
{
printk(KERN_CRIT PFX "Initiating system reboot.\n");
- machine_restart(NULL);
+ emergency_restart(NULL);
printk(KERN_CRIT PFX "Reboot didn't ?????\n");
}
}

drivers/char/watchdog/wdt.c

View file
diff --git a/drivers/char/watchdog/wdt.c b/drivers/char/watchdog/wdt.c
index 5684aa3..1210ca0 100644
--- a/drivers/char/watchdog/wdt.c
+++ b/drivers/char/watchdog/wdt.c
@@ -266,7 +266,7 @@ static irqreturn_t wdt_interrupt(int irq, void *dev_id, struct pt_regs *regs)
printk(KERN_CRIT "Would Reboot.\n");
#else
printk(KERN_CRIT "Initiating system reboot.\n");
- machine_restart(NULL);
+ emergency_restart();
#endif
#else
printk(KERN_CRIT "Reset in 5ms.\n");

drivers/char/watchdog/wdt_pci.c

View file
diff --git a/drivers/char/watchdog/wdt_pci.c b/drivers/char/watchdog/wdt_pci.c
index 7651ded..c80cb77 100644
--- a/drivers/char/watchdog/wdt_pci.c
+++ b/drivers/char/watchdog/wdt_pci.c
@@ -311,7 +311,7 @@ static irqreturn_t wdtpci_interrupt(int irq, void *dev_id, struct pt_regs *regs)
printk(KERN_CRIT PFX "Would Reboot.\n");
#else
printk(KERN_CRIT PFX "Initiating system reboot.\n");
- machine_restart(NULL);
+ emergency_restart(NULL);
#endif
#else
printk(KERN_CRIT PFX "Reset in 5ms.\n");