]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 31 Jul 2015 17:50:35 +0000 (10:50 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 31 Jul 2015 17:50:35 +0000 (10:50 -0700)
added patches:
nfs-fix-size-of-nfsacl-setacl-operations.patch
of-return-numa_no_node-from-fallback-of_node_to_nid.patch
watchdog-omap-assert-the-counter-being-stopped-before-reprogramming.patch

queue-3.14/nfs-fix-size-of-nfsacl-setacl-operations.patch [new file with mode: 0644]
queue-3.14/of-return-numa_no_node-from-fallback-of_node_to_nid.patch [new file with mode: 0644]
queue-3.14/series
queue-3.14/watchdog-omap-assert-the-counter-being-stopped-before-reprogramming.patch [new file with mode: 0644]

diff --git a/queue-3.14/nfs-fix-size-of-nfsacl-setacl-operations.patch b/queue-3.14/nfs-fix-size-of-nfsacl-setacl-operations.patch
new file mode 100644 (file)
index 0000000..2261ee9
--- /dev/null
@@ -0,0 +1,33 @@
+From d683cc49daf7c5afca8cd9654aaa1bf63cdf2ad9 Mon Sep 17 00:00:00 2001
+From: Chuck Lever <chuck.lever@oracle.com>
+Date: Tue, 26 May 2015 11:53:52 -0400
+Subject: NFS: Fix size of NFSACL SETACL operations
+
+From: Chuck Lever <chuck.lever@oracle.com>
+
+commit d683cc49daf7c5afca8cd9654aaa1bf63cdf2ad9 upstream.
+
+When encoding the NFSACL SETACL operation, reserve just the estimated
+size of the ACL rather than a fixed maximum. This eliminates needless
+zero padding on the wire that the server ignores.
+
+Fixes: ee5dc7732bd5 ('NFS: Fix "kernel BUG at fs/nfs/nfs3xdr.c:1338!"')
+Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
+Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/nfs/nfs3xdr.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/fs/nfs/nfs3xdr.c
++++ b/fs/nfs/nfs3xdr.c
+@@ -1342,7 +1342,7 @@ static void nfs3_xdr_enc_setacl3args(str
+       if (args->npages != 0)
+               xdr_write_pages(xdr, args->pages, 0, args->len);
+       else
+-              xdr_reserve_space(xdr, NFS_ACL_INLINE_BUFSIZE);
++              xdr_reserve_space(xdr, args->len);
+       error = nfsacl_encode(xdr->buf, base, args->inode,
+                           (args->mask & NFS_ACL) ?
diff --git a/queue-3.14/of-return-numa_no_node-from-fallback-of_node_to_nid.patch b/queue-3.14/of-return-numa_no_node-from-fallback-of_node_to_nid.patch
new file mode 100644 (file)
index 0000000..8a8e87c
--- /dev/null
@@ -0,0 +1,47 @@
+From c8fff7bc5bba6bd59cad40441c189c4efe7190f6 Mon Sep 17 00:00:00 2001
+From: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
+Date: Wed, 8 Apr 2015 19:59:20 +0300
+Subject: of: return NUMA_NO_NODE from fallback of_node_to_nid()
+
+From: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
+
+commit c8fff7bc5bba6bd59cad40441c189c4efe7190f6 upstream.
+
+Node 0 might be offline as well as any other numa node,
+in this case kernel cannot handle memory allocation and crashes.
+
+Signed-off-by: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
+Fixes: 0c3f061c195c ("of: implement of_node_to_nid as a weak function")
+Signed-off-by: Grant Likely <grant.likely@linaro.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/of/base.c  |    2 +-
+ include/linux/of.h |    5 ++++-
+ 2 files changed, 5 insertions(+), 2 deletions(-)
+
+--- a/drivers/of/base.c
++++ b/drivers/of/base.c
+@@ -77,7 +77,7 @@ EXPORT_SYMBOL(of_n_size_cells);
+ #ifdef CONFIG_NUMA
+ int __weak of_node_to_nid(struct device_node *np)
+ {
+-      return numa_node_id();
++      return NUMA_NO_NODE;
+ }
+ #endif
+--- a/include/linux/of.h
++++ b/include/linux/of.h
+@@ -517,7 +517,10 @@ static inline const char *of_prop_next_s
+ #if defined(CONFIG_OF) && defined(CONFIG_NUMA)
+ extern int of_node_to_nid(struct device_node *np);
+ #else
+-static inline int of_node_to_nid(struct device_node *device) { return 0; }
++static inline int of_node_to_nid(struct device_node *device)
++{
++      return NUMA_NO_NODE;
++}
+ #endif
+ static inline struct device_node *of_find_matching_node(
index 53aa921fb73f2502e95e980c04a96d90df2c466f..a225d5773b52ff6470a55e5b07814c329ccb76b9 100644 (file)
@@ -108,3 +108,6 @@ ideapad-fix-software-rfkill-setting.patch
 dell-laptop-fix-allocating-freeing-smi-buffer-page.patch
 usb-usbfs-allow-urbs-to-be-reaped-after-disconnection.patch
 block-do-a-full-clone-when-splitting-discard-bios.patch
+of-return-numa_no_node-from-fallback-of_node_to_nid.patch
+watchdog-omap-assert-the-counter-being-stopped-before-reprogramming.patch
+nfs-fix-size-of-nfsacl-setacl-operations.patch
diff --git a/queue-3.14/watchdog-omap-assert-the-counter-being-stopped-before-reprogramming.patch b/queue-3.14/watchdog-omap-assert-the-counter-being-stopped-before-reprogramming.patch
new file mode 100644 (file)
index 0000000..eb109d7
--- /dev/null
@@ -0,0 +1,61 @@
+From 530c11d432727c697629ad5f9d00ee8e2864d453 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
+Date: Wed, 29 Apr 2015 20:38:46 +0200
+Subject: watchdog: omap: assert the counter being stopped before reprogramming
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: =?UTF-8?q?Uwe=20Kleine-K=C3=B6nig?= <u.kleine-koenig@pengutronix.de>
+
+commit 530c11d432727c697629ad5f9d00ee8e2864d453 upstream.
+
+The omap watchdog has the annoying behaviour that writes to most
+registers don't have any effect when the watchdog is already running.
+Quoting the AM335x reference manual:
+
+       To modify the timer counter value (the WDT_WCRR register),
+       prescaler ratio (the WDT_WCLR[4:2] PTV bit field), delay
+       configuration value (the WDT_WDLY[31:0] DLY_VALUE bit field), or
+       the load value (the WDT_WLDR[31:0] TIMER_LOAD bit field), the
+       watchdog timer must be disabled by using the start/stop sequence
+       (the WDT_WSPR register).
+
+Currently the timer is stopped in the .probe callback but still there
+are possibilities that yield to a situation where omap_wdt_start is
+entered with the timer running (e.g. when /dev/watchdog is closed
+without stopping and then reopened). In such a case programming the
+timeout silently fails!
+
+To circumvent this stop the timer before reprogramming.
+
+Assuming one of the first things the watchdog user does is setting the
+timeout explicitly nothing too bad should happen because this explicit
+setting works fine.
+
+Fixes: 7768a13c252a ("[PATCH] OMAP: Add Watchdog driver support")
+Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
+Reviewed-by: Guenter Roeck <linux@roeck-us.net>
+Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/watchdog/omap_wdt.c |    7 +++++++
+ 1 file changed, 7 insertions(+)
+
+--- a/drivers/watchdog/omap_wdt.c
++++ b/drivers/watchdog/omap_wdt.c
+@@ -134,6 +134,13 @@ static int omap_wdt_start(struct watchdo
+       pm_runtime_get_sync(wdev->dev);
++      /*
++       * Make sure the watchdog is disabled. This is unfortunately required
++       * because writing to various registers with the watchdog running has no
++       * effect.
++       */
++      omap_wdt_disable(wdev);
++
+       /* initialize prescaler */
+       while (readl_relaxed(base + OMAP_WATCHDOG_WPS) & 0x01)
+               cpu_relax();