]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.10-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Oct 2013 21:57:08 +0000 (14:57 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Oct 2013 21:57:08 +0000 (14:57 -0700)
added patches:
watchdog-ts72xx_wdt-locking-bug-in-ioctl.patch

queue-3.10/series
queue-3.10/watchdog-ts72xx_wdt-locking-bug-in-ioctl.patch [new file with mode: 0644]

index a81d3685d3e97bb85d57012ddaffc4bc01ddff15..272adcacfef697141cba29095c34f969d30d05d5 100644 (file)
@@ -18,3 +18,4 @@ arc-fix-32-bit-wrap-around-in-access_ok.patch
 arc-workaround-spinlock-livelock-in-smp-systemc-simulation.patch
 arc-fix-signal-frame-management-for-sa_siginfo.patch
 arc-ignore-ptrace-setregset-request-for-synthetic-register-stop_pc.patch
+watchdog-ts72xx_wdt-locking-bug-in-ioctl.patch
diff --git a/queue-3.10/watchdog-ts72xx_wdt-locking-bug-in-ioctl.patch b/queue-3.10/watchdog-ts72xx_wdt-locking-bug-in-ioctl.patch
new file mode 100644 (file)
index 0000000..f35fba1
--- /dev/null
@@ -0,0 +1,34 @@
+From 8612ed0d97abcf1c016d34755b7cf2060de71963 Mon Sep 17 00:00:00 2001
+From: Dan Carpenter <dan.carpenter@oracle.com>
+Date: Fri, 23 Aug 2013 11:40:59 +0300
+Subject: watchdog: ts72xx_wdt: locking bug in ioctl
+
+From: Dan Carpenter <dan.carpenter@oracle.com>
+
+commit 8612ed0d97abcf1c016d34755b7cf2060de71963 upstream.
+
+Calling the WDIOC_GETSTATUS & WDIOC_GETBOOTSTATUS and twice will cause a
+interruptible deadlock.
+
+Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
+Cc: Jonghwan Choi <jhbird.choi@samsung.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/watchdog/ts72xx_wdt.c |    3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+--- a/drivers/watchdog/ts72xx_wdt.c
++++ b/drivers/watchdog/ts72xx_wdt.c
+@@ -310,7 +310,8 @@ static long ts72xx_wdt_ioctl(struct file
+       case WDIOC_GETSTATUS:
+       case WDIOC_GETBOOTSTATUS:
+-              return put_user(0, p);
++              error = put_user(0, p);
++              break;
+       case WDIOC_KEEPALIVE:
+               ts72xx_wdt_kick(wdt);