From: John Crispin Date: Sun, 14 Jul 2013 18:01:09 +0000 (+0000) Subject: ar71xx: fix maximum watchdog timeout X-Git-Tag: reboot~9901 X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=3d15bc6fb2e1fb23056f7466bbd2793fc6fd16ca;p=openwrt%2Fstaging%2Fxback.git ar71xx: fix maximum watchdog timeout Signed-off-by: John Crispin SVN-Revision: 37315 --- diff --git a/target/linux/ar71xx/patches-3.10/611-MIPS-ath79-wdt-timeout.patch b/target/linux/ar71xx/patches-3.10/611-MIPS-ath79-wdt-timeout.patch new file mode 100644 index 0000000000..8a933ef378 --- /dev/null +++ b/target/linux/ar71xx/patches-3.10/611-MIPS-ath79-wdt-timeout.patch @@ -0,0 +1,27 @@ +MIPS: ath79: fix maximum timeout + +If the userland tries to set a timeout higher than the max_timeout, then we should fallback to max_timeout. + +Signed-off-by: John Crispin + +Index: linux-3.8.13/drivers/watchdog/ath79_wdt.c +=================================================================== +--- linux-3.8.13.orig/drivers/watchdog/ath79_wdt.c 2013-07-14 14:10:19.198826462 +0200 ++++ linux-3.8.13/drivers/watchdog/ath79_wdt.c 2013-07-14 14:25:40.810848422 +0200 +@@ -103,10 +103,14 @@ + + static int ath79_wdt_set_timeout(int val) + { +- if (val < 1 || val > max_timeout) ++ if (val < 1) + return -EINVAL; + +- timeout = val; ++ if (val > max_timeout) ++ timeout = max_timeout; ++ else ++ timeout = val; ++ + ath79_wdt_keepalive(); + + return 0; diff --git a/target/linux/ar71xx/patches-3.8/611-MIPS-ath79-wdt-timeout.patch b/target/linux/ar71xx/patches-3.8/611-MIPS-ath79-wdt-timeout.patch new file mode 100644 index 0000000000..8a933ef378 --- /dev/null +++ b/target/linux/ar71xx/patches-3.8/611-MIPS-ath79-wdt-timeout.patch @@ -0,0 +1,27 @@ +MIPS: ath79: fix maximum timeout + +If the userland tries to set a timeout higher than the max_timeout, then we should fallback to max_timeout. + +Signed-off-by: John Crispin + +Index: linux-3.8.13/drivers/watchdog/ath79_wdt.c +=================================================================== +--- linux-3.8.13.orig/drivers/watchdog/ath79_wdt.c 2013-07-14 14:10:19.198826462 +0200 ++++ linux-3.8.13/drivers/watchdog/ath79_wdt.c 2013-07-14 14:25:40.810848422 +0200 +@@ -103,10 +103,14 @@ + + static int ath79_wdt_set_timeout(int val) + { +- if (val < 1 || val > max_timeout) ++ if (val < 1) + return -EINVAL; + +- timeout = val; ++ if (val > max_timeout) ++ timeout = max_timeout; ++ else ++ timeout = val; ++ + ath79_wdt_keepalive(); + + return 0;