]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
4.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 15 Feb 2018 14:38:23 +0000 (15:38 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 15 Feb 2018 14:38:23 +0000 (15:38 +0100)
added patches:
acpi-sbshc-remove-raw-pointer-from-printk-message.patch
ftrace-remove-incorrect-setting-of-glob-search-field.patch
mn10300-misalignment-use-sigsegv-segv_maperr-to-report-a-failed-user-copy.patch
nvme-fix-managing-degraded-controllers.patch
ovl-fix-failure-to-fsync-lower-dir.patch

queue-4.4/acpi-sbshc-remove-raw-pointer-from-printk-message.patch [new file with mode: 0644]
queue-4.4/ftrace-remove-incorrect-setting-of-glob-search-field.patch [new file with mode: 0644]
queue-4.4/mn10300-misalignment-use-sigsegv-segv_maperr-to-report-a-failed-user-copy.patch [new file with mode: 0644]
queue-4.4/nvme-fix-managing-degraded-controllers.patch [new file with mode: 0644]
queue-4.4/ovl-fix-failure-to-fsync-lower-dir.patch [new file with mode: 0644]
queue-4.4/series

diff --git a/queue-4.4/acpi-sbshc-remove-raw-pointer-from-printk-message.patch b/queue-4.4/acpi-sbshc-remove-raw-pointer-from-printk-message.patch
new file mode 100644 (file)
index 0000000..1f31c49
--- /dev/null
@@ -0,0 +1,35 @@
+From 43cdd1b716b26f6af16da4e145b6578f98798bf6 Mon Sep 17 00:00:00 2001
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Date: Fri, 19 Jan 2018 10:06:03 +0100
+Subject: ACPI: sbshc: remove raw pointer from printk() message
+
+From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+commit 43cdd1b716b26f6af16da4e145b6578f98798bf6 upstream.
+
+There's no need to be printing a raw kernel pointer to the kernel log at
+every boot.  So just remove it, and change the whole message to use the
+correct dev_info() call at the same time.
+
+Reported-by: Wang Qize <wang_qize@venustech.com.cn>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/acpi/sbshc.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/acpi/sbshc.c
++++ b/drivers/acpi/sbshc.c
+@@ -275,8 +275,8 @@ static int acpi_smbus_hc_add(struct acpi
+       device->driver_data = hc;
+       acpi_ec_add_query_handler(hc->ec, hc->query_bit, NULL, smbus_alarm, hc);
+-      printk(KERN_INFO PREFIX "SBS HC: EC = 0x%p, offset = 0x%0x, query_bit = 0x%0x\n",
+-              hc->ec, hc->offset, hc->query_bit);
++      dev_info(&device->dev, "SBS HC: offset = 0x%0x, query_bit = 0x%0x\n",
++               hc->offset, hc->query_bit);
+       return 0;
+ }
diff --git a/queue-4.4/ftrace-remove-incorrect-setting-of-glob-search-field.patch b/queue-4.4/ftrace-remove-incorrect-setting-of-glob-search-field.patch
new file mode 100644 (file)
index 0000000..4cb8bf6
--- /dev/null
@@ -0,0 +1,52 @@
+From 7b6586562708d2b3a04fe49f217ddbadbbbb0546 Mon Sep 17 00:00:00 2001
+From: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
+Date: Mon, 5 Feb 2018 22:05:31 -0500
+Subject: ftrace: Remove incorrect setting of glob search field
+
+From: Steven Rostedt (VMware) <rostedt@goodmis.org>
+
+commit 7b6586562708d2b3a04fe49f217ddbadbbbb0546 upstream.
+
+__unregister_ftrace_function_probe() will incorrectly parse the glob filter
+because it resets the search variable that was setup by filter_parse_regex().
+
+Al Viro reported this:
+
+    After that call of filter_parse_regex() we could have func_g.search not
+    equal to glob only if glob started with '!' or '*'.  In the former case
+    we would've buggered off with -EINVAL (not = 1).  In the latter we
+    would've set func_g.search equal to glob + 1, calculated the length of
+    that thing in func_g.len and proceeded to reset func_g.search back to
+    glob.
+
+    Suppose the glob is e.g. *foo*.  We end up with
+           func_g.type = MATCH_MIDDLE_ONLY;
+           func_g.len = 3;
+           func_g.search = "*foo";
+    Feeding that to ftrace_match_record() will not do anything sane - we
+    will be looking for names containing "*foo" (->len is ignored for that
+    one).
+
+Link: http://lkml.kernel.org/r/20180127031706.GE13338@ZenIV.linux.org.uk
+
+Fixes: 3ba009297149f ("ftrace: Introduce ftrace_glob structure")
+Reviewed-by: Dmitry Safonov <0x7f454c46@gmail.com>
+Reviewed-by: Masami Hiramatsu <mhiramat@kernel.org>
+Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
+Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/trace/ftrace.c |    1 -
+ 1 file changed, 1 deletion(-)
+
+--- a/kernel/trace/ftrace.c
++++ b/kernel/trace/ftrace.c
+@@ -3845,7 +3845,6 @@ __unregister_ftrace_function_probe(char
+               func_g.type = filter_parse_regex(glob, strlen(glob),
+                                                &func_g.search, &not);
+               func_g.len = strlen(func_g.search);
+-              func_g.search = glob;
+               /* we do not support '!' for function probes */
+               if (WARN_ON(not))
diff --git a/queue-4.4/mn10300-misalignment-use-sigsegv-segv_maperr-to-report-a-failed-user-copy.patch b/queue-4.4/mn10300-misalignment-use-sigsegv-segv_maperr-to-report-a-failed-user-copy.patch
new file mode 100644 (file)
index 0000000..9f31e35
--- /dev/null
@@ -0,0 +1,37 @@
+From 6ac1dc736b323011a55ecd1fc5897c24c4f77cbd Mon Sep 17 00:00:00 2001
+From: "Eric W. Biederman" <ebiederm@xmission.com>
+Date: Tue, 1 Aug 2017 05:02:38 -0500
+Subject: mn10300/misalignment: Use SIGSEGV SEGV_MAPERR to report a failed user copy
+
+From: Eric W. Biederman <ebiederm@xmission.com>
+
+commit 6ac1dc736b323011a55ecd1fc5897c24c4f77cbd upstream.
+
+Setting si_code to 0 is the same a setting si_code to SI_USER which is definitely
+not correct.  With si_code set to SI_USER si_pid and si_uid will be copied to
+userspace instead of si_addr.  Which is very wrong.
+
+So fix this by using a sensible si_code (SEGV_MAPERR) for this failure.
+
+Fixes: b920de1b77b7 ("mn10300: add the MN10300/AM33 architecture to the kernel")
+Cc: David Howells <dhowells@redhat.com>
+Cc: Masakazu Urade <urade.masakazu@jp.panasonic.com>
+Cc: Koichi Yasutake <yasutake.koichi@jp.panasonic.com>
+Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/mn10300/mm/misalignment.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/arch/mn10300/mm/misalignment.c
++++ b/arch/mn10300/mm/misalignment.c
+@@ -437,7 +437,7 @@ transfer_failed:
+       info.si_signo   = SIGSEGV;
+       info.si_errno   = 0;
+-      info.si_code    = 0;
++      info.si_code    = SEGV_MAPERR;
+       info.si_addr    = (void *) regs->pc;
+       force_sig_info(SIGSEGV, &info, current);
+       return;
diff --git a/queue-4.4/nvme-fix-managing-degraded-controllers.patch b/queue-4.4/nvme-fix-managing-degraded-controllers.patch
new file mode 100644 (file)
index 0000000..dcc4a98
--- /dev/null
@@ -0,0 +1,69 @@
+From keith.busch@intel.com  Thu Feb 15 15:28:13 2018
+From: Keith Busch <keith.busch@intel.com>
+Date: Tue, 13 Feb 2018 09:19:37 -0700
+Subject: nvme: Fix managing degraded controllers
+To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+Cc: Linux NVMe <linux-nvme@lists.infradead.org>, stable@vger.kernel.org
+Message-ID: <20180213161936.GE20962@localhost.localdomain>
+Content-Disposition: inline
+
+From: Keith Busch <keith.busch@intel.com>
+
+commit 5bae7f73d378a986 upstream
+
+Upstream is a near rewrite of the async nvme probe that ultimately didn't
+even cleanly merge in 4.5. This patch is a much smaller change targeted
+to the regression introduced in 4.4.
+
+If a controller is in a degraded mode that needs admin assistence to
+recover, we need to leave the controller running. We just want to disable
+namespace access without shuting the controller down.
+
+Fixes: 3cf519b5a8d4("nvme: merge nvme_dev_start, nvme_dev_resume and nvme_async_probe")
+
+Signed-off-by: Keith Busch <keith.busch@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/nvme/host/pci.c |   13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+--- a/drivers/nvme/host/pci.c
++++ b/drivers/nvme/host/pci.c
+@@ -2976,10 +2976,16 @@ static void nvme_dev_shutdown(struct nvm
+       mutex_unlock(&dev->shutdown_lock);
+ }
+-static void nvme_dev_remove(struct nvme_dev *dev)
++static void nvme_remove_namespaces(struct nvme_dev *dev)
+ {
+       struct nvme_ns *ns, *next;
++      list_for_each_entry_safe(ns, next, &dev->namespaces, list)
++              nvme_ns_remove(ns);
++}
++
++static void nvme_dev_remove(struct nvme_dev *dev)
++{
+       if (nvme_io_incapable(dev)) {
+               /*
+                * If the device is not capable of IO (surprise hot-removal,
+@@ -2989,8 +2995,7 @@ static void nvme_dev_remove(struct nvme_
+                */
+               nvme_dev_shutdown(dev);
+       }
+-      list_for_each_entry_safe(ns, next, &dev->namespaces, list)
+-              nvme_ns_remove(ns);
++      nvme_remove_namespaces(dev);
+ }
+ static int nvme_setup_prp_pools(struct nvme_dev *dev)
+@@ -3174,7 +3179,7 @@ static void nvme_probe_work(struct work_
+        */
+       if (dev->online_queues < 2) {
+               dev_warn(dev->dev, "IO queues not created\n");
+-              nvme_dev_remove(dev);
++              nvme_remove_namespaces(dev);
+       } else {
+               nvme_unfreeze_queues(dev);
+               nvme_dev_add(dev);
diff --git a/queue-4.4/ovl-fix-failure-to-fsync-lower-dir.patch b/queue-4.4/ovl-fix-failure-to-fsync-lower-dir.patch
new file mode 100644 (file)
index 0000000..e4cf5aa
--- /dev/null
@@ -0,0 +1,53 @@
+From d796e77f1dd541fe34481af2eee6454688d13982 Mon Sep 17 00:00:00 2001
+From: Amir Goldstein <amir73il@gmail.com>
+Date: Wed, 8 Nov 2017 09:39:46 +0200
+Subject: ovl: fix failure to fsync lower dir
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+From: Amir Goldstein <amir73il@gmail.com>
+
+commit d796e77f1dd541fe34481af2eee6454688d13982 upstream.
+
+As a writable mount, it is not expected for overlayfs to return
+EINVAL/EROFS for fsync, even if dir/file is not changed.
+
+This commit fixes the case of fsync of directory, which is easier to
+address, because overlayfs already implements fsync file operation for
+directories.
+
+The problem reported by Raphael is that new PostgreSQL 10.0 with a
+database in overlayfs where lower layer in squashfs fails to start.
+The failure is due to fsync error, when PostgreSQL does fsync on all
+existing db directories on startup and a specific directory exists
+lower layer with no changes.
+
+Reported-by: Raphael Hertzog <raphael@ouaza.com>
+Signed-off-by: Amir Goldstein <amir73il@gmail.com>
+Tested-by: RaphaĆ«l Hertzog <hertzog@debian.org>
+Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ fs/overlayfs/readdir.c |    6 +++++-
+ 1 file changed, 5 insertions(+), 1 deletion(-)
+
+--- a/fs/overlayfs/readdir.c
++++ b/fs/overlayfs/readdir.c
+@@ -441,10 +441,14 @@ static int ovl_dir_fsync(struct file *fi
+       struct dentry *dentry = file->f_path.dentry;
+       struct file *realfile = od->realfile;
++      /* Nothing to sync for lower */
++      if (!OVL_TYPE_UPPER(ovl_path_type(dentry)))
++              return 0;
++
+       /*
+        * Need to check if we started out being a lower dir, but got copied up
+        */
+-      if (!od->is_upper && OVL_TYPE_UPPER(ovl_path_type(dentry))) {
++      if (!od->is_upper) {
+               struct inode *inode = file_inode(file);
+               realfile = lockless_dereference(od->upperfile);
index 0d73eefb45353b80eb0fdc0667f3bbd27a22e71f..4b5499cd8f2eb6a8b5bd3001b8faf7ad8998c411 100644 (file)
@@ -101,3 +101,8 @@ xtensa-fix-futex_atomic_cmpxchg_inatomic.patch
 edac-octeon-fix-an-uninitialized-variable-warning.patch
 pktcdvd-fix-pkt_setup_dev-error-path.patch
 btrfs-handle-btrfs_set_extent_delalloc-failure-in-fixup-worker.patch
+nvme-fix-managing-degraded-controllers.patch
+acpi-sbshc-remove-raw-pointer-from-printk-message.patch
+ovl-fix-failure-to-fsync-lower-dir.patch
+mn10300-misalignment-use-sigsegv-segv_maperr-to-report-a-failed-user-copy.patch
+ftrace-remove-incorrect-setting-of-glob-search-field.patch