The CONFIG_CMDLINE-related logic in early_init_dt_scan_chosen() falls
back to copying CONFIG_CMDLINE into boot_command_line/data if the DT has
a /chosen node but that node has no bootargs property or a bootargs
property of length zero.
This is problematic for the MIPS architecture because we support
concatenating arguments from either the DT or the bootloader with those
from CONFIG_CMDLINE, but the behaviour of early_init_dt_scan_chosen()
gives us no way of knowing whether boot_command_line contains arguments
from DT or already contains CONFIG_CMDLINE. This can lead to us
concatenating CONFIG_CMDLINE with itself, duplicating command line
arguments which can be problematic (eg. for earlycon which will attempt
to register the same console twice & warn about it).
Move the CONFIG_CMDLINE-related logic to a weak function that
architectures can provide their own version of, such that we continue to
use the existing logic for architectures where it's suitable but also
allow MIPS to override this behaviour such that the architecture code
knows when CONFIG_CMDLINE is used.
Signed-off-by: Paul Burton <paul.burton(a)mips.com>
References: https://patchwork.linux-mips.org/patch/18804/
Cc: Frank Rowand <frowand.list(a)gmail.com>
Cc: Jaedon Shin <jaedon.shin(a)gmail.com>
Cc: Mathieu Malaterre <malat(a)debian.org>
Cc: Rob Herring <robh+dt(a)kernel.org>
Cc: devicetree(a)vger.kernel.org
Cc: linux-kernel(a)vger.kernel.org
Cc: linux-mips(a)linux-mips.org
Cc: stable(a)vger.kernel.org # v4.16+
---
Marked for stable as a prerequisite of the following patch.
DT maintainers: if you're OK with this it'd be great to get an ack so
this can go through the mips-fixes tree.
---
drivers/of/fdt.c | 55 +++++++++++++++++++++++++++++-------------
include/linux/of_fdt.h | 1 +
2 files changed, 39 insertions(+), 17 deletions(-)
diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
index 800ad252cf9c..94c474315cff 100644
--- a/drivers/of/fdt.c
+++ b/drivers/of/fdt.c
@@ -1072,6 +1072,43 @@ int __init early_init_dt_scan_memory(unsigned long node, const char *uname,
return 0;
}
+/**
+ * early_init_dt_fixup_cmdline_arch() - Modify a command line taken from DT
+ * @data: A pointer to the command line
+ *
+ * This function provides an opportunity to make modifications to command line
+ * arguments taken from a device tree before use, for example to concatenate
+ * them with arguments from other sources or replace them entirely.
+ *
+ * Modifications should be made directly to the string pointed at by @data,
+ * which is COMMAND_LINE_SIZE bytes in size.
+ *
+ * The default implementation supports extending or overriding the DT command
+ * line arguments using CONFIG_CMDLINE. Since other sources of command line
+ * arguments are platform-specific, architectures can provide their own
+ * implementation of this function to obtain their desired behaviour.
+ */
+void __init __weak early_init_dt_fixup_cmdline_arch(char *data)
+{
+ /*
+ * CONFIG_CMDLINE is meant to be a default in case nothing else
+ * managed to set the command line, unless CONFIG_CMDLINE_FORCE
+ * is set in which case we override whatever was found earlier.
+ */
+#ifdef CONFIG_CMDLINE
+#if defined(CONFIG_CMDLINE_EXTEND)
+ strlcat(data, " ", COMMAND_LINE_SIZE);
+ strlcat(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
+#elif defined(CONFIG_CMDLINE_FORCE)
+ strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
+#else
+ /* No arguments from boot loader, use kernel's cmdl */
+ if (!data[0])
+ strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
+#endif
+#endif /* CONFIG_CMDLINE */
+}
+
int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
int depth, void *data)
{
@@ -1091,23 +1128,7 @@ int __init early_init_dt_scan_chosen(unsigned long node, const char *uname,
if (p != NULL && l > 0)
strlcpy(data, p, min((int)l, COMMAND_LINE_SIZE));
- /*
- * CONFIG_CMDLINE is meant to be a default in case nothing else
- * managed to set the command line, unless CONFIG_CMDLINE_FORCE
- * is set in which case we override whatever was found earlier.
- */
-#ifdef CONFIG_CMDLINE
-#if defined(CONFIG_CMDLINE_EXTEND)
- strlcat(data, " ", COMMAND_LINE_SIZE);
- strlcat(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
-#elif defined(CONFIG_CMDLINE_FORCE)
- strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
-#else
- /* No arguments from boot loader, use kernel's cmdl*/
- if (!((char *)data)[0])
- strlcpy(data, CONFIG_CMDLINE, COMMAND_LINE_SIZE);
-#endif
-#endif /* CONFIG_CMDLINE */
+ early_init_dt_fixup_cmdline_arch(data);
pr_debug("Command line is: %s\n", (char*)data);
diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h
index b9cd9ebdf9b9..98935695f49d 100644
--- a/include/linux/of_fdt.h
+++ b/include/linux/of_fdt.h
@@ -80,6 +80,7 @@ extern void early_init_dt_add_memory_arch(u64 base, u64 size);
extern int early_init_dt_mark_hotplug_memory_arch(u64 base, u64 size);
extern int early_init_dt_reserve_memory_arch(phys_addr_t base, phys_addr_t size,
bool no_map);
+extern void early_init_dt_fixup_cmdline_arch(char *data);
extern u64 dt_mem_next_cell(int s, const __be32 **cellp);
/* Early flat tree scan hooks */
--
2.18.0
(cherry pick from commit 764baba80168ad3adafb521d2ab483ccbc49e344)
Commit 31747eda41ef ("ovl: hash directory inodes for fsnotify")
fixed an issue of inotify watch on directory that stops getting
events after dropping dentry caches.
A similar issue exists for non-dir non-upper files, for example:
$ mkdir -p lower upper work merged
$ touch lower/foo
$ mount -t overlay -o
lowerdir=lower,workdir=work,upperdir=upper none merged
$ inotifywait merged/foo &
$ echo 2 > /proc/sys/vm/drop_caches
$ cat merged/foo
inotifywait doesn't get the OPEN event, because ovl_lookup() called
from 'cat' allocates a new overlay inode and does not reuse the
watched inode.
Fix this by hashing non-dir overlay inodes by lower real inode in
the following cases that were not hashed before this change:
- A non-upper overlay mount
- A lower non-hardlink when index=off
A helper ovl_hash_bylower() was added to put all the logic and
documentation about which real inode an overlay inode is hashed by
into one place.
The issue dates back to initial version of overlayfs, but this
patch depends on ovl_inode code that was introduced in kernel v4.13.
Signed-off-by: Amir Goldstein <amir73il(a)gmail.com>
Signed-off-by: Miklos Szeredi <mszeredi(a)redhat.com>
Cc: <stable(a)vger.kernel.org> #v4.13
Signed-off-by: Mark Salyzyn <salyzyn(a)android.com> #4.14
Cc: <linux-unionfs(a)vger.kernel.org>
Cc: <linux-kernel(a)vger.kernel.org>
Cc: Greg KH <gregkh(a)linuxfoundation.org>
---
fs/overlayfs/inode.c | 62 +++++++++++++++++++++++++++++++-------------
1 file changed, 44 insertions(+), 18 deletions(-)
diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
index d60900b615f9..efed50304b49 100644
--- a/fs/overlayfs/inode.c
+++ b/fs/overlayfs/inode.c
@@ -14,6 +14,7 @@
#include <linux/posix_acl.h>
#include <linux/ratelimit.h>
#include "overlayfs.h"
+#include "ovl_entry.h"
int ovl_setattr(struct dentry *dentry, struct iattr *attr)
{
@@ -608,39 +609,63 @@ static bool ovl_verify_inode(struct inode *inode, struct dentry *lowerdentry,
return true;
}
+/*
+ * Does overlay inode need to be hashed by lower inode?
+ */
+static bool ovl_hash_bylower(struct super_block *sb, struct dentry *upper,
+ struct dentry *lower, struct dentry *index)
+{
+ struct ovl_fs *ofs = sb->s_fs_info;
+
+ /* No, if pure upper */
+ if (!lower)
+ return false;
+
+ /* Yes, if already indexed */
+ if (index)
+ return true;
+
+ /* Yes, if won't be copied up */
+ if (!ofs->upper_mnt)
+ return true;
+
+ /* No, if lower hardlink is or will be broken on copy up */
+ if ((upper || !ovl_indexdir(sb)) &&
+ !d_is_dir(lower) && d_inode(lower)->i_nlink > 1)
+ return false;
+
+ /* No, if non-indexed upper with NFS export */
+ if (sb->s_export_op && upper)
+ return false;
+
+ /* Otherwise, hash by lower inode for fsnotify */
+ return true;
+}
+
struct inode *ovl_get_inode(struct dentry *dentry, struct dentry *upperdentry,
struct dentry *index)
{
+ struct super_block *sb = dentry->d_sb;
struct dentry *lowerdentry = ovl_dentry_lower(dentry);
struct inode *realinode = upperdentry ? d_inode(upperdentry) : NULL;
struct inode *inode;
- /* Already indexed or could be indexed on copy up? */
- bool indexed = (index || (ovl_indexdir(dentry->d_sb) && !upperdentry));
- struct dentry *origin = indexed ? lowerdentry : NULL;
+ bool bylower = ovl_hash_bylower(sb, upperdentry, lowerdentry, index);
bool is_dir;
- if (WARN_ON(upperdentry && indexed && !lowerdentry))
- return ERR_PTR(-EIO);
-
if (!realinode)
realinode = d_inode(lowerdentry);
/*
- * Copy up origin (lower) may exist for non-indexed non-dir upper, but
- * we must not use lower as hash key in that case.
- * Hash non-dir that is or could be indexed by origin inode.
- * Hash dir that is or could be merged by origin inode.
- * Hash pure upper and non-indexed non-dir by upper inode.
+ * Copy up origin (lower) may exist for non-indexed upper, but we must
+ * not use lower as hash key if this is a broken hardlink.
*/
is_dir = S_ISDIR(realinode->i_mode);
- if (is_dir)
- origin = lowerdentry;
-
- if (upperdentry || origin) {
- struct inode *key = d_inode(origin ?: upperdentry);
+ if (upperdentry || bylower) {
+ struct inode *key = d_inode(bylower ? lowerdentry :
+ upperdentry);
unsigned int nlink = is_dir ? 1 : realinode->i_nlink;
- inode = iget5_locked(dentry->d_sb, (unsigned long) key,
+ inode = iget5_locked(sb, (unsigned long) key,
ovl_inode_test, ovl_inode_set, key);
if (!inode)
goto out_nomem;
@@ -664,7 +689,8 @@ struct inode *ovl_get_inode(struct dentry *dentry, struct dentry *upperdentry,
nlink = ovl_get_nlink(lowerdentry, upperdentry, nlink);
set_nlink(inode, nlink);
} else {
- inode = new_inode(dentry->d_sb);
+ /* Lower hardlink that will be broken on copy up */
+ inode = new_inode(sb);
if (!inode)
goto out_nomem;
}
--
2.19.0.605.g01d371f741-goog
The keyctl_dh_params struct in uapi/linux/keyctl.h contains the symbol
"private" which means that the header file will cause compilation failure
if #included in to a C++ program. Further, the patch that added the same
struct to the keyutils package named the symbol "priv", not "private".
The previous attempt to fix this (commit 8a2336e549d3) did so by simply
renaming the kernel's copy of the field to dh_private, but this then breaks
existing userspace and as such has been reverted (commit 8c0f9f5b309d).
[And note, to those who think that wrapping the struct in extern "C" {}
will work: it won't; that only changes how symbol names are presented to
the assembler and linker.].
Instead, insert an anonymous union around the "private" member and add a
second member in there with the name "priv" to match the one in the
keyutils package. The "private" member is then wrapped in !__cplusplus
cpp-conditionals to hide it from C++.
Fixes: ddbb41148724 ("KEYS: Add KEYCTL_DH_COMPUTE command")
Fixes: 8a2336e549d3 ("uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name")
Signed-off-by: David Howells <dhowells(a)redhat.com>
cc: Randy Dunlap <rdunlap(a)infradead.org>
cc: Lubomir Rintel <lkundrak(a)v3.sk>
cc: James Morris <jmorris(a)namei.org>
cc: Mat Martineau <mathew.j.martineau(a)linux.intel.com>
cc: Stephan Mueller <smueller(a)chronox.de>
cc: Andrew Morton <akpm(a)linux-foundation.org>
cc: Linus Torvalds <torvalds(a)linux-foundation.org>
cc: stable(a)vger.kernel.org
---
include/uapi/linux/keyctl.h | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/include/uapi/linux/keyctl.h b/include/uapi/linux/keyctl.h
index 7b8c9e19bad1..0f3cb13db8e9 100644
--- a/include/uapi/linux/keyctl.h
+++ b/include/uapi/linux/keyctl.h
@@ -65,7 +65,12 @@
/* keyctl structures */
struct keyctl_dh_params {
- __s32 private;
+ union {
+#ifndef __cplusplus
+ __s32 private;
+#endif
+ __s32 priv;
+ };
__s32 prime;
__s32 base;
};
The debounce value passed to mmc_gpiod_request_cd() function is in
microseconds, but msecs_to_jiffies() requires the value to be in
miliseconds to properly calculate the delay, so adjust the value stored
in cd_debounce_delay_ms context entry.
Fixes: 1d71926bbd59 ("mmc: core: Fix debounce time to use microseconds")
Fixes: bfd694d5e21c ("mmc: core: Add tunable delay before detecting card
after card is inserted")
Cc: stable(a)vger.kernel.org # v4.18+
Signed-off-by: Marek Szyprowski <m.szyprowski(a)samsung.com>
---
This patch fixes eMMC card detection on Exynos5410-based Odroid XU board,
broken since Linux next-20180928.
---
drivers/mmc/core/slot-gpio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/mmc/core/slot-gpio.c b/drivers/mmc/core/slot-gpio.c
index 2a833686784b..86803a3a04dc 100644
--- a/drivers/mmc/core/slot-gpio.c
+++ b/drivers/mmc/core/slot-gpio.c
@@ -271,7 +271,7 @@ int mmc_gpiod_request_cd(struct mmc_host *host, const char *con_id,
if (debounce) {
ret = gpiod_set_debounce(desc, debounce);
if (ret < 0)
- ctx->cd_debounce_delay_ms = debounce;
+ ctx->cd_debounce_delay_ms = debounce / 1000;
}
if (gpio_invert)
--
2.17.1
Since the addition of platform MSI support, there were two helpers
supposed to allocate/free IRQs for a device:
platform_msi_domain_alloc_irqs()
platform_msi_domain_free_irqs()
In these helpers, IRQ descriptors are allocated in the "alloc" routine
while they are freed in the "free" one.
Later, two other helpers have been added to handle IRQ domains on top
of MSI domains:
platform_msi_domain_alloc()
platform_msi_domain_free()
Seen from the outside, the logic is pretty close with the former
helpers and people used it with the same logic as before: a
platform_msi_domain_alloc() call should be balanced with a
platform_msi_domain_free() call. While this is probably what was
intended to do, the platform_msi_domain_free() does not remove/free
the IRQ descriptor(s) created/inserted in
platform_msi_domain_alloc().
One effect of such situation is that removing a module that requested
an IRQ will let one orphaned IRQ descriptor (with an allocated MSI
entry) in the device descriptors list. Next time the module will be
inserted back, one will observe that the allocation will happen twice
in the MSI domain, one time for the remaining descriptor, one time for
the new one. It also has the side effect to quickly overshoot the
maximum number of allocated MSI and then prevent any module requesting
an interrupt in the same domain to be inserted anymore.
This situation has been met with loops of insertion/removal of the
mvpp2.ko module (requesting 15 MSIs each time).
Fixes: 552c494a7666 ("platform-msi: Allow creation of a MSI-based stacked irq domain")
Cc: stable(a)vger.kernel.org
Signed-off-by: Miquel Raynal <miquel.raynal(a)bootlin.com>
---
drivers/base/platform-msi.c | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/drivers/base/platform-msi.c b/drivers/base/platform-msi.c
index 60d6cc618f1c..b9d9d1729215 100644
--- a/drivers/base/platform-msi.c
+++ b/drivers/base/platform-msi.c
@@ -354,6 +354,20 @@ platform_msi_create_device_domain(struct device *dev,
return NULL;
}
+static void platform_msi_domain_free_descs(struct irq_domain *domain, int virq,
+ int nvec)
+{
+ struct platform_msi_priv_data *data = domain->host_data;
+ struct msi_desc *desc, *tmp;
+
+ list_for_each_entry_safe(desc, tmp, dev_to_msi_list(data->dev), list) {
+ if (desc->irq >= virq && desc->irq < (virq + nvec)) {
+ list_del(&desc->list);
+ free_msi_entry(desc);
+ }
+ }
+}
+
/**
* platform_msi_domain_free - Free interrupts associated with a platform-msi
* domain
@@ -375,6 +389,8 @@ void platform_msi_domain_free(struct irq_domain *domain, unsigned int virq,
irq_domain_free_irqs_common(domain, desc->irq, 1);
}
+
+ platform_msi_domain_free_descs(domain, virq, nvec);
}
/**
--
2.17.1
Hi Ingo,
Please consider pulling,
- Arnaldo
Test results at the end of this message, as usual.
The following changes since commit 5d05dfd13f20b01a3cd5d293058baa7d5c1583b6:
Merge tag 'perf-urgent-for-mingo-4.19-20180918' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/urgent (2018-09-19 13:25:35 +0200)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux.git tags/perf-urgent-for-mingo-4.19-20180928
for you to fetch changes up to 30aaba0acd1b4b6e69c45c416f2dbc9c8c5bdd50:
perf python: Use -Wno-redundant-decls to build with PYTHON=python3 (2018-09-27 22:31:05 -0300)
----------------------------------------------------------------
perf/urgent fixes:
- Fix the build on Clear Linux, coping with redundant declarations of
function prototypes in python3 header files by adding
-Wno-redundant-decls to build with PYTHON=python3 (Arnaldo Carvalho de Melo)
- Fixes for processing inline frames in backtraces using DWARF based
unwinding (Milian Wolff)
- Cope with bad DWARF info for function names for inline frames,not
trying to demangle this symbol. Problem reported with rust but
reproduced as well with C++. Problem reported to the libbpf
maintainers (Milian Wolff)
- Fix python export to postgresql and sqlite code (Adrian Hunter)
Signed-off-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
----------------------------------------------------------------
Adrian Hunter (2):
perf script python: Fix export-to-postgresql.py occasional failure
perf script python: Fix export-to-sqlite.py sample columns
Arnaldo Carvalho de Melo (1):
perf python: Use -Wno-redundant-decls to build with PYTHON=python3
Milian Wolff (3):
perf report: Don't try to map ip to invalid map
perf report: Use the offset address to find inline frames
perf report: Don't crash on invalid inline debug information
tools/perf/scripts/python/export-to-postgresql.py | 9 +++++++++
tools/perf/scripts/python/export-to-sqlite.py | 6 +++++-
tools/perf/util/machine.c | 11 ++++++-----
tools/perf/util/setup.py | 2 +-
tools/perf/util/srcline.c | 3 +++
5 files changed, 24 insertions(+), 7 deletions(-)
Test results:
The first ones are container (docker) based builds of tools/perf with
and without libelf support. Where clang is available, it is also used
to build perf with/without libelf, and building with LIBCLANGLLVM=1
(built-in clang) with gcc and clang when clang and its devel libraries
are installed.
The objtool and samples/bpf/ builds are disabled now that I'm switching from
using the sources in a local volume to fetching them from a http server to
build it inside the container, to make it easier to build in a container cluster.
Those will come back later.
Several are cross builds, the ones with -x-ARCH and the android one, and those
may not have all the features built, due to lack of multi-arch devel packages,
available and being used so far on just a few, like
debian:experimental-x-{arm64,mipsel}.
The 'perf test' one will perform a variety of tests exercising
tools/perf/util/, tools/lib/{bpf,traceevent,etc}, as well as run perf commands
with a variety of command line event specifications to then intercept the
sys_perf_event syscall to check that the perf_event_attr fields are set up as
expected, among a variety of other unit tests.
Then there is the 'make -C tools/perf build-test' ones, that build tools/perf/
with a variety of feature sets, exercising the build with an incomplete set of
features as well as with a complete one. It is planned to have it run on each
of the containers mentioned above, using some container orchestration
infrastructure. Get in contact if interested in helping having this in place.
The Clear Linux container is building with NO_CLANG=1, the problem preventing
its use when building for python3 has been identified and the next builds will
build in ClearLinux with both gcc and clang. This time around only gcc was
used.
# dm
1 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0
2 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822
3 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0
4 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0
5 alpine:3.8 : Ok gcc (Alpine 6.4.0) 6.4.0
6 alpine:edge : Ok gcc (Alpine 6.4.0) 6.4.0
7 amazonlinux:1 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
8 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
9 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
10 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
11 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
12 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
13 centos:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
14 clearlinux:latest : Ok gcc (Clear Linux OS for Intel Architecture) 8.2.1 20180502
15 debian:7 : Ok gcc (Debian 4.7.2-5) 4.7.2
16 debian:8 : Ok gcc (Debian 4.9.2-10+deb8u1) 4.9.2
17 debian:9 : Ok gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
18 debian:experimental : Ok gcc (Debian 8.2.0-7) 8.2.0
19 debian:experimental-x-arm64 : Ok aarch64-linux-gnu-gcc (Debian 8.2.0-4) 8.2.0
20 debian:experimental-x-mips : Ok mips-linux-gnu-gcc (Debian 8.1.0-12) 8.1.0
21 debian:experimental-x-mips64 : Ok mips64-linux-gnuabi64-gcc (Debian 8.1.0-12) 8.1.0
22 debian:experimental-x-mipsel : Ok mipsel-linux-gnu-gcc (Debian 8.1.0-12) 8.1.0
23 fedora:20 : Ok gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-7)
24 fedora:21 : Ok gcc (GCC) 4.9.2 20150212 (Red Hat 4.9.2-6)
25 fedora:22 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
26 fedora:23 : Ok gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
27 fedora:24 : Ok gcc (GCC) 6.3.1 20161221 (Red Hat 6.3.1-1)
28 fedora:24-x-ARC-uClibc : Ok arc-linux-gcc (ARCompact ISA Linux uClibc toolchain 2017.09-rc2) 7.1.1 20170710
29 fedora:25 : Ok gcc (GCC) 6.4.1 20170727 (Red Hat 6.4.1-1)
30 fedora:26 : Ok gcc (GCC) 7.3.1 20180130 (Red Hat 7.3.1-2)
31 fedora:27 : Ok gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6)
32 fedora:28 : Ok gcc (GCC) 8.1.1 20180712 (Red Hat 8.1.1-5)
33 fedora:rawhide : Ok gcc (GCC) 8.2.1 20180905 (Red Hat 8.2.1-3)
34 gentoo-stage3-amd64:latest : Ok gcc (Gentoo 7.3.0-r3 p1.4) 7.3.0
35 mageia:5 : Ok gcc (GCC) 4.9.2
36 mageia:6 : Ok gcc (Mageia 5.5.0-1.mga6) 5.5.0
37 opensuse:13.2 : Ok gcc (SUSE Linux) 4.8.3 20140627 [gcc-4_8-branch revision 212064]
38 opensuse:42.1 : Ok gcc (SUSE Linux) 4.8.5
39 opensuse:42.2 : Ok gcc (SUSE Linux) 4.8.5
40 opensuse:42.3 : Ok gcc (SUSE Linux) 4.8.5
41 opensuse:tumbleweed : Ok gcc (SUSE Linux) 7.3.1 20180323 [gcc-7-branch revision 258812]
42 oraclelinux:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23.0.1)
43 oraclelinux:7 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28.0.1)
44 ubuntu:12.04.5 : Ok gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
45 ubuntu:14.04.4 : Ok gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
46 ubuntu:14.04.4-x-linaro-arm64 : Ok aarch64-linux-gnu-gcc (Linaro GCC 5.5-2017.10) 5.5.0
47 ubuntu:16.04 : Ok gcc (Ubuntu 5.4.0-6ubuntu1~16.04.10) 5.4.0 20160609
48 ubuntu:16.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
49 ubuntu:16.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
50 ubuntu:16.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
51 ubuntu:16.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
52 ubuntu:16.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu/IBM 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
53 ubuntu:16.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 5.4.0-6ubuntu1~16.04.9) 5.4.0 20160609
54 ubuntu:16.10 : Ok gcc (Ubuntu 6.2.0-5ubuntu12) 6.2.0 20161005
55 ubuntu:17.10 : Ok gcc (Ubuntu 7.2.0-8ubuntu3.2) 7.2.0
56 ubuntu:18.04 : Ok gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
57 ubuntu:18.04-x-arm : Ok arm-linux-gnueabihf-gcc (Ubuntu/Linaro 7.3.0-16ubuntu3) 7.3.0
58 ubuntu:18.04-x-arm64 : Ok aarch64-linux-gnu-gcc (Ubuntu/Linaro 7.3.0-16ubuntu3) 7.3.0
59 ubuntu:18.04-x-m68k : Ok m68k-linux-gnu-gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
60 ubuntu:18.04-x-powerpc : Ok powerpc-linux-gnu-gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
61 ubuntu:18.04-x-powerpc64 : Ok powerpc64-linux-gnu-gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
62 ubuntu:18.04-x-powerpc64el : Ok powerpc64le-linux-gnu-gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
63 ubuntu:18.04-x-riscv64 : Ok riscv64-linux-gnu-gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
64 ubuntu:18.04-x-s390 : Ok s390x-linux-gnu-gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
65 ubuntu:18.04-x-sh4 : Ok sh4-linux-gnu-gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
66 ubuntu:18.04-x-sparc64 : Ok sparc64-linux-gnu-gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
67 ubuntu:18.10 : Ok gcc (Ubuntu 8.2.0-4ubuntu1) 8.2.0
#
# uname -a
Linux jouet 4.19.0-rc4-00022-gad3273d5f1b9 #1 SMP Mon Sep 17 17:18:22 -03 2018 x86_64 x86_64 x86_64 GNU/Linux
# git log --oneline -1
30aaba0acd1b perf python: Use -Wno-redundant-decls to build with PYTHON=python3
# perf version --build-options
perf version 4.19.rc4.g30aaba
dwarf: [ on ] # HAVE_DWARF_SUPPORT
dwarf_getlocations: [ on ] # HAVE_DWARF_GETLOCATIONS_SUPPORT
glibc: [ on ] # HAVE_GLIBC_SUPPORT
gtk2: [ on ] # HAVE_GTK2_SUPPORT
syscall_table: [ on ] # HAVE_SYSCALL_TABLE_SUPPORT
libbfd: [ on ] # HAVE_LIBBFD_SUPPORT
libelf: [ on ] # HAVE_LIBELF_SUPPORT
libnuma: [ on ] # HAVE_LIBNUMA_SUPPORT
numa_num_possible_cpus: [ on ] # HAVE_LIBNUMA_SUPPORT
libperl: [ on ] # HAVE_LIBPERL_SUPPORT
libpython: [ on ] # HAVE_LIBPYTHON_SUPPORT
libslang: [ on ] # HAVE_SLANG_SUPPORT
libcrypto: [ on ] # HAVE_LIBCRYPTO_SUPPORT
libunwind: [ on ] # HAVE_LIBUNWIND_SUPPORT
libdw-dwarf-unwind: [ on ] # HAVE_DWARF_SUPPORT
zlib: [ on ] # HAVE_ZLIB_SUPPORT
lzma: [ on ] # HAVE_LZMA_SUPPORT
get_cpuid: [ on ] # HAVE_AUXTRACE_SUPPORT
bpf: [ on ] # HAVE_LIBBPF_SUPPORT
# perf test
1: vmlinux symtab matches kallsyms : Ok
2: Detect openat syscall event : Ok
3: Detect openat syscall event on all cpus : Ok
4: Read samples using the mmap interface : Ok
5: Test data source output : Ok
6: Parse event definition strings : Ok
7: Simple expression parser : Ok
8: PERF_RECORD_* events & perf_sample fields : Ok
9: Parse perf pmu format : Ok
10: DSO data read : Ok
11: DSO data cache : Ok
12: DSO data reopen : Ok
13: Roundtrip evsel->name : Ok
14: Parse sched tracepoints fields : Ok
15: syscalls:sys_enter_openat event fields : Ok
16: Setup struct perf_event_attr : Ok
17: Match and link multiple hists : Ok
18: 'import perf' in python : Ok
19: Breakpoint overflow signal handler : Ok
20: Breakpoint overflow sampling : Ok
21: Breakpoint accounting : Ok
22: Number of exit events of a simple workload : Ok
23: Software clock events period values : Ok
24: Object code reading : Ok
25: Sample parsing : Ok
26: Use a dummy software event to keep tracking : Ok
27: Parse with no sample_id_all bit set : Ok
28: Filter hist entries : Ok
29: Lookup mmap thread : Ok
30: Share thread mg : Ok
31: Sort output of hist entries : Ok
32: Cumulate child hist entries : Ok
33: Track with sched_switch : Ok
34: Filter fds with revents mask in a fdarray : Ok
35: Add fd to a fdarray, making it autogrow : Ok
36: kmod_path__parse : Ok
37: Thread map : Ok
38: LLVM search and compile :
38.1: Basic BPF llvm compile : Ok
38.2: kbuild searching : Ok
38.3: Compile source for BPF prologue generation : Ok
38.4: Compile source for BPF relocation : Ok
39: Session topology : Ok
40: BPF filter :
40.1: Basic BPF filtering : Ok
40.2: BPF pinning : Ok
40.3: BPF prologue generation : Ok
40.4: BPF relocation checker : Ok
41: Synthesize thread map : Ok
42: Remove thread map : Ok
43: Synthesize cpu map : Ok
44: Synthesize stat config : Ok
45: Synthesize stat : Ok
46: Synthesize stat round : Ok
47: Synthesize attr update : Ok
48: Event times : Ok
49: Read backward ring buffer : Ok
50: Print cpu map : Ok
51: Probe SDT events : Ok
52: is_printable_array : Ok
53: Print bitmap : Ok
54: perf hooks : Ok
55: builtin clang support : Skip (not compiled in)
56: unit_number__scnprintf : Ok
57: mem2node : Ok
58: x86 rdpmc : Ok
59: Convert perf time to TSC : Ok
60: DWARF unwind : Ok
61: x86 instruction decoder - new instructions : Ok
62: x86 bp modify : Ok
63: Use vfs_getname probe to get syscall args filenames : Ok
64: Check open filename arg using perf trace + vfs_getname: Ok
65: probe libc's inet_pton & backtrace it with ping : Ok
66: Add vfs_getname probe to get syscall args filenames : Ok
$ time make -C tools/perf build-test
make: Entering directory '/home/acme/git/perf/tools/perf'
- tarpkg: ./tests/perf-targz-src-pkg .
- /home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP: make FEATURE_DUMP_COPY=/home/acme/git/perf/tools/perf/BUILD_TEST_FEATURE_DUMP feature-dump
make_no_gtk2_O: make NO_GTK2=1
make_install_O: make install
make_install_prefix_O: make install prefix=/tmp/krava
make_tags_O: make tags
make_static_O: make LDFLAGS=-static
make_debug_O: make DEBUG=1
make_no_libperl_O: make NO_LIBPERL=1
make_no_libnuma_O: make NO_LIBNUMA=1
make_no_libunwind_O: make NO_LIBUNWIND=1
make_clean_all_O: make clean all
make_no_scripts_O: make NO_LIBPYTHON=1 NO_LIBPERL=1
make_util_pmu_bison_o_O: make util/pmu-bison.o
make_no_ui_O: make NO_NEWT=1 NO_SLANG=1 NO_GTK2=1
make_no_demangle_O: make NO_DEMANGLE=1
make_no_libbpf_O: make NO_LIBBPF=1
make_help_O: make help
make_no_libbionic_O: make NO_LIBBIONIC=1
make_no_libaudit_O: make NO_LIBAUDIT=1
make_perf_o_O: make perf.o
make_no_auxtrace_O: make NO_AUXTRACE=1
make_util_map_o_O: make util/map.o
make_with_clangllvm_O: make LIBCLANGLLVM=1
make_no_slang_O: make NO_SLANG=1
make_pure_O: make
make_no_libelf_O: make NO_LIBELF=1
make_no_newt_O: make NO_NEWT=1
make_with_babeltrace_O: make LIBBABELTRACE=1
make_no_libdw_dwarf_unwind_O: make NO_LIBDW_DWARF_UNWIND=1
make_doc_O: make doc
make_install_prefix_slash_O: make install prefix=/tmp/krava/
make_no_libpython_O: make NO_LIBPYTHON=1
make_no_backtrace_O: make NO_BACKTRACE=1
make_install_bin_O: make install-bin
make_minimal_O: make NO_LIBPERL=1 NO_LIBPYTHON=1 NO_NEWT=1 NO_GTK2=1 NO_DEMANGLE=1 NO_LIBELF=1 NO_LIBUNWIND=1 NO_BACKTRACE=1 NO_LIBNUMA=1 NO_LIBAUDIT=1 NO_LIBBIONIC=1 NO_LIBDW_DWARF_UNWIND=1 NO_AUXTRACE=1 NO_LIBBPF=1 NO_LIBCRYPTO=1 NO_SDT=1 NO_JVMTI=1
OK
make: Leaving directory '/home/acme/git/perf/tools/perf'
$
From: Alexey Dobriyan <adobriyan(a)gmail.com>
/*
* cpu_partial determined the maximum number of objects
* kept in the per cpu partial lists of a processor.
*/
Can't be negative.
I hit a real issue that it will result in a large number of memory leak.
Because Freeing slabs are in interrupt context. So it can trigger this issue.
put_cpu_partial can be interrupted more than once.
due to a union struct of lru and pobjects in struct page, when other core handles
page->lru list, for eaxmple, remove_partial in freeing slab code flow, It will
result in pobjects being a negative value(0xdead0000). Therefore, a large number
of slabs will be added to per_cpu partial list.
I had posted the issue to community before. The detailed issue description is as follows.
Link: https://www.spinics.net/lists/kernel/msg2870979.html
After applying the patch, The issue is fixed. So the patch is a effective bugfix.
It should go into stable.
Signed-off-by: Alexey Dobriyan <adobriyan(a)gmail.com>
Acked-by: Christoph Lameter <cl(a)linux.com>
Cc: Pekka Enberg <penberg(a)kernel.org>
Cc: David Rientjes <rientjes(a)google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim(a)lge.com>
Cc: stable(a)vger.kernel.org
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds(a)linux-foundation.org>
Signed-off-by: zhong jiang <zhongjiang(a)huawei.com>
---
include/linux/slub_def.h | 3 ++-
mm/slub.c | 6 +++---
2 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
index 3388511..9b681f2 100644
--- a/include/linux/slub_def.h
+++ b/include/linux/slub_def.h
@@ -67,7 +67,8 @@ struct kmem_cache {
int size; /* The size of an object including meta data */
int object_size; /* The size of an object without meta data */
int offset; /* Free pointer offset. */
- int cpu_partial; /* Number of per cpu partial objects to keep around */
+ /* Number of per cpu partial objects to keep around */
+ unsigned int cpu_partial;
struct kmem_cache_order_objects oo;
/* Allocation and freeing of slabs */
diff --git a/mm/slub.c b/mm/slub.c
index 2284c43..c33b0e1 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1661,7 +1661,7 @@ static void *get_partial_node(struct kmem_cache *s, struct kmem_cache_node *n,
{
struct page *page, *page2;
void *object = NULL;
- int available = 0;
+ unsigned int available = 0;
int objects;
/*
@@ -4674,10 +4674,10 @@ static ssize_t cpu_partial_show(struct kmem_cache *s, char *buf)
static ssize_t cpu_partial_store(struct kmem_cache *s, const char *buf,
size_t length)
{
- unsigned long objects;
+ unsigned int objects;
int err;
- err = kstrtoul(buf, 10, &objects);
+ err = kstrtouint(buf, 10, &objects);
if (err)
return err;
if (objects && !kmem_cache_has_cpu_partial(s))
--
1.7.12.4
This is the start of the stable review cycle for the 4.18.11 release.
There are 88 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sat Sep 29 09:02:26 UTC 2018.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.18.11-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.18.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.18.11-rc1
Steve Wise <swise(a)opengridcomputing.com>
iw_cxgb4: only allow 1 flush on user qps
Nadav Amit <namit(a)vmware.com>
vmw_balloon: include asm/io.h
Steve Muckle <smuckle(a)google.com>
sched/fair: Fix vruntime_normalized() for remote non-migration wakeup
Toshi Kani <toshi.kani(a)hpe.com>
ext4, dax: set ext4_dax_aops for dax files
Toshi Kani <toshi.kani(a)hpe.com>
ext4, dax: add ext4_bmap to ext4_dax_aops
Eric Biggers <ebiggers(a)google.com>
ext4: show test_dummy_encryption mount option in /proc/mounts
Li Dongyang <dongyangli(a)ddn.com>
ext4: don't mark mmp buffer head dirty
Theodore Ts'o <tytso(a)mit.edu>
ext4: fix online resizing for bigalloc file systems with a 1k block size
Theodore Ts'o <tytso(a)mit.edu>
ext4: fix online resize's handling of a too-small final block group
Theodore Ts'o <tytso(a)mit.edu>
ext4: recalucate superblock checksum after updating free blocks/inodes
Theodore Ts'o <tytso(a)mit.edu>
ext4: avoid arithemetic overflow that can trigger a BUG
Theodore Ts'o <tytso(a)mit.edu>
ext4: avoid divide by zero fault when deleting corrupted inline directories
Theodore Ts'o <tytso(a)mit.edu>
ext4: check to make sure the rename(2)'s destination is not freed
Gustavo A. R. Silva <gustavo(a)embeddedor.com>
tty: vt_ioctl: fix potential Spectre v1
Lyude Paul <lyude(a)redhat.com>
drm/atomic: Use drm_drv_uses_atomic_modeset() for debugfs creation
Alex Deucher <alexander.deucher(a)amd.com>
drm/amdgpu: add new polaris pci id
Emil Lundmark <lndmrk(a)chromium.org>
drm: udl: Destroy framebuffer only if it was initialized
Boris Brezillon <boris.brezillon(a)bootlin.com>
drm/vc4: Fix the "no scaling" case on multi-planar YUV formats
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Prevent handling ACPI HPD events too early
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Fix deadlock with fb_helper with async RPM requests
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Don't forget to cancel hpd_work on suspend/unload
Lyude Paul <lyude(a)redhat.com>
drm/nouveau: Fix deadlocks in nouveau_connector_detect()
Lyude Paul <lyude(a)redhat.com>
drm/nouveau: Remove duplicate poll_enable() in pmops_runtime_suspend()
Lyude Paul <lyude(a)redhat.com>
drm/nouveau: Only write DP_MSTM_CTRL when needed
Lyude Paul <lyude(a)redhat.com>
drm/nouveau: Reset MST branching unit before enabling
Imre Deak <imre.deak(a)intel.com>
drm/i915/bdw: Increase IPS disable timeout to 100ms
Junxiao Bi <junxiao.bi(a)oracle.com>
ocfs2: fix ocfs2 read block panic
Jens Axboe <axboe(a)kernel.dk>
libata: mask swap internal and hardware tag
Richard Weinberger <richard(a)nod.at>
Revert "ubifs: xattr: Don't operate on deleted inodes"
Vincent Pelletier <plr.vincent(a)gmail.com>
scsi: target: iscsi: Use bin2hex instead of a re-implementation
Vincent Pelletier <plr.vincent(a)gmail.com>
scsi: target: iscsi: Use hex2bin instead of a re-implementation
Lubomir Rintel <lkundrak(a)v3.sk>
Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name"
Alexei Starovoitov <ast(a)kernel.org>
bpf/verifier: disallow pointer subtraction
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Revert "rpmsg: core: add support to power domains for devices"
Joel Fernandes (Google) <joel(a)joelfernandes.org>
mm: shmem.c: Correctly annotate new inodes for lockdep
Pasha Tatashin <Pavel.Tatashin(a)microsoft.com>
mm: disable deferred struct page for 32-bit arches
KJ Tsanaktsidis <ktsanaktsidis(a)zendesk.com>
fork: report pid exhaustion correctly
Ondrej Mosnacek <omosnace(a)redhat.com>
crypto: x86/aegis,morus - Do not require OSXSAVE for SSE2
Vaibhav Nagarnaik <vnagarnaik(a)google.com>
ring-buffer: Allow for rescheduling when removing pages
Mika Westerberg <mika.westerberg(a)linux.intel.com>
Revert "PCI: Add ACS quirk for Intel 300 series"
Kirill Kapranov <kirill.kapranov(a)compulab.co.il>
spi: fix IDR collision on systems with both fixed and dynamic SPI bus numbers
Boris Ostrovsky <boris.ostrovsky(a)oracle.com>
xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
Juergen Gross <jgross(a)suse.com>
xen/netfront: don't bug in case of too many frags
Mario Limonciello <mario.limonciello(a)dell.com>
platform/x86: alienware-wmi: Correct a memory leak
Mario Limonciello <mario.limonciello(a)dell.com>
platform/x86: dell-smbios-wmi: Correct a memory leak
Masahiro Yamada <yamada.masahiro(a)socionext.com>
mtd: rawnand: denali: fix a race condition when DMA is kicked
Boris Brezillon <boris.brezillon(a)bootlin.com>
mtd: devices: m25p80: Make sure the buffer passed in op is DMA-able
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: oxfw: fix memory leak of private data
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: oxfw: fix memory leak of discovered stream formats at error path
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: oxfw: fix memory leak for model-dependent data at error path
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: fireworks: fix memory leak of response buffer at error path
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: firewire-tascam: fix memory leak of private data
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: firewire-digi00x: fix memory leak of private data
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: fireface: fix memory leak in ff400_switch_fetching_mode()
Willy Tarreau <w(a)1wt.eu>
ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path
Dmitry V. Levin <ldv(a)altlinux.org>
ASoC: uapi: fix sound/skl-tplg-interface.h userspace compilation errors
Jiada Wang <jiada_wang(a)mentor.com>
ASoC: rsnd: fixup not to call clk_get/set under non-atomic
Andrew F. Davis <afd(a)ti.com>
ASoC: tas6424: Save last fault register even when clear
Sébastien Szymanski <sebastien.szymanski(a)armadeus.com>
ASoC: cs4265: fix MMTLR Data switch control
Marcel Ziswiler <marcel.ziswiler(a)toradex.com>
ASoC: wm9712: fix replace codec to component
Suren Baghdasaryan <surenb(a)google.com>
NFC: Fix the number of pipes
Suren Baghdasaryan <surenb(a)google.com>
NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
Roopa Prabhu <roopa(a)cumulusnetworks.com>
net: rtnl_configure_link: fix dev flags changes arg to __dev_notify_flags
Antoine Tenart <antoine.tenart(a)bootlin.com>
net: mvpp2: let phylink manage the carrier state
Peter Oskolkov <posk(a)google.com>
net/ipv6: do not copy dst flags on rt init
Xin Long <lucien.xin(a)gmail.com>
ipv6: use rt6_info members when dst is set in rt6_fill_node
Michael Chan <michael.chan(a)broadcom.com>
bnxt_en: Fix VF mac address regression.
Daniel Borkmann <daniel(a)iogearbox.net>
tls: fix currently broken MSG_PEEK behavior
Johannes Berg <johannes.berg(a)intel.com>
socket: fix struct ifreq size in compat ioctl
Andrew Lunn <andrew(a)lunn.ch>
net: dsa: mv88e6xxx: Fix ATU Miss Violation
Stephen Hemminger <stephen(a)networkplumber.org>
hv_netvsc: fix schedule in RCU context
Davide Caratti <dcaratti(a)redhat.com>
net/sched: act_sample: fix NULL dereference in the data path
Paolo Abeni <pabeni(a)redhat.com>
udp6: add missing checks on edumux packet processing
Vasily Khoruzhick <vasilykh(a)arista.com>
neighbour: confirm neigh entries when ARP packet is received
Sabrina Dubroca <sd(a)queasysnail.net>
tls: clear key material from kernel memory when do_tls_setsockopt_conf fails
Sabrina Dubroca <sd(a)queasysnail.net>
tls: zero the crypto information from tls_context before freeing
Sabrina Dubroca <sd(a)queasysnail.net>
tls: don't copy the key out of tls12_crypto_info_aes_gcm_128
Paolo Abeni <pabeni(a)redhat.com>
udp4: fix IP_CMSG_CHECKSUM for connected sockets
Bjørn Mork <bjorn(a)mork.no>
qmi_wwan: set DTR for modems in forced USB2 mode
Guillaume Nault <g.nault(a)alphalink.fr>
pppoe: fix reception of frames with no mac header
Colin Ian King <colin.king(a)canonical.com>
net: hp100: fix always-true check for link up state
Willy Tarreau <w(a)1wt.eu>
net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
Eric Dumazet <edumazet(a)google.com>
ipv6: fix possible use-after-free in ip6_xmit()
Toke Høiland-Jørgensen <toke(a)toke.dk>
gso_segment: Reset skb->mac_len after modifying network header
-------------
Diffstat:
Makefile | 4 +-
arch/x86/crypto/aegis128-aesni-glue.c | 1 -
arch/x86/crypto/aegis128l-aesni-glue.c | 1 -
arch/x86/crypto/aegis256-aesni-glue.c | 1 -
arch/x86/crypto/morus1280-sse2-glue.c | 1 -
arch/x86/crypto/morus640-sse2-glue.c | 1 -
arch/x86/xen/pmu.c | 2 +-
drivers/ata/libata-core.c | 14 +++-
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 14 ++--
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1 +
drivers/gpu/drm/drm_atomic.c | 2 +-
drivers/gpu/drm/drm_debugfs.c | 2 +-
drivers/gpu/drm/i915/intel_display.c | 8 +-
drivers/gpu/drm/nouveau/dispnv50/disp.c | 67 +++++++++++----
drivers/gpu/drm/nouveau/nouveau_connector.c | 42 ++++++++--
drivers/gpu/drm/nouveau/nouveau_display.c | 44 +++++++---
drivers/gpu/drm/nouveau/nouveau_display.h | 2 +-
drivers/gpu/drm/nouveau/nouveau_drm.c | 3 +-
drivers/gpu/drm/nouveau/nouveau_fbcon.c | 57 +++++++++++++
drivers/gpu/drm/nouveau/nouveau_fbcon.h | 5 ++
drivers/gpu/drm/udl/udl_fb.c | 8 +-
drivers/gpu/drm/vc4/vc4_plane.c | 25 +++---
drivers/infiniband/hw/cxgb4/qp.c | 6 ++
drivers/misc/vmw_balloon.c | 1 +
drivers/mtd/devices/m25p80.c | 26 +++++-
drivers/mtd/nand/raw/denali.c | 6 ++
drivers/net/appletalk/ipddp.c | 8 +-
drivers/net/dsa/mv88e6xxx/global1.h | 2 +-
drivers/net/dsa/mv88e6xxx/global1_atu.c | 2 +-
drivers/net/ethernet/broadcom/bnxt/bnxt.c | 9 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.c | 9 +-
drivers/net/ethernet/broadcom/bnxt/bnxt_sriov.h | 2 +-
drivers/net/ethernet/hp/hp100.c | 2 +-
drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c | 21 ++---
drivers/net/hyperv/netvsc_drv.c | 9 +-
drivers/net/ppp/pppoe.c | 3 +
drivers/net/usb/qmi_wwan.c | 14 ++--
drivers/net/xen-netfront.c | 8 +-
drivers/pci/quirks.c | 6 --
drivers/platform/x86/alienware-wmi.c | 1 +
drivers/platform/x86/dell-smbios-wmi.c | 1 +
drivers/rpmsg/rpmsg_core.c | 7 --
drivers/spi/spi.c | 9 ++
drivers/target/iscsi/iscsi_target_auth.c | 45 ++++------
drivers/tty/vt/vt_ioctl.c | 4 +
fs/ext4/dir.c | 20 ++---
fs/ext4/ext4.h | 3 +
fs/ext4/inline.c | 4 +-
fs/ext4/inode.c | 11 ++-
fs/ext4/mmp.c | 1 -
fs/ext4/namei.c | 6 ++
fs/ext4/resize.c | 23 ++++-
fs/ext4/super.c | 4 +
fs/ocfs2/buffer_head_io.c | 1 +
fs/ubifs/xattr.c | 24 ------
include/net/nfc/hci.h | 2 +-
include/net/tls.h | 19 ++---
include/uapi/linux/keyctl.h | 2 +-
include/uapi/sound/skl-tplg-interface.h | 106 ++++++++++++------------
kernel/bpf/verifier.c | 2 +-
kernel/pid.c | 2 +-
kernel/sched/fair.c | 3 +-
kernel/trace/ring_buffer.c | 2 +
mm/Kconfig | 1 +
mm/shmem.c | 2 +
net/core/neighbour.c | 13 +--
net/core/rtnetlink.c | 2 +-
net/ipv4/af_inet.c | 1 +
net/ipv4/udp.c | 49 ++++++-----
net/ipv6/ip6_offload.c | 1 +
net/ipv6/ip6_output.c | 6 +-
net/ipv6/route.c | 44 ++++++----
net/ipv6/udp.c | 65 ++++++++-------
net/nfc/hci/core.c | 10 +++
net/sched/act_sample.c | 2 +-
net/socket.c | 22 +++--
net/tls/tls_device.c | 4 +-
net/tls/tls_device_fallback.c | 2 +-
net/tls/tls_main.c | 22 +++--
net/tls/tls_sw.c | 21 +++--
security/keys/dh.c | 2 +-
sound/firewire/bebob/bebob.c | 2 +
sound/firewire/bebob/bebob_maudio.c | 28 +++----
sound/firewire/digi00x/digi00x.c | 1 +
sound/firewire/fireface/ff-protocol-ff400.c | 9 +-
sound/firewire/fireworks/fireworks.c | 2 +
sound/firewire/oxfw/oxfw.c | 10 +++
sound/firewire/tascam/tascam.c | 1 +
sound/pci/emu10k1/emufx.c | 2 +-
sound/soc/codecs/cs4265.c | 4 +-
sound/soc/codecs/tas6424.c | 12 ++-
sound/soc/codecs/wm9712.c | 2 +-
sound/soc/sh/rcar/core.c | 11 +++
sound/soc/sh/rcar/rsnd.h | 7 ++
sound/soc/sh/rcar/ssi.c | 16 ++--
95 files changed, 714 insertions(+), 403 deletions(-)
This is the start of the stable review cycle for the 4.14.73 release.
There are 64 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sat Sep 29 09:02:21 UTC 2018.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.14.73-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.14.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.14.73-rc1
Thomas Gleixner <tglx(a)linutronix.de>
tick/nohz: Prevent bogus softirq pending warning
Steve Wise <swise(a)opengridcomputing.com>
iw_cxgb4: only allow 1 flush on user qps
Nadav Amit <namit(a)vmware.com>
vmw_balloon: include asm/io.h
Zachary Zhang <zhangzg(a)marvell.com>
PCI: aardvark: Size bridges before resources allocation
Steve Muckle <smuckle(a)google.com>
sched/fair: Fix vruntime_normalized() for remote non-migration wakeup
Eric Biggers <ebiggers(a)google.com>
ext4: show test_dummy_encryption mount option in /proc/mounts
Li Dongyang <dongyangli(a)ddn.com>
ext4: don't mark mmp buffer head dirty
Theodore Ts'o <tytso(a)mit.edu>
ext4: fix online resizing for bigalloc file systems with a 1k block size
Theodore Ts'o <tytso(a)mit.edu>
ext4: fix online resize's handling of a too-small final block group
Theodore Ts'o <tytso(a)mit.edu>
ext4: recalucate superblock checksum after updating free blocks/inodes
Theodore Ts'o <tytso(a)mit.edu>
ext4: avoid arithemetic overflow that can trigger a BUG
Theodore Ts'o <tytso(a)mit.edu>
ext4: avoid divide by zero fault when deleting corrupted inline directories
Theodore Ts'o <tytso(a)mit.edu>
ext4: check to make sure the rename(2)'s destination is not freed
Gustavo A. R. Silva <gustavo(a)embeddedor.com>
tty: vt_ioctl: fix potential Spectre v1
Lyude Paul <lyude(a)redhat.com>
drm/atomic: Use drm_drv_uses_atomic_modeset() for debugfs creation
Alex Deucher <alexander.deucher(a)amd.com>
drm/amdgpu: add new polaris pci id
Emil Lundmark <lndmrk(a)chromium.org>
drm: udl: Destroy framebuffer only if it was initialized
Boris Brezillon <boris.brezillon(a)bootlin.com>
drm/vc4: Fix the "no scaling" case on multi-planar YUV formats
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Prevent handling ACPI HPD events too early
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Don't forget to cancel hpd_work on suspend/unload
Lyude Paul <lyude(a)redhat.com>
drm/nouveau: Fix deadlocks in nouveau_connector_detect()
Junxiao Bi <junxiao.bi(a)oracle.com>
ocfs2: fix ocfs2 read block panic
Richard Weinberger <richard(a)nod.at>
Revert "ubifs: xattr: Don't operate on deleted inodes"
Vincent Pelletier <plr.vincent(a)gmail.com>
scsi: target: iscsi: Use bin2hex instead of a re-implementation
Vincent Pelletier <plr.vincent(a)gmail.com>
scsi: target: iscsi: Use hex2bin instead of a re-implementation
Lubomir Rintel <lkundrak(a)v3.sk>
Revert "uapi/linux/keyctl.h: don't use C++ reserved keyword as a struct member name"
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Revert "rpmsg: core: add support to power domains for devices"
Joel Fernandes (Google) <joel(a)joelfernandes.org>
mm: shmem.c: Correctly annotate new inodes for lockdep
Vaibhav Nagarnaik <vnagarnaik(a)google.com>
ring-buffer: Allow for rescheduling when removing pages
Mika Westerberg <mika.westerberg(a)linux.intel.com>
Revert "PCI: Add ACS quirk for Intel 300 series"
Kirill Kapranov <kirill.kapranov(a)compulab.co.il>
spi: fix IDR collision on systems with both fixed and dynamic SPI bus numbers
Boris Ostrovsky <boris.ostrovsky(a)oracle.com>
xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
Juergen Gross <jgross(a)suse.com>
xen/netfront: don't bug in case of too many frags
Mario Limonciello <mario.limonciello(a)dell.com>
platform/x86: alienware-wmi: Correct a memory leak
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: oxfw: fix memory leak of private data
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: oxfw: fix memory leak of discovered stream formats at error path
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: oxfw: fix memory leak for model-dependent data at error path
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: fireworks: fix memory leak of response buffer at error path
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: firewire-tascam: fix memory leak of private data
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: firewire-digi00x: fix memory leak of private data
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: fireface: fix memory leak in ff400_switch_fetching_mode()
Willy Tarreau <w(a)1wt.eu>
ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path
Jiada Wang <jiada_wang(a)mentor.com>
ASoC: rsnd: fixup not to call clk_get/set under non-atomic
Sébastien Szymanski <sebastien.szymanski(a)armadeus.com>
ASoC: cs4265: fix MMTLR Data switch control
Suren Baghdasaryan <surenb(a)google.com>
NFC: Fix the number of pipes
Suren Baghdasaryan <surenb(a)google.com>
NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
Sabrina Dubroca <sd(a)queasysnail.net>
tls: clear key material from kernel memory when do_tls_setsockopt_conf fails
Sabrina Dubroca <sd(a)queasysnail.net>
tls: zero the crypto information from tls_context before freeing
Sabrina Dubroca <sd(a)queasysnail.net>
tls: don't copy the key out of tls12_crypto_info_aes_gcm_128
Davide Caratti <dcaratti(a)redhat.com>
net/sched: act_sample: fix NULL dereference in the data path
Paolo Abeni <pabeni(a)redhat.com>
udp6: add missing checks on edumux packet processing
Vasily Khoruzhick <vasilykh(a)arista.com>
neighbour: confirm neigh entries when ARP packet is received
Paolo Abeni <pabeni(a)redhat.com>
udp4: fix IP_CMSG_CHECKSUM for connected sockets
Bjørn Mork <bjorn(a)mork.no>
qmi_wwan: set DTR for modems in forced USB2 mode
Guillaume Nault <g.nault(a)alphalink.fr>
pppoe: fix reception of frames with no mac header
Colin Ian King <colin.king(a)canonical.com>
net: hp100: fix always-true check for link up state
Willy Tarreau <w(a)1wt.eu>
net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
Eric Dumazet <edumazet(a)google.com>
ipv6: fix possible use-after-free in ip6_xmit()
Toke Høiland-Jørgensen <toke(a)toke.dk>
gso_segment: Reset skb->mac_len after modifying network header
-------------
Diffstat:
Makefile | 4 +-
arch/x86/xen/pmu.c | 2 +-
drivers/gpu/drm/amd/amdgpu/amdgpu_cgs.c | 14 ++++---
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 1 +
drivers/gpu/drm/drm_atomic.c | 2 +-
drivers/gpu/drm/drm_debugfs.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_connector.c | 42 +++++++++++++++----
drivers/gpu/drm/nouveau/nouveau_display.c | 42 ++++++++++++++-----
drivers/gpu/drm/nouveau/nouveau_display.h | 2 +-
drivers/gpu/drm/nouveau/nouveau_drm.c | 2 +-
drivers/gpu/drm/udl/udl_fb.c | 8 ++--
drivers/gpu/drm/vc4/vc4_plane.c | 25 ++++++-----
drivers/infiniband/hw/cxgb4/qp.c | 6 +++
drivers/misc/vmw_balloon.c | 1 +
drivers/net/appletalk/ipddp.c | 8 +++-
drivers/net/ethernet/hp/hp100.c | 2 +-
drivers/net/ppp/pppoe.c | 3 ++
drivers/net/usb/qmi_wwan.c | 14 +++----
drivers/net/xen-netfront.c | 8 +++-
drivers/pci/host/pci-aardvark.c | 1 +
drivers/pci/quirks.c | 6 ---
drivers/platform/x86/alienware-wmi.c | 1 +
drivers/rpmsg/rpmsg_core.c | 7 ----
drivers/spi/spi.c | 9 ++++
drivers/target/iscsi/iscsi_target_auth.c | 45 ++++++++------------
drivers/tty/vt/vt_ioctl.c | 4 ++
fs/ext4/dir.c | 20 ++++-----
fs/ext4/ext4.h | 3 ++
fs/ext4/inline.c | 4 +-
fs/ext4/inode.c | 9 +++-
fs/ext4/mmp.c | 1 -
fs/ext4/namei.c | 6 +++
fs/ext4/resize.c | 23 +++++++++-
fs/ext4/super.c | 4 ++
fs/ocfs2/buffer_head_io.c | 1 +
fs/ubifs/xattr.c | 24 -----------
include/net/nfc/hci.h | 2 +-
include/net/tls.h | 14 ++++---
include/uapi/linux/keyctl.h | 2 +-
kernel/sched/fair.c | 3 +-
kernel/time/tick-sched.c | 2 +-
kernel/trace/ring_buffer.c | 2 +
mm/shmem.c | 2 +
net/core/neighbour.c | 13 +++---
net/ipv4/af_inet.c | 1 +
net/ipv4/udp.c | 49 ++++++++++++----------
net/ipv6/ip6_offload.c | 1 +
net/ipv6/ip6_output.c | 6 +--
net/ipv6/udp.c | 65 ++++++++++++++++-------------
net/nfc/hci/core.c | 10 +++++
net/sched/act_sample.c | 2 +-
net/tls/tls_main.c | 17 ++++++--
net/tls/tls_sw.c | 7 +---
security/keys/dh.c | 2 +-
sound/firewire/bebob/bebob.c | 2 +
sound/firewire/bebob/bebob_maudio.c | 28 ++++++-------
sound/firewire/digi00x/digi00x.c | 1 +
sound/firewire/fireface/ff-protocol-ff400.c | 9 ++--
sound/firewire/fireworks/fireworks.c | 2 +
sound/firewire/oxfw/oxfw.c | 10 +++++
sound/firewire/tascam/tascam.c | 1 +
sound/pci/emu10k1/emufx.c | 2 +-
sound/soc/codecs/cs4265.c | 4 +-
sound/soc/sh/rcar/core.c | 11 +++++
sound/soc/sh/rcar/rsnd.h | 7 ++++
sound/soc/sh/rcar/ssi.c | 16 ++++---
66 files changed, 401 insertions(+), 248 deletions(-)
Tree/Branch: v3.16.58
Git describe: v3.16.58
Commit: 51f70ddc85 Linux 3.16.58
Build Time: 33 min 54 sec
Passed: 10 / 10 (100.00 %)
Failed: 0 / 10 ( 0.00 %)
Errors: 0
Warnings: 17
Section Mismatches: 0
-------------------------------------------------------------------------------
defconfigs with issues (other than build errors):
5 warnings 0 mismatches : arm64-allmodconfig
2 warnings 0 mismatches : arm-multi_v5_defconfig
2 warnings 0 mismatches : arm-multi_v7_defconfig
1 warnings 0 mismatches : x86_64-defconfig
6 warnings 0 mismatches : arm-allmodconfig
1 warnings 0 mismatches : arm-allnoconfig
1 warnings 0 mismatches : x86_64-allnoconfig
9 warnings 0 mismatches : x86_64-allmodconfig
2 warnings 0 mismatches : arm64-defconfig
-------------------------------------------------------------------------------
Warnings Summary: 17
7 <stdin>:1238:2: warning: #warning syscall seccomp not implemented [-Wcpp]
2 ../ipc/sem.c:377:6: warning: '___p1' may be used uninitialized in this function [-Wmaybe-uninitialized]
2 ../drivers/staging/vt6656/main_usb.c:1101:7: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
2 ../drivers/staging/vt6656/dpc.c:712:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
2 ../drivers/net/ethernet/broadcom/genet/bcmgenet.c:1346:17: warning: unused variable 'kdev' [-Wunused-variable]
2 ../drivers/media/dvb-frontends/drxk_hard.c:2223:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
2 ../drivers/media/dvb-frontends/drxd_hard.c:2631:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
1 ../drivers/staging/rtl8192ee/rtl8192ee/hw.c:529:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
1 ../drivers/staging/rtl8192ee/rtl8192ee/hw.c:524:4: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
1 ../drivers/staging/rtl8192ee/btcoexist/halbtc8821a2ant.c:2338:2: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
1 ../drivers/scsi/fnic/fnic_fcs.c:104:6: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
1 ../drivers/platform/x86/eeepc-laptop.c:279:10: warning: 'value' may be used uninitialized in this function [-Wmaybe-uninitialized]
1 ../drivers/net/wireless/rtlwifi/rtl8723be/hw.c:1132:2: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
1 ../drivers/mtd/nand/omap2.c:1318:12: warning: 'omap_calculate_ecc_bch_multi' defined but not used [-Wunused-function]
1 ../drivers/media/platform/davinci/vpfe_capture.c:291:12: warning: 'vpfe_get_ccdc_image_format' defined but not used [-Wunused-function]
1 ../drivers/media/platform/davinci/vpfe_capture.c:1718:1: warning: label 'unlock_out' defined but not used [-Wunused-label]
1 ../arch/x86/kernel/cpu/common.c:1096:13: warning: 'syscall32_cpu_init' defined but not used [-Wunused-function]
===============================================================================
Detailed per-defconfig build reports below:
-------------------------------------------------------------------------------
arm64-allmodconfig : PASS, 0 errors, 5 warnings, 0 section mismatches
Warnings:
../drivers/media/dvb-frontends/drxd_hard.c:2631:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
../drivers/media/dvb-frontends/drxk_hard.c:2223:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
../drivers/net/ethernet/broadcom/genet/bcmgenet.c:1346:17: warning: unused variable 'kdev' [-Wunused-variable]
../drivers/staging/vt6656/main_usb.c:1101:7: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
../drivers/staging/vt6656/dpc.c:712:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
-------------------------------------------------------------------------------
arm-multi_v5_defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
<stdin>:1238:2: warning: #warning syscall seccomp not implemented [-Wcpp]
<stdin>:1238:2: warning: #warning syscall seccomp not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-multi_v7_defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
<stdin>:1238:2: warning: #warning syscall seccomp not implemented [-Wcpp]
<stdin>:1238:2: warning: #warning syscall seccomp not implemented [-Wcpp]
-------------------------------------------------------------------------------
x86_64-defconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../drivers/platform/x86/eeepc-laptop.c:279:10: warning: 'value' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
arm-allmodconfig : PASS, 0 errors, 6 warnings, 0 section mismatches
Warnings:
<stdin>:1238:2: warning: #warning syscall seccomp not implemented [-Wcpp]
../drivers/mtd/nand/omap2.c:1318:12: warning: 'omap_calculate_ecc_bch_multi' defined but not used [-Wunused-function]
../drivers/media/platform/davinci/vpfe_capture.c:1718:1: warning: label 'unlock_out' defined but not used [-Wunused-label]
../drivers/media/platform/davinci/vpfe_capture.c:291:12: warning: 'vpfe_get_ccdc_image_format' defined but not used [-Wunused-function]
../drivers/net/ethernet/broadcom/genet/bcmgenet.c:1346:17: warning: unused variable 'kdev' [-Wunused-variable]
<stdin>:1238:2: warning: #warning syscall seccomp not implemented [-Wcpp]
-------------------------------------------------------------------------------
arm-allnoconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
<stdin>:1238:2: warning: #warning syscall seccomp not implemented [-Wcpp]
-------------------------------------------------------------------------------
x86_64-allnoconfig : PASS, 0 errors, 1 warnings, 0 section mismatches
Warnings:
../arch/x86/kernel/cpu/common.c:1096:13: warning: 'syscall32_cpu_init' defined but not used [-Wunused-function]
-------------------------------------------------------------------------------
x86_64-allmodconfig : PASS, 0 errors, 9 warnings, 0 section mismatches
Warnings:
../drivers/media/dvb-frontends/drxd_hard.c:2631:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
../drivers/media/dvb-frontends/drxk_hard.c:2223:3: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
../drivers/scsi/fnic/fnic_fcs.c:104:6: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
../drivers/staging/rtl8192ee/rtl8192ee/hw.c:524:4: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
../drivers/staging/rtl8192ee/rtl8192ee/hw.c:529:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
../drivers/staging/rtl8192ee/btcoexist/halbtc8821a2ant.c:2338:2: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
../drivers/net/wireless/rtlwifi/rtl8723be/hw.c:1132:2: warning: this 'else' clause does not guard... [-Wmisleading-indentation]
../drivers/staging/vt6656/main_usb.c:1101:7: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
../drivers/staging/vt6656/dpc.c:712:5: warning: this 'if' clause does not guard... [-Wmisleading-indentation]
-------------------------------------------------------------------------------
arm64-defconfig : PASS, 0 errors, 2 warnings, 0 section mismatches
Warnings:
../ipc/sem.c:377:6: warning: '___p1' may be used uninitialized in this function [-Wmaybe-uninitialized]
../ipc/sem.c:377:6: warning: '___p1' may be used uninitialized in this function [-Wmaybe-uninitialized]
-------------------------------------------------------------------------------
Passed with no errors, warnings or mismatches:
arm64-allnoconfig
This is the start of the stable review cycle for the 4.4.159 release.
There are 28 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sat Sep 29 09:06:27 UTC 2018.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.4.159-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.4.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.4.159-rc1
Steve Wise <swise(a)opengridcomputing.com>
iw_cxgb4: only allow 1 flush on user qps
Roderick Colenbrander <roderick.colenbrander(a)sony.com>
HID: sony: Support DS4 dongle
Roderick Colenbrander <roderick.colenbrander(a)sony.com>
HID: sony: Update device ids
Catalin Marinas <catalin.marinas(a)arm.com>
arm64: Add trace_hardirqs_off annotation in ret_to_user
Li Dongyang <dongyangli(a)ddn.com>
ext4: don't mark mmp buffer head dirty
Theodore Ts'o <tytso(a)mit.edu>
ext4: fix online resizing for bigalloc file systems with a 1k block size
Theodore Ts'o <tytso(a)mit.edu>
ext4: fix online resize's handling of a too-small final block group
Theodore Ts'o <tytso(a)mit.edu>
ext4: recalucate superblock checksum after updating free blocks/inodes
Theodore Ts'o <tytso(a)mit.edu>
ext4: avoid divide by zero fault when deleting corrupted inline directories
Gustavo A. R. Silva <gustavo(a)embeddedor.com>
tty: vt_ioctl: fix potential Spectre v1
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
Junxiao Bi <junxiao.bi(a)oracle.com>
ocfs2: fix ocfs2 read block panic
Vincent Pelletier <plr.vincent(a)gmail.com>
scsi: target: iscsi: Use hex2bin instead of a re-implementation
Vasily Khoruzhick <vasilykh(a)arista.com>
neighbour: confirm neigh entries when ARP packet is received
Colin Ian King <colin.king(a)canonical.com>
net: hp100: fix always-true check for link up state
Willy Tarreau <w(a)1wt.eu>
net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
Eric Dumazet <edumazet(a)google.com>
ipv6: fix possible use-after-free in ip6_xmit()
Toke Høiland-Jørgensen <toke(a)toke.dk>
gso_segment: Reset skb->mac_len after modifying network header
Joel Fernandes (Google) <joel(a)joelfernandes.org>
mm: shmem.c: Correctly annotate new inodes for lockdep
Vaibhav Nagarnaik <vnagarnaik(a)google.com>
ring-buffer: Allow for rescheduling when removing pages
Boris Ostrovsky <boris.ostrovsky(a)oracle.com>
xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
Juergen Gross <jgross(a)suse.com>
xen/netfront: don't bug in case of too many frags
Mario Limonciello <mario.limonciello(a)dell.com>
platform/x86: alienware-wmi: Correct a memory leak
Willy Tarreau <w(a)1wt.eu>
ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
Sébastien Szymanski <sebastien.szymanski(a)armadeus.com>
ASoC: cs4265: fix MMTLR Data switch control
Suren Baghdasaryan <surenb(a)google.com>
NFC: Fix the number of pipes
Suren Baghdasaryan <surenb(a)google.com>
NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
-------------
Diffstat:
Makefile | 4 ++--
arch/arm64/kernel/entry.S | 3 +++
arch/x86/xen/pmu.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_connector.c | 20 ++++++++++---------
drivers/hid/hid-core.c | 3 +++
drivers/hid/hid-ids.h | 2 ++
drivers/hid/hid-sony.c | 6 ++++++
drivers/infiniband/hw/cxgb4/qp.c | 6 ++++++
drivers/net/appletalk/ipddp.c | 8 ++++++--
drivers/net/ethernet/hp/hp100.c | 2 +-
drivers/net/xen-netfront.c | 8 +++++++-
drivers/platform/x86/alienware-wmi.c | 1 +
drivers/target/iscsi/iscsi_target_auth.c | 30 ++++++++++++++---------------
drivers/tty/vt/vt_ioctl.c | 4 ++++
fs/ext4/dir.c | 20 +++++++++----------
fs/ext4/inline.c | 4 +++-
fs/ext4/mmp.c | 1 -
fs/ext4/resize.c | 23 +++++++++++++++++++++-
fs/ext4/super.c | 2 ++
fs/ocfs2/buffer_head_io.c | 1 +
include/net/nfc/hci.h | 2 +-
kernel/trace/ring_buffer.c | 2 ++
mm/shmem.c | 2 ++
net/core/neighbour.c | 13 ++++++++-----
net/ipv4/af_inet.c | 1 +
net/ipv6/ip6_offload.c | 1 +
net/ipv6/ip6_output.c | 6 ++----
net/nfc/hci/core.c | 10 ++++++++++
sound/firewire/bebob/bebob_maudio.c | 24 +++++++++++++----------
sound/pci/emu10k1/emufx.c | 2 +-
sound/soc/codecs/cs4265.c | 4 ++--
31 files changed, 148 insertions(+), 69 deletions(-)
This is the start of the stable review cycle for the 4.9.130 release.
There are 44 patches in this series, all will be posted as a response
to this one. If anyone has any issues with these being applied, please
let me know.
Responses should be made by Sat Sep 29 09:00:54 UTC 2018.
Anything received after that time might be too late.
The whole patch series can be found in one patch at:
https://www.kernel.org/pub/linux/kernel/v4.x/stable-review/patch-4.9.130-rc…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.9.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 4.9.130-rc1
Steve Wise <swise(a)opengridcomputing.com>
iw_cxgb4: only allow 1 flush on user qps
Nadav Amit <namit(a)vmware.com>
vmw_balloon: include asm/io.h
Zachary Zhang <zhangzg(a)marvell.com>
PCI: aardvark: Size bridges before resources allocation
Roderick Colenbrander <roderick.colenbrander(a)sony.com>
HID: sony: Support DS4 dongle
Roderick Colenbrander <roderick.colenbrander(a)sony.com>
HID: sony: Update device ids
Steve Muckle <smuckle(a)google.com>
sched/fair: Fix vruntime_normalized() for remote non-migration wakeup
Eric Biggers <ebiggers(a)google.com>
ext4: show test_dummy_encryption mount option in /proc/mounts
Li Dongyang <dongyangli(a)ddn.com>
ext4: don't mark mmp buffer head dirty
Theodore Ts'o <tytso(a)mit.edu>
ext4: fix online resizing for bigalloc file systems with a 1k block size
Theodore Ts'o <tytso(a)mit.edu>
ext4: fix online resize's handling of a too-small final block group
Theodore Ts'o <tytso(a)mit.edu>
ext4: recalucate superblock checksum after updating free blocks/inodes
Theodore Ts'o <tytso(a)mit.edu>
ext4: avoid divide by zero fault when deleting corrupted inline directories
Theodore Ts'o <tytso(a)mit.edu>
ext4: check to make sure the rename(2)'s destination is not freed
Gustavo A. R. Silva <gustavo(a)embeddedor.com>
tty: vt_ioctl: fix potential Spectre v1
Boris Brezillon <boris.brezillon(a)bootlin.com>
drm/vc4: Fix the "no scaling" case on multi-planar YUV formats
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Prevent handling ACPI HPD events too early
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Use pm_runtime_get_noresume() in connector_detect()
Lyude Paul <lyude(a)redhat.com>
drm/nouveau/drm/nouveau: Fix bogus drm_kms_helper_poll_enable() placement
Junxiao Bi <junxiao.bi(a)oracle.com>
ocfs2: fix ocfs2 read block panic
Vincent Pelletier <plr.vincent(a)gmail.com>
scsi: target: iscsi: Use hex2bin instead of a re-implementation
Vasily Khoruzhick <vasilykh(a)arista.com>
neighbour: confirm neigh entries when ARP packet is received
Paolo Abeni <pabeni(a)redhat.com>
udp4: fix IP_CMSG_CHECKSUM for connected sockets
Colin Ian King <colin.king(a)canonical.com>
net: hp100: fix always-true check for link up state
Willy Tarreau <w(a)1wt.eu>
net/appletalk: fix minor pointer leak to userspace in SIOCFINDIPDDPRT
Eric Dumazet <edumazet(a)google.com>
ipv6: fix possible use-after-free in ip6_xmit()
Toke Høiland-Jørgensen <toke(a)toke.dk>
gso_segment: Reset skb->mac_len after modifying network header
Joel Fernandes (Google) <joel(a)joelfernandes.org>
mm: shmem.c: Correctly annotate new inodes for lockdep
Vaibhav Nagarnaik <vnagarnaik(a)google.com>
ring-buffer: Allow for rescheduling when removing pages
Mika Westerberg <mika.westerberg(a)linux.intel.com>
Revert "PCI: Add ACS quirk for Intel 300 series"
Boris Ostrovsky <boris.ostrovsky(a)oracle.com>
xen/x86/vpmu: Zero struct pt_regs before calling into sample handling code
Juergen Gross <jgross(a)suse.com>
xen/netfront: don't bug in case of too many frags
Mario Limonciello <mario.limonciello(a)dell.com>
platform/x86: alienware-wmi: Correct a memory leak
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: oxfw: fix memory leak of private data
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: oxfw: fix memory leak of discovered stream formats at error path
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: oxfw: fix memory leak for model-dependent data at error path
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: fireworks: fix memory leak of response buffer at error path
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: firewire-tascam: fix memory leak of private data
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: firewire-digi00x: fix memory leak of private data
Willy Tarreau <w(a)1wt.eu>
ALSA: emu10k1: fix possible info leak to userspace on SNDRV_EMU10K1_IOCTL_INFO
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: bebob: use address returned by kmalloc() instead of kernel stack for streaming DMA mapping
Takashi Sakamoto <o-takashi(a)sakamocchi.jp>
ALSA: bebob: fix memory leak for M-Audio FW1814 and ProjectMix I/O at error path
Sébastien Szymanski <sebastien.szymanski(a)armadeus.com>
ASoC: cs4265: fix MMTLR Data switch control
Suren Baghdasaryan <surenb(a)google.com>
NFC: Fix the number of pipes
Suren Baghdasaryan <surenb(a)google.com>
NFC: Fix possible memory corruption when handling SHDLC I-Frame commands
-------------
Diffstat:
Makefile | 4 +--
arch/x86/xen/pmu.c | 2 +-
drivers/gpu/drm/nouveau/nouveau_connector.c | 20 ++++++------
drivers/gpu/drm/nouveau/nouveau_display.c | 33 ++++++++++++++-----
drivers/gpu/drm/vc4/vc4_plane.c | 25 +++++++--------
drivers/hid/hid-core.c | 3 ++
drivers/hid/hid-ids.h | 2 ++
drivers/hid/hid-sony.c | 6 ++++
drivers/infiniband/hw/cxgb4/qp.c | 6 ++++
drivers/misc/vmw_balloon.c | 1 +
drivers/net/appletalk/ipddp.c | 8 +++--
drivers/net/ethernet/hp/hp100.c | 2 +-
drivers/net/xen-netfront.c | 8 ++++-
drivers/pci/host/pci-aardvark.c | 1 +
drivers/pci/quirks.c | 6 ----
drivers/platform/x86/alienware-wmi.c | 1 +
drivers/target/iscsi/iscsi_target_auth.c | 30 +++++++++---------
drivers/tty/vt/vt_ioctl.c | 4 +++
fs/ext4/dir.c | 20 ++++++------
fs/ext4/inline.c | 4 ++-
fs/ext4/mmp.c | 1 -
fs/ext4/namei.c | 6 ++++
fs/ext4/resize.c | 23 +++++++++++++-
fs/ext4/super.c | 4 +++
fs/ocfs2/buffer_head_io.c | 1 +
include/net/nfc/hci.h | 2 +-
kernel/sched/fair.c | 3 +-
kernel/trace/ring_buffer.c | 2 ++
mm/shmem.c | 2 ++
net/core/neighbour.c | 13 +++++---
net/ipv4/af_inet.c | 1 +
net/ipv4/udp.c | 49 +++++++++++++++--------------
net/ipv6/ip6_offload.c | 1 +
net/ipv6/ip6_output.c | 6 ++--
net/nfc/hci/core.c | 10 ++++++
sound/firewire/bebob/bebob.c | 2 ++
sound/firewire/bebob/bebob_maudio.c | 28 ++++++++---------
sound/firewire/digi00x/digi00x.c | 1 +
sound/firewire/fireworks/fireworks.c | 2 ++
sound/firewire/oxfw/oxfw.c | 10 ++++++
sound/firewire/tascam/tascam.c | 1 +
sound/pci/emu10k1/emufx.c | 2 +-
sound/soc/codecs/cs4265.c | 4 +--
43 files changed, 236 insertions(+), 124 deletions(-)
At least on PXA3xx platforms, enabling RDY interrupts in the NDCR register
will only cause the IRQ to latch when the RDY lanes are changing, and not
in case they are already asserted.
This means that if the controller finished the command in flight before
marvell_nfc_wait_op() is called, that function will wait for a change in
the bit that can't ever happen as it is already set.
To mitigate this race, check for the RDY bits after the IRQ was enabled,
and only sleep on the condition if the controller isn't ready yet.
This fixes a bug that was observed with a NAND chip that holds a UBIFS
parition on which file system stress tests were executed. When
marvell_nfc_wait_op() reports an error, UBI/UBIFS will eventually mount
the filesystem read-only, reporting lots of warnings along the way.
Fixes: 02f26ecf8c77 mtd: nand: add reworked Marvell NAND controller driver
Cc: stable(a)vger.kernel.org
Signed-off-by: Daniel Mack <daniel(a)zonque.org>
---
drivers/mtd/nand/raw/marvell_nand.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/mtd/nand/raw/marvell_nand.c b/drivers/mtd/nand/raw/marvell_nand.c
index 666f34b58dec..e96ec7b9a152 100644
--- a/drivers/mtd/nand/raw/marvell_nand.c
+++ b/drivers/mtd/nand/raw/marvell_nand.c
@@ -613,7 +613,8 @@ static int marvell_nfc_wait_cmdd(struct nand_chip *chip)
static int marvell_nfc_wait_op(struct nand_chip *chip, unsigned int timeout_ms)
{
struct marvell_nfc *nfc = to_marvell_nfc(chip->controller);
- int ret;
+ int ret = -EALREADY;
+ u32 st;
/* Timeout is expressed in ms */
if (!timeout_ms)
@@ -622,8 +623,15 @@ static int marvell_nfc_wait_op(struct nand_chip *chip, unsigned int timeout_ms)
init_completion(&nfc->complete);
marvell_nfc_enable_int(nfc, NDCR_RDYM);
- ret = wait_for_completion_timeout(&nfc->complete,
- msecs_to_jiffies(timeout_ms));
+
+ /*
+ * Check if the NDSR_RDY bits have already been set before the
+ * interrupt was enabled.
+ */
+ st = readl_relaxed(nfc->regs + NDSR);
+ if (!(st & (NDSR_RDY(0) | NDSR_RDY(1))))
+ ret = wait_for_completion_timeout(&nfc->complete,
+ msecs_to_jiffies(timeout_ms));
marvell_nfc_disable_int(nfc, NDCR_RDYM);
marvell_nfc_clear_int(nfc, NDSR_RDY(0) | NDSR_RDY(1));
if (!ret) {
--
2.17.1
Hi Greg,
On Thu, Sep 27, 2018 at 10:03 AM, Greg Kroah-Hartman
<gregkh(a)linuxfoundation.org> wrote:
> 4.14-stable review patch. If anyone has any objections, please let me know.
>
> ------------------
>
> From: Kirill Kapranov <kirill.kapranov(a)compulab.co.il>
>
> commit 1a4327fbf4554d5b78d75b19a13d40d6de220159 upstream.
>
> On systems where some controllers get a dynamic ID assigned and some have
> a fixed number (e.g. from ACPI tables), the current implementation might
> run into an IDR collision: in case of a fixed bus number is gotten by a
> driver (but not marked busy in IDR tree) and a driver with dynamic bus
> number gets the same ID and predictably fails.
>
> Fix this by means of checking-in fixed IDsin IDR as far as dynamic ones
> at the moment of the controller registration.
>
> Fixes: 9b61e302210e (spi: Pick spi bus number from Linux idr or spi alias)
> Signed-off-by: Kirill Kapranov <kirill.kapranov(a)compulab.co.il>
> Signed-off-by: Mark Brown <broonie(a)kernel.org>
> Cc: stable(a)vger.kernel.org
> Signed-off-by: Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
There is another later patch which fixes this patch.
04b2d03a7565 ("spi: Fix double IDR allocation with DT aliases") , can
you please add it to the release also..
--
Regards
Sudip