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

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

index 9bd025d6fc9c6055a6b592833f2ddceaa4055a0d..15db212a378fea49a6792a6b194e1a081db1550e 100644 (file)
@@ -5,3 +5,4 @@ vfs-allow-o_path-file-descriptors-for-fstatfs.patch
 ext4-fix-memory-leak-in-xattr.patch
 kvm-ppc-book3s-hv-fix-typo-in-saving-dscr.patch
 parisc-fix-interruption-handler-to-respect-pagefault_disable.patch
+watchdog-ts72xx_wdt-locking-bug-in-ioctl.patch
diff --git a/queue-3.4/watchdog-ts72xx_wdt-locking-bug-in-ioctl.patch b/queue-3.4/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);