From: Aurelien Aptel <aaptel(a)suse.com>
Commit 7e5a70ad88b1 ("CIFS: fix deadlock in cached root handling") upstream.
Prevent deadlock between open_shroot() and
cifs_mark_open_files_invalid() by releasing the lock before entering
SMB2_open, taking it again after and checking if we still need to use
the result.
CC: <stable(a)vger.kernel.org> # v4.19+
Link: https://lore.kernel.org/linux-cifs/684ed01c-cbca-2716-bc28-b0a59a0f8521@pro…
Fixes: 3d4ef9a15343 ("smb3: fix redundant opens on root")
Signed-off-by: Aurelien Aptel <aaptel(a)suse.com>
Signed-off-by: Pavel Shilovsky <pshilov(a)microsoft.com>
---
fs/cifs/smb2ops.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)
diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
index cc9e846a3865..094be406cde4 100644
--- a/fs/cifs/smb2ops.c
+++ b/fs/cifs/smb2ops.c
@@ -553,7 +553,50 @@ int open_shroot(unsigned int xid, struct cifs_tcon *tcon, struct cifs_fid *pfid)
oparams.fid = pfid;
oparams.reconnect = false;
+ /*
+ * We do not hold the lock for the open because in case
+ * SMB2_open needs to reconnect, it will end up calling
+ * cifs_mark_open_files_invalid() which takes the lock again
+ * thus causing a deadlock
+ */
+ mutex_unlock(&tcon->crfid.fid_mutex);
rc = SMB2_open(xid, &oparams, &srch_path, &oplock, NULL, NULL, NULL);
+ mutex_lock(&tcon->crfid.fid_mutex);
+
+ /*
+ * Now we need to check again as the cached root might have
+ * been successfully re-opened from a concurrent process
+ */
+
+ if (tcon->crfid.is_valid) {
+ /* work was already done */
+
+ /* stash fids for close() later */
+ struct cifs_fid fid = {
+ .persistent_fid = pfid->persistent_fid,
+ .volatile_fid = pfid->volatile_fid,
+ };
+
+ /*
+ * Caller expects this func to set pfid to a valid
+ * cached root, so we copy the existing one and get a
+ * reference
+ */
+ memcpy(pfid, tcon->crfid.fid, sizeof(*pfid));
+ kref_get(&tcon->crfid.refcount);
+
+ mutex_unlock(&tcon->crfid.fid_mutex);
+
+ if (rc == 0) {
+ /* close extra handle outside of critical section */
+ SMB2_close(xid, tcon, fid.persistent_fid,
+ fid.volatile_fid);
+ }
+ return 0;
+ }
+
+ /* Cached root is still invalid, continue normaly */
+
if (rc == 0) {
memcpy(tcon->crfid.fid, pfid, sizeof(struct cifs_fid));
tcon->crfid.tcon = tcon;
@@ -561,6 +604,7 @@ int open_shroot(unsigned int xid, struct cifs_tcon *tcon, struct cifs_fid *pfid)
kref_init(&tcon->crfid.refcount);
kref_get(&tcon->crfid.refcount);
}
+
mutex_unlock(&tcon->crfid.fid_mutex);
return rc;
}
--
2.17.1
Hole puching currently evicts pages from page cache and then goes on to
remove blocks from the inode. This happens under both XFS_IOLOCK_EXCL
and XFS_MMAPLOCK_EXCL which provides appropriate serialization with
racing reads or page faults. However there is currently nothing that
prevents readahead triggered by fadvise() or madvise() from racing with
the hole punch and instantiating page cache page after hole punching has
evicted page cache in xfs_flush_unmap_range() but before it has removed
blocks from the inode. This page cache page will be mapping soon to be
freed block and that can lead to returning stale data to userspace or
even filesystem corruption.
Fix the problem by protecting handling of readahead requests by
XFS_IOLOCK_SHARED similarly as we protect reads.
CC: stable(a)vger.kernel.org
Link: https://lore.kernel.org/linux-fsdevel/CAOQ4uxjQNmxqmtA_VbYW0Su9rKRk2zobJmah…
Reported-by: Amir Goldstein <amir73il(a)gmail.com>
Signed-off-by: Jan Kara <jack(a)suse.cz>
---
fs/xfs/xfs_file.c | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)
diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
index 28101bbc0b78..d952d5962e93 100644
--- a/fs/xfs/xfs_file.c
+++ b/fs/xfs/xfs_file.c
@@ -28,6 +28,7 @@
#include <linux/falloc.h>
#include <linux/backing-dev.h>
#include <linux/mman.h>
+#include <linux/fadvise.h>
static const struct vm_operations_struct xfs_file_vm_ops;
@@ -933,6 +934,30 @@ xfs_file_fallocate(
return error;
}
+STATIC int
+xfs_file_fadvise(
+ struct file *file,
+ loff_t start,
+ loff_t end,
+ int advice)
+{
+ struct xfs_inode *ip = XFS_I(file_inode(file));
+ int ret;
+ int lockflags = 0;
+
+ /*
+ * Operations creating pages in page cache need protection from hole
+ * punching and similar ops
+ */
+ if (advice == POSIX_FADV_WILLNEED) {
+ lockflags = XFS_IOLOCK_SHARED;
+ xfs_ilock(ip, lockflags);
+ }
+ ret = generic_fadvise(file, start, end, advice);
+ if (lockflags)
+ xfs_iunlock(ip, lockflags);
+ return ret;
+}
STATIC loff_t
xfs_file_remap_range(
@@ -1232,6 +1257,7 @@ const struct file_operations xfs_file_operations = {
.fsync = xfs_file_fsync,
.get_unmapped_area = thp_get_unmapped_area,
.fallocate = xfs_file_fallocate,
+ .fadvise = xfs_file_fadvise,
.remap_file_range = xfs_file_remap_range,
};
--
2.16.4
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: c9a59a82366b - Linux 5.3.1
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/184478
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: c9a59a82366b - Linux 5.3.1
We grabbed the 5fb55c40dd07 commit of the stable queue repository.
We then merged the patchset with `git am`:
netfilter-add-missing-is_enabled-config_nf_tables-check-to-header-file.patch
clocksource-drivers-timer-of-do-not-warn-on-deferred-probe.patch
clocksource-drivers-do-not-warn-on-probe-defer.patch
drm-amd-display-allow-cursor-async-updates-for-framebuffer-swaps.patch
drm-amd-display-skip-determining-update-type-for-async-updates.patch
drm-amd-display-don-t-replace-the-dc_state-for-fast-updates.patch
drm-amd-display-readd-msse2-to-prevent-clang-from-emitting-libcalls-to-undefined-sw-fp-routines.patch
powerpc-xive-fix-bogus-error-code-returned-by-opal.patch
hid-prodikeys-fix-general-protection-fault-during-probe.patch
hid-sony-fix-memory-corruption-issue-on-cleanup.patch
hid-logitech-fix-general-protection-fault-caused-by-logitech-driver.patch
hid-logitech-dj-fix-crash-when-initial-logi_dj_recv_query_paired_devices-fails.patch
hid-hidraw-fix-invalid-read-in-hidraw_ioctl.patch
hid-add-quirk-for-hp-x500-pixart-oem-mouse.patch
mtd-cfi_cmdset_0002-use-chip_good-to-retry-in-do_write_oneword.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ stress: stress-ng
🚧 ✅ LTP lite
Host 2:
✅ Boot test
✅ selinux-policy: serge-testsuite
ppc64le:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
🚧 ✅ LTP lite
x86_64:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ stress: stress-ng
🚧 ⚡⚡⚡ LTP lite
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
Since dropping the set-to-gtt-domain in commit a679f58d0510 ("drm/i915:
Flush pages on acquisition"), we no longer mark the contents as dirty on
a write fault. This has the issue of us then not marking the pages as
dirty on releasing the buffer, which means the contents are not written
out to the swap device (should we ever pick that buffer as a victim).
Notably, this is visible in the dumb buffer interface used for cursors.
Having updated the cursor contents via mmap, and swapped away, if the
shrinker should evict the old cursor, upon next reuse, the cursor would
be invisible.
E.g. echo 80 > /proc/sys/kernel/sysrq ; echo f > /proc/sysrq-trigger
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=111541
Fixes: a679f58d0510 ("drm/i915: Flush pages on acquisition")
Signed-off-by: Chris Wilson <chris(a)chris-wilson.co.uk>
Cc: Matthew Auld <matthew.william.auld(a)gmail.com>
Cc: Ville Syrjälä <ville.syrjala(a)linux.intel.com>
Cc: <stable(a)vger.kernel.org> # v5.2+
---
drivers/gpu/drm/i915/gem/i915_gem_mman.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_mman.c b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
index 1748e63156a2..860b751c51f1 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_mman.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_mman.c
@@ -319,7 +319,11 @@ vm_fault_t i915_gem_fault(struct vm_fault *vmf)
intel_wakeref_auto(&i915->ggtt.userfault_wakeref,
msecs_to_jiffies_timeout(CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND));
- i915_vma_set_ggtt_write(vma);
+ if (write) {
+ GEM_BUG_ON(!i915_gem_object_has_pinned_pages(obj));
+ i915_vma_set_ggtt_write(vma);
+ obj->mm.dirty = true;
+ }
err_fence:
i915_vma_unpin_fence(vma);
--
2.23.0
Hi Sasha,
>
> This commit has been processed because it contains a "Fixes:" tag,
> fixing commit: 13370a9b5bb8 perf stat: Add interval printing.
>
> The bot has tested the following trees: v5.2.16, v4.19.74, v4.14.145, v4.9.193, v4.4.193.
>
> v5.2.16: Failed to apply! Possible dependencies:
> 1c839a5a4061 ("perf cs-etm: Configure timestamp generation in CPU-wide mode")
> 32dcd021d004 ("perf evsel: Rename struct perf_evsel to struct evsel")
> 3399ad9ac234 ("perf cs-etm: Configure contextID tracing in CPU-wide mode")
> acae8b36cded ("perf header: Add die information in CPU topology")
> b74d8686a18b ("perf cpumap: Retrieve die id information")
> db5742b6849e ("perf stat: Support per-die aggregation")
> f854839ba2a5 ("perf cpu_map: Rename struct cpu_map to struct perf_cpu_map")
>
> v4.19.74: Failed to apply! Possible dependencies:
> 121dd9ea0116 ("perf bench: Add epoll parallel epoll_wait benchmark")
> 1c839a5a4061 ("perf cs-etm: Configure timestamp generation in CPU-wide mode")
> 231457ec7074 ("perf bench: Add epoll_ctl(2) benchmark")
> 32dcd021d004 ("perf evsel: Rename struct perf_evsel to struct evsel")
> 3399ad9ac234 ("perf cs-etm: Configure contextID tracing in CPU-wide mode")
> 6ca9a082b190 ("perf stat: Pass a 'struct perf_stat_config' argument to global print functions")
> 6f6b6594b5f3 ("perf stat: Move *_aggr_* data to 'struct perf_stat_config'")
> 77e0faf8552c ("perf stat: Pass 'evlist' to aggr_update_shadow()")
> 8897a8916efb ("perf stat: Move ru_* data to 'struct perf_stat_config'")
> ae2d7da554f0 ("perf stat: Pass 'struct perf_stat_config' to first_shadow_cpu()")
> d97ae04b3d52 ("perf stat: Move 'run_count' to 'struct perf_stat_config'")
> df4f7b4d4b1e ("perf stat: Move 'unit_width' to 'struct perf_stat_config'")
> f3ca50e61ff4 ("perf stat: Pass 'struct perf_stat_config' argument to local print functions")
> f854839ba2a5 ("perf cpu_map: Rename struct cpu_map to struct perf_cpu_map")
> fa4e819bbca9 ("perf arm cs-etm: Use event attributes to send sink information to kernel")
> fa7070a38676 ("perf stat: Move csv_* to 'struct perf_stat_config'")
>
As suggested by Arnaldo, I am adding my patch which applies and
builds well on v5.2.16 and v4.14.145. This one differs from the one
committed by Arnaldo with respect to structure name change.
Meanwhile I will investigate on v4.14.145 v4.9.193 v4.4.193 and get back to
to you.
--
Thanks and Regards
Srikar Dronamraju
---->8------------8<-----------------
>From b63fd11cced17fcb8e133def29001b0f6aaa5e06 Mon Sep 17 00:00:00 2001
From: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
Date: Wed, 4 Sep 2019 15:17:37 +0530
Subject: [PATCH 1/2] perf stat: Reset previous counts on repeat with interval
When using 'perf stat' with repeat and interval option, it shows wrong
values for events.
The wrong values will be shown for the first interval on the second and
subsequent repetitions.
Without the fix:
# perf stat -r 3 -I 2000 -e faults -e sched:sched_switch -a sleep 5
2.000282489 53 faults
2.000282489 513 sched:sched_switch
4.005478208 3,721 faults
4.005478208 2,666 sched:sched_switch
5.025470933 395 faults
5.025470933 1,307 sched:sched_switch
2.009602825 1,84,46,74,40,73,70,95,47,520 faults <------
2.009602825 1,84,46,74,40,73,70,95,49,568 sched:sched_switch <------
4.019612206 4,730 faults
4.019612206 2,746 sched:sched_switch
5.039615484 3,953 faults
5.039615484 1,496 sched:sched_switch
2.000274620 1,84,46,74,40,73,70,95,47,520 faults <------
2.000274620 1,84,46,74,40,73,70,95,47,520 sched:sched_switch <------
4.000480342 4,282 faults
4.000480342 2,303 sched:sched_switch
5.000916811 1,322 faults
5.000916811 1,064 sched:sched_switch
#
prev_raw_counts is allocated when using intervals. This is used when
calculating the difference in the counts of events when using interval.
The current counts are stored in prev_raw_counts to calculate the
differences in the next iteration.
On the first interval of the second and subsequent repetitions,
prev_raw_counts would be the values stored in the last interval of the
previous repetitions, while the current counts will only be for the
first interval of the current repetition.
Hence there is a possibility of events showing up as big number.
Fix this by resetting prev_raw_counts whenever perf stat repeats the
command.
With the fix:
# perf stat -r 3 -I 2000 -e faults -e sched:sched_switch -a sleep 5
2.019349347 2,597 faults
2.019349347 2,753 sched:sched_switch
4.019577372 3,098 faults
4.019577372 2,532 sched:sched_switch
5.019415481 1,879 faults
5.019415481 1,356 sched:sched_switch
2.000178813 8,468 faults
2.000178813 2,254 sched:sched_switch
4.000404621 7,440 faults
4.000404621 1,266 sched:sched_switch
5.040196079 2,458 faults
5.040196079 556 sched:sched_switch
2.000191939 6,870 faults
2.000191939 1,170 sched:sched_switch
4.000414103 541 faults
4.000414103 902 sched:sched_switch
5.000809863 450 faults
5.000809863 364 sched:sched_switch
#
Committer notes:
This was broken since the cset introducing the --interval feature, i.e.
--repeat + --interval wasn't tested at that point, add the Fixes tag so
that automatic scripts can pick this up.
Fixes: 13370a9b5bb8 ("perf stat: Add interval printing")
Signed-off-by: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
Acked-by: Jiri Olsa <jolsa(a)kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
Tested-by: Ravi Bangoria <ravi.bangoria(a)linux.ibm.com>
Cc: Namhyung Kim <namhyung(a)kernel.org>
Cc: Naveen N. Rao <naveen.n.rao(a)linux.vnet.ibm.com>
Cc: Stephane Eranian <eranian(a)google.com>
Cc: stable(a)vger.kernel.org # v3.9+
Link: http://lore.kernel.org/lkml/20190904094738.9558-2-srikar@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
---
tools/perf/builtin-stat.c | 3 +++
tools/perf/util/stat.c | 17 +++++++++++++++++
tools/perf/util/stat.h | 1 +
3 files changed, 21 insertions(+)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index 352cf39d7c2f..eda451842bfd 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1961,6 +1961,9 @@ int cmd_stat(int argc, const char **argv)
fprintf(output, "[ perf stat: executing run #%d ... ]\n",
run_idx + 1);
+ if (run_idx != 0)
+ perf_evlist__reset_prev_raw_counts(evsel_list);
+
status = run_perf_stat(argc, argv, run_idx);
if (forever && status != -1) {
print_counters(NULL, argc, argv);
diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c
index db8a6cf336be..773f29d4f6a7 100644
--- a/tools/perf/util/stat.c
+++ b/tools/perf/util/stat.c
@@ -155,6 +155,15 @@ static void perf_evsel__free_prev_raw_counts(struct perf_evsel *evsel)
evsel->prev_raw_counts = NULL;
}
+static void perf_evsel__reset_prev_raw_counts(struct perf_evsel *evsel)
+{
+ if (evsel->prev_raw_counts) {
+ evsel->prev_raw_counts->aggr.val = 0;
+ evsel->prev_raw_counts->aggr.ena = 0;
+ evsel->prev_raw_counts->aggr.run = 0;
+ }
+}
+
static int perf_evsel__alloc_stats(struct perf_evsel *evsel, bool alloc_raw)
{
int ncpus = perf_evsel__nr_cpus(evsel);
@@ -205,6 +214,14 @@ void perf_evlist__reset_stats(struct perf_evlist *evlist)
}
}
+void perf_evlist__reset_prev_raw_counts(struct perf_evlist *evlist)
+{
+ struct perf_evsel *evsel;
+
+ evlist__for_each_entry(evlist, evsel)
+ perf_evsel__reset_prev_raw_counts(evsel);
+}
+
static void zero_per_pkg(struct perf_evsel *counter)
{
if (counter->per_pkg_mask)
diff --git a/tools/perf/util/stat.h b/tools/perf/util/stat.h
index 0f9c9f6e2041..edbeb2f63e8d 100644
--- a/tools/perf/util/stat.h
+++ b/tools/perf/util/stat.h
@@ -194,6 +194,7 @@ void perf_stat__collect_metric_expr(struct perf_evlist *);
int perf_evlist__alloc_stats(struct perf_evlist *evlist, bool alloc_raw);
void perf_evlist__free_stats(struct perf_evlist *evlist);
void perf_evlist__reset_stats(struct perf_evlist *evlist);
+void perf_evlist__reset_prev_raw_counts(struct perf_evlist *evlist);
int perf_stat_process_counter(struct perf_stat_config *config,
struct perf_evsel *counter);
--
2.18.1
From: Vitaly Wool <vitalywool(a)gmail.com>
Subject: z3fold: fix retry mechanism in page reclaim
z3fold_page_reclaim()'s retry mechanism is broken: on a second iteration
it will have zhdr from the first one so that zhdr is no longer in line
with struct page. That leads to crashes when the system is stressed.
Fix that by moving zhdr assignment up.
While at it, protect against using already freed handles by using own
local slots structure in z3fold_page_reclaim().
Link: http://lkml.kernel.org/r/20190908162919.830388dc7404d1e2c80f4095@gmail.com
Signed-off-by: Vitaly Wool <vitalywool(a)gmail.com>
Reported-by: Markus Linnala <markus.linnala(a)gmail.com>
Reported-by: Chris Murphy <bugzilla(a)colorremedies.com>
Reported-by: Agustin Dall'Alba <agustin(a)dallalba.com.ar>
Cc: "Maciej S. Szmigiero" <mail(a)maciej.szmigiero.name>
Cc: Shakeel Butt <shakeelb(a)google.com>
Cc: Henry Burns <henrywolfeburns(a)gmail.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/z3fold.c | 49 ++++++++++++++++++++++++++++++++++---------------
1 file changed, 34 insertions(+), 15 deletions(-)
--- a/mm/z3fold.c~z3fold-fix-retry-mechanism-in-page-reclaim
+++ a/mm/z3fold.c
@@ -366,9 +366,10 @@ static inline int __idx(struct z3fold_he
* Encodes the handle of a particular buddy within a z3fold page
* Pool lock should be held as this function accesses first_num
*/
-static unsigned long encode_handle(struct z3fold_header *zhdr, enum buddy bud)
+static unsigned long __encode_handle(struct z3fold_header *zhdr,
+ struct z3fold_buddy_slots *slots,
+ enum buddy bud)
{
- struct z3fold_buddy_slots *slots;
unsigned long h = (unsigned long)zhdr;
int idx = 0;
@@ -385,11 +386,15 @@ static unsigned long encode_handle(struc
if (bud == LAST)
h |= (zhdr->last_chunks << BUDDY_SHIFT);
- slots = zhdr->slots;
slots->slot[idx] = h;
return (unsigned long)&slots->slot[idx];
}
+static unsigned long encode_handle(struct z3fold_header *zhdr, enum buddy bud)
+{
+ return __encode_handle(zhdr, zhdr->slots, bud);
+}
+
/* Returns the z3fold page where a given handle is stored */
static inline struct z3fold_header *handle_to_z3fold_header(unsigned long h)
{
@@ -624,6 +629,7 @@ static void do_compact_page(struct z3fol
}
if (unlikely(PageIsolated(page) ||
+ test_bit(PAGE_CLAIMED, &page->private) ||
test_bit(PAGE_STALE, &page->private))) {
z3fold_page_unlock(zhdr);
return;
@@ -1100,6 +1106,7 @@ static int z3fold_reclaim_page(struct z3
struct z3fold_header *zhdr = NULL;
struct page *page = NULL;
struct list_head *pos;
+ struct z3fold_buddy_slots slots;
unsigned long first_handle = 0, middle_handle = 0, last_handle = 0;
spin_lock(&pool->lock);
@@ -1118,16 +1125,22 @@ static int z3fold_reclaim_page(struct z3
/* this bit could have been set by free, in which case
* we pass over to the next page in the pool.
*/
- if (test_and_set_bit(PAGE_CLAIMED, &page->private))
+ if (test_and_set_bit(PAGE_CLAIMED, &page->private)) {
+ page = NULL;
continue;
+ }
- if (unlikely(PageIsolated(page)))
+ if (unlikely(PageIsolated(page))) {
+ clear_bit(PAGE_CLAIMED, &page->private);
+ page = NULL;
continue;
+ }
+ zhdr = page_address(page);
if (test_bit(PAGE_HEADLESS, &page->private))
break;
- zhdr = page_address(page);
if (!z3fold_page_trylock(zhdr)) {
+ clear_bit(PAGE_CLAIMED, &page->private);
zhdr = NULL;
continue; /* can't evict at this point */
}
@@ -1145,26 +1158,30 @@ static int z3fold_reclaim_page(struct z3
if (!test_bit(PAGE_HEADLESS, &page->private)) {
/*
- * We need encode the handles before unlocking, since
- * we can race with free that will set
- * (first|last)_chunks to 0
+ * We need encode the handles before unlocking, and
+ * use our local slots structure because z3fold_free
+ * can zero out zhdr->slots and we can't do much
+ * about that
*/
first_handle = 0;
last_handle = 0;
middle_handle = 0;
if (zhdr->first_chunks)
- first_handle = encode_handle(zhdr, FIRST);
+ first_handle = __encode_handle(zhdr, &slots,
+ FIRST);
if (zhdr->middle_chunks)
- middle_handle = encode_handle(zhdr, MIDDLE);
+ middle_handle = __encode_handle(zhdr, &slots,
+ MIDDLE);
if (zhdr->last_chunks)
- last_handle = encode_handle(zhdr, LAST);
+ last_handle = __encode_handle(zhdr, &slots,
+ LAST);
/*
* it's safe to unlock here because we hold a
* reference to this page
*/
z3fold_page_unlock(zhdr);
} else {
- first_handle = encode_handle(zhdr, HEADLESS);
+ first_handle = __encode_handle(zhdr, &slots, HEADLESS);
last_handle = middle_handle = 0;
}
@@ -1194,9 +1211,9 @@ next:
spin_lock(&pool->lock);
list_add(&page->lru, &pool->lru);
spin_unlock(&pool->lock);
+ clear_bit(PAGE_CLAIMED, &page->private);
} else {
z3fold_page_lock(zhdr);
- clear_bit(PAGE_CLAIMED, &page->private);
if (kref_put(&zhdr->refcount,
release_z3fold_page_locked)) {
atomic64_dec(&pool->pages_nr);
@@ -1211,6 +1228,7 @@ next:
list_add(&page->lru, &pool->lru);
spin_unlock(&pool->lock);
z3fold_page_unlock(zhdr);
+ clear_bit(PAGE_CLAIMED, &page->private);
}
/* We started off locked to we need to lock the pool back */
@@ -1315,7 +1333,8 @@ static bool z3fold_page_isolate(struct p
VM_BUG_ON_PAGE(!PageMovable(page), page);
VM_BUG_ON_PAGE(PageIsolated(page), page);
- if (test_bit(PAGE_HEADLESS, &page->private))
+ if (test_bit(PAGE_HEADLESS, &page->private) ||
+ test_bit(PAGE_CLAIMED, &page->private))
return false;
zhdr = page_address(page);
_
From: Vitaly Wool <vitalywool(a)gmail.com>
Subject: Revert "mm/z3fold.c: fix race between migration and destruction"
With the original commit applied, z3fold_zpool_destroy() may get blocked
on wait_event() for indefinite time. Revert this commit for the time
being to get rid of this problem since the issue the original commit
addresses is less severe.
Link: http://lkml.kernel.org/r/20190910123142.7a9c8d2de4d0acbc0977c602@gmail.com
Fixes: d776aaa9895eb6eb77 ("mm/z3fold.c: fix race between migration and destruction")
Reported-by: Agust�n Dall'Alba <agustin(a)dallalba.com.ar>
Signed-off-by: Vitaly Wool <vitalywool(a)gmail.com>
Cc: Vlastimil Babka <vbabka(a)suse.cz>
Cc: Vitaly Wool <vitalywool(a)gmail.com>
Cc: Shakeel Butt <shakeelb(a)google.com>
Cc: Jonathan Adams <jwadams(a)google.com>
Cc: Henry Burns <henrywolfeburns(a)gmail.com>
Cc: <stable(a)vger.kernel.org>
Signed-off-by: Andrew Morton <akpm(a)linux-foundation.org>
---
mm/z3fold.c | 90 --------------------------------------------------
1 file changed, 90 deletions(-)
--- a/mm/z3fold.c~revert-mm-z3foldc-fix-race-between-migration-and-destruction
+++ a/mm/z3fold.c
@@ -41,7 +41,6 @@
#include <linux/workqueue.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
-#include <linux/wait.h>
#include <linux/zpool.h>
#include <linux/magic.h>
@@ -146,8 +145,6 @@ struct z3fold_header {
* @release_wq: workqueue for safe page release
* @work: work_struct for safe page release
* @inode: inode for z3fold pseudo filesystem
- * @destroying: bool to stop migration once we start destruction
- * @isolated: int to count the number of pages currently in isolation
*
* This structure is allocated at pool creation time and maintains metadata
* pertaining to a particular z3fold pool.
@@ -166,11 +163,8 @@ struct z3fold_pool {
const struct zpool_ops *zpool_ops;
struct workqueue_struct *compact_wq;
struct workqueue_struct *release_wq;
- struct wait_queue_head isolate_wait;
struct work_struct work;
struct inode *inode;
- bool destroying;
- int isolated;
};
/*
@@ -775,7 +769,6 @@ static struct z3fold_pool *z3fold_create
goto out_c;
spin_lock_init(&pool->lock);
spin_lock_init(&pool->stale_lock);
- init_waitqueue_head(&pool->isolate_wait);
pool->unbuddied = __alloc_percpu(sizeof(struct list_head)*NCHUNKS, 2);
if (!pool->unbuddied)
goto out_pool;
@@ -815,15 +808,6 @@ out:
return NULL;
}
-static bool pool_isolated_are_drained(struct z3fold_pool *pool)
-{
- bool ret;
-
- spin_lock(&pool->lock);
- ret = pool->isolated == 0;
- spin_unlock(&pool->lock);
- return ret;
-}
/**
* z3fold_destroy_pool() - destroys an existing z3fold pool
* @pool: the z3fold pool to be destroyed
@@ -833,22 +817,6 @@ static bool pool_isolated_are_drained(st
static void z3fold_destroy_pool(struct z3fold_pool *pool)
{
kmem_cache_destroy(pool->c_handle);
- /*
- * We set pool-> destroying under lock to ensure that
- * z3fold_page_isolate() sees any changes to destroying. This way we
- * avoid the need for any memory barriers.
- */
-
- spin_lock(&pool->lock);
- pool->destroying = true;
- spin_unlock(&pool->lock);
-
- /*
- * We need to ensure that no pages are being migrated while we destroy
- * these workqueues, as migration can queue work on either of the
- * workqueues.
- */
- wait_event(pool->isolate_wait, !pool_isolated_are_drained(pool));
/*
* We need to destroy pool->compact_wq before pool->release_wq,
@@ -1339,28 +1307,6 @@ static u64 z3fold_get_pool_size(struct z
return atomic64_read(&pool->pages_nr);
}
-/*
- * z3fold_dec_isolated() expects to be called while pool->lock is held.
- */
-static void z3fold_dec_isolated(struct z3fold_pool *pool)
-{
- assert_spin_locked(&pool->lock);
- VM_BUG_ON(pool->isolated <= 0);
- pool->isolated--;
-
- /*
- * If we have no more isolated pages, we have to see if
- * z3fold_destroy_pool() is waiting for a signal.
- */
- if (pool->isolated == 0 && waitqueue_active(&pool->isolate_wait))
- wake_up_all(&pool->isolate_wait);
-}
-
-static void z3fold_inc_isolated(struct z3fold_pool *pool)
-{
- pool->isolated++;
-}
-
static bool z3fold_page_isolate(struct page *page, isolate_mode_t mode)
{
struct z3fold_header *zhdr;
@@ -1387,34 +1333,6 @@ static bool z3fold_page_isolate(struct p
spin_lock(&pool->lock);
if (!list_empty(&page->lru))
list_del(&page->lru);
- /*
- * We need to check for destruction while holding pool->lock, as
- * otherwise destruction could see 0 isolated pages, and
- * proceed.
- */
- if (unlikely(pool->destroying)) {
- spin_unlock(&pool->lock);
- /*
- * If this page isn't stale, somebody else holds a
- * reference to it. Let't drop our refcount so that they
- * can call the release logic.
- */
- if (unlikely(kref_put(&zhdr->refcount,
- release_z3fold_page_locked))) {
- /*
- * If we get here we have kref problems, so we
- * should freak out.
- */
- WARN(1, "Z3fold is experiencing kref problems\n");
- z3fold_page_unlock(zhdr);
- return false;
- }
- z3fold_page_unlock(zhdr);
- return false;
- }
-
-
- z3fold_inc_isolated(pool);
spin_unlock(&pool->lock);
z3fold_page_unlock(zhdr);
return true;
@@ -1483,10 +1401,6 @@ static int z3fold_page_migrate(struct ad
queue_work_on(new_zhdr->cpu, pool->compact_wq, &new_zhdr->work);
- spin_lock(&pool->lock);
- z3fold_dec_isolated(pool);
- spin_unlock(&pool->lock);
-
page_mapcount_reset(page);
put_page(page);
return 0;
@@ -1506,14 +1420,10 @@ static void z3fold_page_putback(struct p
INIT_LIST_HEAD(&page->lru);
if (kref_put(&zhdr->refcount, release_z3fold_page_locked)) {
atomic64_dec(&pool->pages_nr);
- spin_lock(&pool->lock);
- z3fold_dec_isolated(pool);
- spin_unlock(&pool->lock);
return;
}
spin_lock(&pool->lock);
list_add(&page->lru, &pool->lru);
- z3fold_dec_isolated(pool);
spin_unlock(&pool->lock);
z3fold_page_unlock(zhdr);
}
_
Since release of the new BCM2835 PM driver there has been several reports
of V3D probing issues. This is caused by timeouts during powering-up the
GRAFX PM domain:
bcm2835-power: Timeout waiting for grafx power OK
I was able to reproduce this reliable on my Raspberry Pi 3B+ after setting
force_turbo=1 in the firmware configuration. Since there are no issues
using the firmware PM driver with the same setup, there must be an issue
in the BCM2835 PM driver.
Unfortunately there hasn't been much progress in identifying the root cause
since June (mostly in the lack of documentation), so i decided to switch
back until the issue in the BCM2835 PM driver is fixed.
Link: https://github.com/raspberrypi/linux/issues/3046
Fixes: e1dc2b2e1bef (" ARM: bcm283x: Switch V3D over to using the PM driver instead of firmware.")
Cc: stable(a)vger.kernel.org
Signed-off-by: Stefan Wahren <wahrenst(a)gmx.net>
---
arch/arm/boot/dts/bcm2835-rpi.dtsi | 4 ++++
arch/arm/boot/dts/bcm283x.dtsi | 4 +---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/arch/arm/boot/dts/bcm2835-rpi.dtsi b/arch/arm/boot/dts/bcm2835-rpi.dtsi
index 6c6a7f6..b909e3b 100644
--- a/arch/arm/boot/dts/bcm2835-rpi.dtsi
+++ b/arch/arm/boot/dts/bcm2835-rpi.dtsi
@@ -67,6 +67,10 @@
power-domains = <&power RPI_POWER_DOMAIN_USB>;
};
+&v3d {
+ power-domains = <&power RPI_POWER_DOMAIN_V3D>;
+};
+
&vec {
power-domains = <&power RPI_POWER_DOMAIN_VEC>;
status = "okay";
diff --git a/arch/arm/boot/dts/bcm283x.dtsi b/arch/arm/boot/dts/bcm283x.dtsi
index 2d191fc..b238567 100644
--- a/arch/arm/boot/dts/bcm283x.dtsi
+++ b/arch/arm/boot/dts/bcm283x.dtsi
@@ -3,7 +3,6 @@
#include <dt-bindings/clock/bcm2835-aux.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>
-#include <dt-bindings/soc/bcm2835-pm.h>
/* firmware-provided startup stubs live here, where the secondary CPUs are
* spinning.
@@ -121,7 +120,7 @@
#interrupt-cells = <2>;
};
- pm: watchdog@7e100000 {
+ watchdog@7e100000 {
compatible = "brcm,bcm2835-pm", "brcm,bcm2835-pm-wdt";
#power-domain-cells = <1>;
#reset-cells = <1>;
@@ -641,7 +640,6 @@
compatible = "brcm,bcm2835-v3d";
reg = <0x7ec00000 0x1000>;
interrupts = <1 10>;
- power-domains = <&pm BCM2835_POWER_DOMAIN_GRAFX_V3D>;
};
vc4: gpu {
--
2.7.4
Hi Sasha, Arnaldo.
Between v5.2.16 and acme HEAD, struct perf_evlist to struct evlist and
struct perf_evsel to struct evsel.
However the patches that I had posted
http://lkml.kernel.org/r/20190904094738.9558-2-srikar@linux.vnet.ibm.com
would apply cleanly to v5.2.16.
I would like to check if the backports to v5.2.16 should be the same patch
(i.e include dependencies including struct renames) or is it okay to apply
without the dependencies. Please advise.
Because the renames affected a lot of files, it throws up a lot of commits
as dependencies. So I would wait for your inputs before I start with the
work.
--
Thanks and Regards
Srikar
>
> The bot has tested the following trees: v5.2.16, v4.19.74, v4.14.145, v4.9.193, v4.4.193.
>
> v5.2.16: Failed to apply! Possible dependencies:
> 1c839a5a4061 ("perf cs-etm: Configure timestamp generation in CPU-wide mode")
> 32dcd021d004 ("perf evsel: Rename struct perf_evsel to struct evsel")
> 3399ad9ac234 ("perf cs-etm: Configure contextID tracing in CPU-wide mode")
> acae8b36cded ("perf header: Add die information in CPU topology")
> b74d8686a18b ("perf cpumap: Retrieve die id information")
> db5742b6849e ("perf stat: Support per-die aggregation")
> f854839ba2a5 ("perf cpu_map: Rename struct cpu_map to struct perf_cpu_map")
>
--
Thanks and Regards
Srikar Dronamraju
commit 6953c57ab172 "gpio: of: Handle SPI chipselect legacy bindings"
did introduce logic to centrally handle the legacy spi-cs-high property
in combination with cs-gpios. This assumes that the polarity
of the CS has to be inverted if spi-cs-high is missing, even
and especially if non-legacy GPIO_ACTIVE_HIGH is specified.
The DTS for the GTA04 was orginally introduced under the assumption
that there is no need for spi-cs-high if the gpio is defined with
proper polarity GPIO_ACTIVE_HIGH.
This was not a problem until gpiolib changed the interpretation of
GPIO_ACTIVE_HIGH and missing spi-cs-high.
The effect is that the missing spi-cs-high is now interpreted as CS being
low (despite GPIO_ACTIVE_HIGH) which turns off the SPI interface when the
panel is to be programmed by the panel driver.
Therefore, we have to add the redundant and legacy spi-cs-high property
to properly activate CS.
Cc: stable(a)vger.kernel.org
Signed-off-by: H. Nikolaus Schaller <hns(a)goldelico.com>
---
arch/arm/boot/dts/omap3-gta04.dtsi | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/arm/boot/dts/omap3-gta04.dtsi b/arch/arm/boot/dts/omap3-gta04.dtsi
index b295f6fad2a5..954c216140ad 100644
--- a/arch/arm/boot/dts/omap3-gta04.dtsi
+++ b/arch/arm/boot/dts/omap3-gta04.dtsi
@@ -120,6 +120,7 @@
spi-max-frequency = <100000>;
spi-cpol;
spi-cpha;
+ spi-cs-high;
backlight= <&backlight>;
label = "lcd";
--
2.19.1
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: c9a59a82366b - Linux 5.3.1
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/182653
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: c9a59a82366b - Linux 5.3.1
We grabbed the f4246fab7da0 commit of the stable queue repository.
We then merged the patchset with `git am`:
netfilter-add-missing-is_enabled-config_nf_tables-check-to-header-file.patch
clocksource-drivers-timer-of-do-not-warn-on-deferred-probe.patch
clocksource-drivers-do-not-warn-on-probe-defer.patch
drm-amd-display-allow-cursor-async-updates-for-framebuffer-swaps.patch
drm-amd-display-skip-determining-update-type-for-async-updates.patch
drm-amd-display-don-t-replace-the-dc_state-for-fast-updates.patch
drm-amd-display-readd-msse2-to-prevent-clang-from-emitting-libcalls-to-undefined-sw-fp-routines.patch
powerpc-xive-fix-bogus-error-code-returned-by-opal.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ stress: stress-ng
🚧 ✅ LTP lite
Host 2:
✅ Boot test
✅ selinux-policy: serge-testsuite
ppc64le:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
🚧 ✅ LTP lite
Host 2:
✅ Boot test
✅ selinux-policy: serge-testsuite
x86_64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ stress: stress-ng
🚧 ✅ LTP lite
Host 2:
✅ Boot test
✅ selinux-policy: serge-testsuite
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
I'm announcing the release of the 5.3.1 kernel.
All users of the 5.3 kernel series must upgrade.
The updated 5.3.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-5.3.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Documentation/filesystems/overlayfs.txt | 2
Documentation/sphinx/automarkup.py | 2
Makefile | 2
arch/arm64/include/asm/pgtable.h | 12 ++-
drivers/block/floppy.c | 4 -
drivers/firmware/google/vpd.c | 4 -
drivers/firmware/google/vpd_decode.c | 55 +++++++++-------
drivers/firmware/google/vpd_decode.h | 6 -
drivers/media/usb/dvb-usb/technisat-usb2.c | 22 +++---
drivers/media/usb/tm6000/tm6000-dvb.c | 3
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 12 ++-
drivers/net/xen-netfront.c | 2
drivers/phy/qualcomm/phy-qcom-qmp.c | 33 ++++-----
drivers/phy/renesas/phy-rcar-gen3-usb2.c | 2
drivers/tty/serial/atmel_serial.c | 1
drivers/tty/serial/sprd_serial.c | 2
drivers/usb/core/config.c | 12 ++-
fs/overlayfs/ovl_entry.h | 1
fs/overlayfs/super.c | 73 ++++++++++++++--------
include/net/pkt_sched.h | 7 +-
include/net/sock_reuseport.h | 20 +++++-
net/core/dev.c | 16 +++-
net/core/sock_reuseport.c | 15 +++-
net/dsa/dsa2.c | 2
net/ipv4/datagram.c | 2
net/ipv4/udp.c | 5 -
net/ipv6/datagram.c | 2
net/ipv6/ip6_gre.c | 2
net/ipv6/udp.c | 5 -
net/sched/sch_generic.c | 3
net/wireless/nl80211.c | 4 -
virt/kvm/coalesced_mmio.c | 19 +++--
32 files changed, 226 insertions(+), 126 deletions(-)
Alan Stern (1):
USB: usbcore: Fix slab-out-of-bounds bug during device reset
Amir Goldstein (1):
ovl: fix regression caused by overlapping layers detection
Andrew Lunn (1):
net: dsa: Fix load order between DSA drivers and taggers
Bjorn Andersson (1):
phy: qcom-qmp: Correct ready status, again
Chunyan Zhang (1):
serial: sprd: correct the wrong sequence of arguments
Cong Wang (1):
net_sched: let qdisc_put() accept NULL pointer
Dongli Zhang (1):
xen-netfront: do not assume sk_buff_head list is empty in error handling
Greg Kroah-Hartman (1):
Linux 5.3.1
Hung-Te Lin (1):
firmware: google: check if size is valid when decoding VPD data
Jann Horn (1):
floppy: fix usercopy direction
Jonathan Neuschäfer (1):
Documentation: sphinx: Add missing comma to list of strings
Jose Abreu (1):
net: stmmac: Hold rtnl lock in suspend/resume callbacks
Masashi Honma (1):
nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
Matt Delco (1):
KVM: coalesced_mmio: add bounds checking
Paolo Abeni (1):
net/sched: fix race between deactivation and dequeue for NOLOCK qdisc
Razvan Stefanescu (1):
tty/serial: atmel: reschedule TX after RX was started
Sean Young (2):
media: tm6000: double free if usb disconnect while streaming
media: technisat-usb2: break out of loop at end of buffer
Will Deacon (1):
Revert "arm64: Remove unnecessary ISBs from set_{pte,pmd,pud}"
Willem de Bruijn (1):
udp: correct reuseport selection with connected sockets
Xin Long (1):
ip6_gre: fix a dst leak in ip6erspan_tunnel_xmit
Yoshihiro Shimoda (1):
phy: renesas: rcar-gen3-usb2: Disable clearing VBUS in over-current
There's a bug in skiboot that causes the OPAL_XIVE_ALLOCATE_IRQ call
to return the 32-bit value 0xffffffff when OPAL has run out of IRQs.
Unfortunatelty, OPAL return values are signed 64-bit entities and
errors are supposed to be negative. If that happens, the linux code
confusingly treats 0xffffffff as a valid IRQ number and panics at some
point.
A fix was recently merged in skiboot:
e97391ae2bb5 ("xive: fix return value of opal_xive_allocate_irq()")
but we need a workaround anyway to support older skiboots already
in the field.
Internally convert 0xffffffff to OPAL_RESOURCE which is the usual error
returned upon resource exhaustion.
Cc: stable(a)vger.kernel.org # v4.12+
Signed-off-by: Greg Kurz <groug(a)kaod.org>
Reviewed-by: Cédric Le Goater <clg(a)kaod.org>
Signed-off-by: Michael Ellerman <mpe(a)ellerman.id.au>
Link: https://lore.kernel.org/r/156821713818.1985334.14123187368108582810.stgit@b…
(cherry picked from commit 6ccb4ac2bf8a35c694ead92f8ac5530a16e8f2c8,
groug: fix arch/powerpc/platforms/powernv/opal-wrappers.S instead of
non-existing arch/powerpc/platforms/powernv/opal-call.c)
Signed-off-by: Greg Kurz <groug(a)kaod.org>
---
This is for 4.14 and 4.19.
arch/powerpc/include/asm/opal.h | 2 +-
arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +-
arch/powerpc/sysdev/xive/native.c | 11 +++++++++++
3 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/arch/powerpc/include/asm/opal.h b/arch/powerpc/include/asm/opal.h
index 8eb3ebca02df..163970c56e2f 100644
--- a/arch/powerpc/include/asm/opal.h
+++ b/arch/powerpc/include/asm/opal.h
@@ -266,7 +266,7 @@ int64_t opal_xive_get_vp_info(uint64_t vp,
int64_t opal_xive_set_vp_info(uint64_t vp,
uint64_t flags,
uint64_t report_cl_pair);
-int64_t opal_xive_allocate_irq(uint32_t chip_id);
+int64_t opal_xive_allocate_irq_raw(uint32_t chip_id);
int64_t opal_xive_free_irq(uint32_t girq);
int64_t opal_xive_sync(uint32_t type, uint32_t id);
int64_t opal_xive_dump(uint32_t type, uint32_t id);
diff --git a/arch/powerpc/platforms/powernv/opal-wrappers.S b/arch/powerpc/platforms/powernv/opal-wrappers.S
index 8c1ede2d3f7e..b12a75a0ee8b 100644
--- a/arch/powerpc/platforms/powernv/opal-wrappers.S
+++ b/arch/powerpc/platforms/powernv/opal-wrappers.S
@@ -301,7 +301,7 @@ OPAL_CALL(opal_xive_set_queue_info, OPAL_XIVE_SET_QUEUE_INFO);
OPAL_CALL(opal_xive_donate_page, OPAL_XIVE_DONATE_PAGE);
OPAL_CALL(opal_xive_alloc_vp_block, OPAL_XIVE_ALLOCATE_VP_BLOCK);
OPAL_CALL(opal_xive_free_vp_block, OPAL_XIVE_FREE_VP_BLOCK);
-OPAL_CALL(opal_xive_allocate_irq, OPAL_XIVE_ALLOCATE_IRQ);
+OPAL_CALL(opal_xive_allocate_irq_raw, OPAL_XIVE_ALLOCATE_IRQ);
OPAL_CALL(opal_xive_free_irq, OPAL_XIVE_FREE_IRQ);
OPAL_CALL(opal_xive_get_vp_info, OPAL_XIVE_GET_VP_INFO);
OPAL_CALL(opal_xive_set_vp_info, OPAL_XIVE_SET_VP_INFO);
diff --git a/arch/powerpc/sysdev/xive/native.c b/arch/powerpc/sysdev/xive/native.c
index 0f89ee557b04..aac61374afeb 100644
--- a/arch/powerpc/sysdev/xive/native.c
+++ b/arch/powerpc/sysdev/xive/native.c
@@ -234,6 +234,17 @@ static bool xive_native_match(struct device_node *node)
return of_device_is_compatible(node, "ibm,opal-xive-vc");
}
+static s64 opal_xive_allocate_irq(u32 chip_id)
+{
+ s64 irq = opal_xive_allocate_irq_raw(chip_id);
+
+ /*
+ * Old versions of skiboot can incorrectly return 0xffffffff to
+ * indicate no space, fix it up here.
+ */
+ return irq == 0xffffffff ? OPAL_RESOURCE : irq;
+}
+
#ifdef CONFIG_SMP
static int xive_native_get_ipi(unsigned int cpu, struct xive_cpu *xc)
{
As reported by the OpenWRT team, write requests sometimes fail on some
platforms.
Currently to check the state chip_ready() is used correctly as described by
the flash memory S29GL256P11TFI01 datasheet.
Also chip_good() is used to check if the write is succeeded and it was
implemented by the commit fb4a90bfcd6d8 ("[MTD] CFI-0002 - Improve error
checking").
But actually the write failure is caused on some platforms and also it can
be fixed by using chip_good() to check the state and retry instead.
Also it seems that it is caused after repeated about 1,000 times to retry
the write one word with the reset command.
By using chip_good() to check the state to be done it can be reduced the
retry with reset.
It is depended on the actual flash chip behavior so the root cause is
unknown.
Cc: Chris Packham <chris.packham(a)alliedtelesis.co.nz>
Cc: Joakim Tjernlund <Joakim.Tjernlund(a)infinera.com>
Cc: linux-mtd(a)lists.infradead.org
Cc: stable(a)vger.kernel.org
Reported-by: Fabio Bettoni <fbettoni(a)gmail.com>
Signed-off-by: Felix Fietkau <nbd(a)nbd.name>
Signed-off-by: Hauke Mehrtens <hauke(a)hauke-m.de>
Signed-off-by: Tokunori Ikegami <ikegami.t(a)gmail.com>
[vigneshr(a)ti.com: Fix a checkpatch warning]
Signed-off-by: Vignesh Raghavendra <vigneshr(a)ti.com>
---
drivers/mtd/chips/cfi_cmdset_0002.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index c8fa5906bdf9..ed3e640eb03a 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -1628,29 +1628,35 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip,
continue;
}
- if (time_after(jiffies, timeo) && !chip_ready(map, adr)){
+ /*
+ * We check "time_after" and "!chip_good" before checking
+ * "chip_good" to avoid the failure due to scheduling.
+ */
+ if (time_after(jiffies, timeo) && !chip_good(map, adr, datum)) {
xip_enable(map, chip, adr);
printk(KERN_WARNING "MTD %s(): software timeout\n", __func__);
xip_disable(map, chip, adr);
+ ret = -EIO;
break;
}
- if (chip_ready(map, adr))
+ if (chip_good(map, adr, datum))
break;
/* Latency issues. Drop the lock, wait a while and retry */
UDELAY(map, chip, adr, 1);
}
+
/* Did we succeed? */
- if (!chip_good(map, adr, datum)) {
+ if (ret) {
/* reset on all failures. */
map_write(map, CMD(0xF0), chip->start);
/* FIXME - should have reset delay before continuing */
- if (++retry_cnt <= MAX_RETRIES)
+ if (++retry_cnt <= MAX_RETRIES) {
+ ret = 0;
goto retry;
-
- ret = -EIO;
+ }
}
xip_enable(map, chip, adr);
op_done:
--
2.11.0
On 2019/9/21 23:57, Bart Van Assche wrote:
> On 9/20/19 4:34 AM, Yufen Yu wrote:
>> Cc: Christoph Hellwig <hch(a)infradead.org>
>> Cc: Keith Busch <keith.busch(a)intel.com>
>> Reviewed-by: Ming Lei <ming.lei(a)redhat.com>
>> Signed-off-by: Yufen Yu <yuyufen(a)huawei.com>
>
> Have you considered to add Fixes: and Cc: stable tags to this patch?
No matter whether we have merged commit 12f5b93145,
the bug always exist in earlier version. So, I am not sure it
is suitable to add 'Fixes:'.
Since the resolution of this patch is based on commit 12f5b93145
("blk-mq: Remove generation seqeunce"), I think it will be ok to CC
stable for v4.18+.
Cc: stable(a)vger.kernel.org # v4.18+
Thanks,
Yufen
As reported by the OpenWRT team, write requests sometimes fail on some
platforms.
Currently to check the state chip_ready() is used correctly as described by
the flash memory S29GL256P11TFI01 datasheet.
Also chip_good() is used to check if the write is succeeded and it was
implemented by the commit fb4a90bfcd6d8 ("[MTD] CFI-0002 - Improve error
checking").
But actually the write failure is caused on some platforms and also it can
be fixed by using chip_good() to check the state and retry instead.
Also it seems that it is caused after repeated about 1,000 times to retry
the write one word with the reset command.
By using chip_good() to check the state to be done it can be reduced the
retry with reset.
It is depended on the actual flash chip behavior so the root cause is
unknown.
Cc: Chris Packham <chris.packham(a)alliedtelesis.co.nz>
Cc: Joakim Tjernlund <Joakim.Tjernlund(a)infinera.com>
Cc: linux-mtd(a)lists.infradead.org
Cc: stable(a)vger.kernel.org
Reported-by: Fabio Bettoni <fbettoni(a)gmail.com>
Signed-off-by: Felix Fietkau <nbd(a)nbd.name>
Signed-off-by: Hauke Mehrtens <hauke(a)hauke-m.de>
Signed-off-by: Tokunori Ikegami <ikegami.t(a)gmail.com>
[vigneshr(a)ti.com: Fix a checkpatch warning]
Signed-off-by: Vignesh Raghavendra <vigneshr(a)ti.com>
---
drivers/mtd/chips/cfi_cmdset_0002.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index fb5a3052f144..7589d891b311 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -1626,29 +1626,35 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip,
continue;
}
- if (time_after(jiffies, timeo) && !chip_ready(map, adr)){
+ /*
+ * We check "time_after" and "!chip_good" before checking
+ * "chip_good" to avoid the failure due to scheduling.
+ */
+ if (time_after(jiffies, timeo) && !chip_good(map, adr, datum)) {
xip_enable(map, chip, adr);
printk(KERN_WARNING "MTD %s(): software timeout\n", __func__);
xip_disable(map, chip, adr);
+ ret = -EIO;
break;
}
- if (chip_ready(map, adr))
+ if (chip_good(map, adr, datum))
break;
/* Latency issues. Drop the lock, wait a while and retry */
UDELAY(map, chip, adr, 1);
}
+
/* Did we succeed? */
- if (!chip_good(map, adr, datum)) {
+ if (ret) {
/* reset on all failures. */
map_write( map, CMD(0xF0), chip->start );
/* FIXME - should have reset delay before continuing */
- if (++retry_cnt <= MAX_RETRIES)
+ if (++retry_cnt <= MAX_RETRIES) {
+ ret = 0;
goto retry;
-
- ret = -EIO;
+ }
}
xip_enable(map, chip, adr);
op_done:
--
2.11.0
As reported by the OpenWRT team, write requests sometimes fail on some
platforms.
Currently to check the state chip_ready() is used correctly as described by
the flash memory S29GL256P11TFI01 datasheet.
Also chip_good() is used to check if the write is succeeded and it was
implemented by the commit fb4a90bfcd6d8 ("[MTD] CFI-0002 - Improve error
checking").
But actually the write failure is caused on some platforms and also it can
be fixed by using chip_good() to check the state and retry instead.
Also it seems that it is caused after repeated about 1,000 times to retry
the write one word with the reset command.
By using chip_good() to check the state to be done it can be reduced the
retry with reset.
It is depended on the actual flash chip behavior so the root cause is
unknown.
Cc: Chris Packham <chris.packham(a)alliedtelesis.co.nz>
Cc: Joakim Tjernlund <Joakim.Tjernlund(a)infinera.com>
Cc: linux-mtd(a)lists.infradead.org
Cc: stable(a)vger.kernel.org
Reported-by: Fabio Bettoni <fbettoni(a)gmail.com>
Signed-off-by: Felix Fietkau <nbd(a)nbd.name>
Signed-off-by: Hauke Mehrtens <hauke(a)hauke-m.de>
Signed-off-by: Tokunori Ikegami <ikegami.t(a)gmail.com>
[vigneshr(a)ti.com: Fix a checkpatch warning]
Signed-off-by: Vignesh Raghavendra <vigneshr(a)ti.com>
---
drivers/mtd/chips/cfi_cmdset_0002.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index de35a2a362f9..8725e406a9eb 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -1624,29 +1624,35 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip,
continue;
}
- if (time_after(jiffies, timeo) && !chip_ready(map, adr)){
+ /*
+ * We check "time_after" and "!chip_good" before checking
+ * "chip_good" to avoid the failure due to scheduling.
+ */
+ if (time_after(jiffies, timeo) && !chip_good(map, adr, datum)) {
xip_enable(map, chip, adr);
printk(KERN_WARNING "MTD %s(): software timeout\n", __func__);
xip_disable(map, chip, adr);
+ ret = -EIO;
break;
}
- if (chip_ready(map, adr))
+ if (chip_good(map, adr, datum))
break;
/* Latency issues. Drop the lock, wait a while and retry */
UDELAY(map, chip, adr, 1);
}
+
/* Did we succeed? */
- if (!chip_good(map, adr, datum)) {
+ if (ret) {
/* reset on all failures. */
map_write( map, CMD(0xF0), chip->start );
/* FIXME - should have reset delay before continuing */
- if (++retry_cnt <= MAX_RETRIES)
+ if (++retry_cnt <= MAX_RETRIES) {
+ ret = 0;
goto retry;
-
- ret = -EIO;
+ }
}
xip_enable(map, chip, adr);
op_done:
--
2.11.0
As reported by the OpenWRT team, write requests sometimes fail on some
platforms.
Currently to check the state chip_ready() is used correctly as described by
the flash memory S29GL256P11TFI01 datasheet.
Also chip_good() is used to check if the write is succeeded and it was
implemented by the commit fb4a90bfcd6d8 ("[MTD] CFI-0002 - Improve error
checking").
But actually the write failure is caused on some platforms and also it can
be fixed by using chip_good() to check the state and retry instead.
Also it seems that it is caused after repeated about 1,000 times to retry
the write one word with the reset command.
By using chip_good() to check the state to be done it can be reduced the
retry with reset.
It is depended on the actual flash chip behavior so the root cause is
unknown.
Cc: Chris Packham <chris.packham(a)alliedtelesis.co.nz>
Cc: Joakim Tjernlund <Joakim.Tjernlund(a)infinera.com>
Cc: linux-mtd(a)lists.infradead.org
Cc: stable(a)vger.kernel.org
Reported-by: Fabio Bettoni <fbettoni(a)gmail.com>
Signed-off-by: Felix Fietkau <nbd(a)nbd.name>
Signed-off-by: Hauke Mehrtens <hauke(a)hauke-m.de>
Signed-off-by: Tokunori Ikegami <ikegami.t(a)gmail.com>
[vigneshr(a)ti.com: Fix a checkpatch warning]
Signed-off-by: Vignesh Raghavendra <vigneshr(a)ti.com>
---
drivers/mtd/chips/cfi_cmdset_0002.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index af3d207c9cc4..e773dc6fdd3c 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -1628,29 +1628,35 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip,
continue;
}
- if (time_after(jiffies, timeo) && !chip_ready(map, adr)){
+ /*
+ * We check "time_after" and "!chip_good" before checking
+ * "chip_good" to avoid the failure due to scheduling.
+ */
+ if (time_after(jiffies, timeo) && !chip_good(map, adr, datum)) {
xip_enable(map, chip, adr);
printk(KERN_WARNING "MTD %s(): software timeout\n", __func__);
xip_disable(map, chip, adr);
+ ret = -EIO;
break;
}
- if (chip_ready(map, adr))
+ if (chip_good(map, adr, datum))
break;
/* Latency issues. Drop the lock, wait a while and retry */
UDELAY(map, chip, adr, 1);
}
+
/* Did we succeed? */
- if (!chip_good(map, adr, datum)) {
+ if (ret) {
/* reset on all failures. */
map_write( map, CMD(0xF0), chip->start );
/* FIXME - should have reset delay before continuing */
- if (++retry_cnt <= MAX_RETRIES)
+ if (++retry_cnt <= MAX_RETRIES) {
+ ret = 0;
goto retry;
-
- ret = -EIO;
+ }
}
xip_enable(map, chip, adr);
op_done:
--
2.11.0
As reported by the OpenWRT team, write requests sometimes fail on some
platforms.
Currently to check the state chip_ready() is used correctly as described by
the flash memory S29GL256P11TFI01 datasheet.
Also chip_good() is used to check if the write is succeeded and it was
implemented by the commit fb4a90bfcd6d8 ("[MTD] CFI-0002 - Improve error
checking").
But actually the write failure is caused on some platforms and also it can
be fixed by using chip_good() to check the state and retry instead.
Also it seems that it is caused after repeated about 1,000 times to retry
the write one word with the reset command.
By using chip_good() to check the state to be done it can be reduced the
retry with reset.
It is depended on the actual flash chip behavior so the root cause is
unknown.
Cc: Chris Packham <chris.packham(a)alliedtelesis.co.nz>
Cc: Joakim Tjernlund <Joakim.Tjernlund(a)infinera.com>
Cc: linux-mtd(a)lists.infradead.org
Cc: stable(a)vger.kernel.org
Reported-by: Fabio Bettoni <fbettoni(a)gmail.com>
Signed-off-by: Felix Fietkau <nbd(a)nbd.name>
Signed-off-by: Hauke Mehrtens <hauke(a)hauke-m.de>
Signed-off-by: Tokunori Ikegami <ikegami.t(a)gmail.com>
[vigneshr(a)ti.com: Fix a checkpatch warning]
Signed-off-by: Vignesh Raghavendra <vigneshr(a)ti.com>
---
drivers/mtd/chips/cfi_cmdset_0002.c | 18 ++++++++++++------
1 file changed, 12 insertions(+), 6 deletions(-)
diff --git a/drivers/mtd/chips/cfi_cmdset_0002.c b/drivers/mtd/chips/cfi_cmdset_0002.c
index 72428b6bfc47..ba44ea6d497e 100644
--- a/drivers/mtd/chips/cfi_cmdset_0002.c
+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
@@ -1627,29 +1627,35 @@ static int __xipram do_write_oneword(struct map_info *map, struct flchip *chip,
continue;
}
- if (time_after(jiffies, timeo) && !chip_ready(map, adr)){
+ /*
+ * We check "time_after" and "!chip_good" before checking
+ * "chip_good" to avoid the failure due to scheduling.
+ */
+ if (time_after(jiffies, timeo) && !chip_good(map, adr, datum)) {
xip_enable(map, chip, adr);
printk(KERN_WARNING "MTD %s(): software timeout\n", __func__);
xip_disable(map, chip, adr);
+ ret = -EIO;
break;
}
- if (chip_ready(map, adr))
+ if (chip_good(map, adr, datum))
break;
/* Latency issues. Drop the lock, wait a while and retry */
UDELAY(map, chip, adr, 1);
}
+
/* Did we succeed? */
- if (!chip_good(map, adr, datum)) {
+ if (ret) {
/* reset on all failures. */
map_write(map, CMD(0xF0), chip->start);
/* FIXME - should have reset delay before continuing */
- if (++retry_cnt <= MAX_RETRIES)
+ if (++retry_cnt <= MAX_RETRIES) {
+ ret = 0;
goto retry;
-
- ret = -EIO;
+ }
}
xip_enable(map, chip, adr);
op_done:
--
2.11.0
Please apply commit 0f0727d971f6 ("drm/amd/display: readd -msse2 to
prevent Clang from emitting libcalls to undefined SW FP routines") to
4.19.y.
It will help with AMD based chromebooks for ChromeOS.
--
Thanks,
~Nick Desaulniers
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: c9a59a82366b - Linux 5.3.1
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/180445
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: c9a59a82366b - Linux 5.3.1
We grabbed the 7f2f9d496c3b commit of the stable queue repository.
We then merged the patchset with `git am`:
netfilter-add-missing-is_enabled-config_nf_tables-check-to-header-file.patch
clocksource-drivers-timer-of-do-not-warn-on-deferred-probe.patch
clocksource-drivers-do-not-warn-on-probe-defer.patch
drm-amd-display-allow-cursor-async-updates-for-framebuffer-swaps.patch
drm-amd-display-skip-determining-update-type-for-async-updates.patch
drm-amd-display-don-t-replace-the-dc_state-for-fast-updates.patch
drm-amd-display-readd-msse2-to-prevent-clang-from-emitting-libcalls-to-undefined-sw-fp-routines.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ stress: stress-ng
🚧 ✅ LTP lite
Host 2:
✅ Boot test
✅ selinux-policy: serge-testsuite
ppc64le:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
🚧 ✅ LTP lite
Host 2:
✅ Boot test
✅ selinux-policy: serge-testsuite
x86_64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ stress: stress-ng
🚧 ✅ LTP lite
Host 2:
✅ Boot test
✅ selinux-policy: serge-testsuite
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
This set of patches is cherry-picked from 5.4 to stable to fix:
https://bugzilla.kernel.org/show_bug.cgi?id=204181
Please apply!
Thanks,
Alex
Nicholas Kazlauskas (3):
drm/amd/display: Allow cursor async updates for framebuffer swaps
drm/amd/display: Skip determining update type for async updates
drm/amd/display: Don't replace the dc_state for fast updates
.../gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 56 ++++++++++++++-----
1 file changed, 41 insertions(+), 15 deletions(-)
--
2.20.1
This is the start of the stable review cycle for the 5.3.1 release.
There are 21 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 21 Sep 2019 09:44:25 PM UTC.
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/v5.x/stable-review/patch-5.3.1-rc1.…
or in the git tree and branch at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.3.y
and the diffstat can be found below.
thanks,
greg k-h
-------------
Pseudo-Shortlog of commits:
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Linux 5.3.1-rc1
Sean Young <sean(a)mess.org>
media: technisat-usb2: break out of loop at end of buffer
Jann Horn <jannh(a)google.com>
floppy: fix usercopy direction
Bjorn Andersson <bjorn.andersson(a)linaro.org>
phy: qcom-qmp: Correct ready status, again
Amir Goldstein <amir73il(a)gmail.com>
ovl: fix regression caused by overlapping layers detection
Will Deacon <will(a)kernel.org>
Revert "arm64: Remove unnecessary ISBs from set_{pte,pmd,pud}"
Masashi Honma <masashi.honma(a)gmail.com>
nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
Razvan Stefanescu <razvan.stefanescu(a)microchip.com>
tty/serial: atmel: reschedule TX after RX was started
Chunyan Zhang <chunyan.zhang(a)unisoc.com>
serial: sprd: correct the wrong sequence of arguments
Hung-Te Lin <hungte(a)chromium.org>
firmware: google: check if size is valid when decoding VPD data
Jonathan Neuschäfer <j.neuschaefer(a)gmx.net>
Documentation: sphinx: Add missing comma to list of strings
Matt Delco <delco(a)chromium.org>
KVM: coalesced_mmio: add bounds checking
Jose Abreu <Jose.Abreu(a)synopsys.com>
net: stmmac: Hold rtnl lock in suspend/resume callbacks
Andrew Lunn <andrew(a)lunn.ch>
net: dsa: Fix load order between DSA drivers and taggers
Dongli Zhang <dongli.zhang(a)oracle.com>
xen-netfront: do not assume sk_buff_head list is empty in error handling
Willem de Bruijn <willemb(a)google.com>
udp: correct reuseport selection with connected sockets
Cong Wang <xiyou.wangcong(a)gmail.com>
net_sched: let qdisc_put() accept NULL pointer
Paolo Abeni <pabeni(a)redhat.com>
net/sched: fix race between deactivation and dequeue for NOLOCK qdisc
Xin Long <lucien.xin(a)gmail.com>
ip6_gre: fix a dst leak in ip6erspan_tunnel_xmit
Yoshihiro Shimoda <yoshihiro.shimoda.uh(a)renesas.com>
phy: renesas: rcar-gen3-usb2: Disable clearing VBUS in over-current
Sean Young <sean(a)mess.org>
media: tm6000: double free if usb disconnect while streaming
Alan Stern <stern(a)rowland.harvard.edu>
USB: usbcore: Fix slab-out-of-bounds bug during device reset
-------------
Diffstat:
Documentation/filesystems/overlayfs.txt | 2 +-
Documentation/sphinx/automarkup.py | 2 +-
Makefile | 4 +-
arch/arm64/include/asm/pgtable.h | 12 +++-
drivers/block/floppy.c | 4 +-
drivers/firmware/google/vpd.c | 4 +-
drivers/firmware/google/vpd_decode.c | 55 ++++++++++-------
drivers/firmware/google/vpd_decode.h | 6 +-
drivers/media/usb/dvb-usb/technisat-usb2.c | 22 ++++---
drivers/media/usb/tm6000/tm6000-dvb.c | 3 +
drivers/net/ethernet/stmicro/stmmac/stmmac_main.c | 12 ++--
drivers/net/xen-netfront.c | 2 +-
drivers/phy/qualcomm/phy-qcom-qmp.c | 33 +++++-----
drivers/phy/renesas/phy-rcar-gen3-usb2.c | 2 +
drivers/tty/serial/atmel_serial.c | 1 -
drivers/tty/serial/sprd_serial.c | 2 +-
drivers/usb/core/config.c | 12 ++--
fs/overlayfs/ovl_entry.h | 1 +
fs/overlayfs/super.c | 73 +++++++++++++++--------
include/net/pkt_sched.h | 7 ++-
include/net/sock_reuseport.h | 20 ++++++-
net/core/dev.c | 16 +++--
net/core/sock_reuseport.c | 15 ++++-
net/dsa/dsa2.c | 2 +
net/ipv4/datagram.c | 2 +
net/ipv4/udp.c | 5 +-
net/ipv6/datagram.c | 2 +
net/ipv6/ip6_gre.c | 2 +-
net/ipv6/udp.c | 5 +-
net/sched/sch_generic.c | 3 +
net/wireless/nl80211.c | 4 +-
virt/kvm/coalesced_mmio.c | 19 +++---
32 files changed, 227 insertions(+), 127 deletions(-)
As the endpoint is unregistered there might still be work pending to
handle incoming messages, which will result in a use after free
scenario. The plan is to remove the rx_worker, but until then (and for
stable@) ensure that the work is stopped before the node is freed.
Fixes: bdabad3e363d ("net: Add Qualcomm IPC router")
Cc: stable(a)vger.kernel.org
Signed-off-by: Bjorn Andersson <bjorn.andersson(a)linaro.org>
---
net/qrtr/qrtr.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/qrtr/qrtr.c b/net/qrtr/qrtr.c
index 6c8b0f6d28f9..88f98f27ad88 100644
--- a/net/qrtr/qrtr.c
+++ b/net/qrtr/qrtr.c
@@ -150,6 +150,7 @@ static void __qrtr_node_release(struct kref *kref)
list_del(&node->item);
mutex_unlock(&qrtr_node_lock);
+ cancel_work_sync(&node->work);
skb_queue_purge(&node->rx_queue);
kfree(node);
}
--
2.18.0
On Sat, 21 Sep 2019 12:06:18 +0000
Sasha Levin <sashal(a)kernel.org> wrote:
> Hi,
>
> [This is an automated email]
>
> This commit has been processed because it contains a "Fixes:" tag,
> fixing commit: .
>
> The bot has tested the following trees: v5.2.16, v4.19.74, v4.14.145, v4.9.193, v4.4.193.
The fixes tag is 7e8b88a30b085 which was added to mainline in 4.17.
According to this email, it applies fine to 5.2 and 4.19, but fails on
4.14 and earlier. As the commit was added in 4.17 that makes perfect
sense. Can you update your scripts to test when the fixes commit was
added, and not send spam about it not applying to stable trees where
it's not applicable.
On a git repo containing only Linus's tree, I have:
$ git describe --contains 7e8b88a30b085
v4.17-rc1~28^2~43
Which shows me when it was applied.
Thanks!
-- Steve
>
> v5.2.16: Build OK!
> v4.19.74: Build OK!
> v4.14.145: Failed to apply! Possible dependencies:
> 00b4145298ae ("ring-buffer: Add interface for setting absolute time stamps")
> 067fe038e70f ("tracing: Add variable reference handling to hist triggers")
> 0d7a8325bf33 ("tracing: Clean up hist_field_flags enum")
> 100719dcef44 ("tracing: Add simple expression support to hist triggers")
> 30350d65ac56 ("tracing: Add variable support to hist triggers")
> 442c94846190 ("tracing: Add Documentation for log2 modifier")
> 5819eaddf35b ("tracing: Reimplement log2")
> 7e8b88a30b08 ("tracing: Add hist trigger support for variable reference aliases")
> 85013256cf01 ("tracing: Add hist_field_name() accessor")
> 860f9f6b02e9 ("tracing: Add usecs modifier for hist trigger timestamps")
> 8b7622bf94a4 ("tracing: Add cpu field for hist triggers")
> ad42febe51ae ("tracing: Add hist trigger timestamp support")
> b559d003a226 ("tracing: Add hist_data member to hist_field")
> b8df4a3634e0 ("tracing: Move hist trigger Documentation to histogram.txt")
>
> v4.9.193: Failed to apply! Possible dependencies:
> 00b4145298ae ("ring-buffer: Add interface for setting absolute time stamps")
> 067fe038e70f ("tracing: Add variable reference handling to hist triggers")
> 0d7a8325bf33 ("tracing: Clean up hist_field_flags enum")
> 100719dcef44 ("tracing: Add simple expression support to hist triggers")
> 30350d65ac56 ("tracing: Add variable support to hist triggers")
> 442c94846190 ("tracing: Add Documentation for log2 modifier")
> 5819eaddf35b ("tracing: Reimplement log2")
> 7e8b88a30b08 ("tracing: Add hist trigger support for variable reference aliases")
> 85013256cf01 ("tracing: Add hist_field_name() accessor")
> 860f9f6b02e9 ("tracing: Add usecs modifier for hist trigger timestamps")
> 8b7622bf94a4 ("tracing: Add cpu field for hist triggers")
> ad42febe51ae ("tracing: Add hist trigger timestamp support")
> b559d003a226 ("tracing: Add hist_data member to hist_field")
> b8df4a3634e0 ("tracing: Move hist trigger Documentation to histogram.txt")
>
> v4.4.193: Failed to apply! Possible dependencies:
> 08d43a5fa063 ("tracing: Add lock-free tracing_map")
> 0c4a6b4666e8 ("tracing: Add hist trigger 'hex' modifier for displaying numeric fields")
> 0fc3813ce103 ("tracing: Add 'hist' trigger Documentation")
> 52a7f16dedff ("tracing: Add support for multiple hist triggers per event")
> 5463bfda327b ("tracing: Add support for named hist triggers")
> 76a3b0c8ac34 ("tracing: Add hist trigger support for compound keys")
> 7e8b88a30b08 ("tracing: Add hist trigger support for variable reference aliases")
> 7ef224d1d0e3 ("tracing: Add 'hist' event trigger command")
> 83e99914c9e2 ("tracing: Add hist trigger support for pausing and continuing a trace")
> 8b7622bf94a4 ("tracing: Add cpu field for hist triggers")
> b8df4a3634e0 ("tracing: Move hist trigger Documentation to histogram.txt")
> c6afad49d127 ("tracing: Add hist trigger 'sym' and 'sym-offset' modifiers")
> e62347d24534 ("tracing: Add hist trigger support for user-defined sorting ('sort=' param)")
> f2606835d70d ("tracing: Add hist trigger support for multiple values ('vals=' param)")
>
>
> NOTE: The patch will not be queued to stable trees until it is upstream.
>
> How should we proceed with this patch?
>
> --
> Thanks,
> Sasha
On Fri, 2019-09-20 at 21:26 -0400, Hui Peng wrote:
> I want to confirm the patches.
>
> Which version of GCC do you use to compile 3.16?
>
> I tried gcc-4.8, it seems that the built kernel can not be boot by qemu.
[...]
For my own limited testing, I build for x86 with gcc 4.9. Debian's
packages are built with gcc 4.8 (arm) or 4.9 (x86).
Guenter Roeck does build and boot tests on multiple architectures using
a variety of (mostly quite recent) compiler versions.
Ben.
--
Ben Hutchings
If the facts do not conform to your theory, they must be disposed of.
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: c9a59a82366b - Linux 5.3.1
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/178680
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: c9a59a82366b - Linux 5.3.1
We grabbed the f2de500c2573 commit of the stable queue repository.
We then merged the patchset with `git am`:
netfilter-add-missing-is_enabled-config_nf_tables-check-to-header-file.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ stress: stress-ng
🚧 ✅ LTP lite
Host 2:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
⚡⚡⚡ Boot test
⚡⚡⚡ selinux-policy: serge-testsuite
ppc64le:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
🚧 ✅ LTP lite
x86_64:
Host 1:
✅ Boot test
✅ selinux-policy: serge-testsuite
Host 2:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ jvm test suite
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ stress: stress-ng
🚧 ✅ LTP lite
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
Hello,
We ran automated tests on a recent commit from this kernel tree:
Kernel repo: git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
Commit: c9a59a82366b - Linux 5.3.1
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/178225
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
Host 1:
✅ Boot test
✅ xfstests: ext4
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
Host 2:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
⚡⚡⚡ Boot test
⚡⚡⚡ Podman system integration test (as root)
⚡⚡⚡ Podman system integration test (as user)
⚡⚡⚡ Loopdev Sanity
⚡⚡⚡ jvm test suite
⚡⚡⚡ Memory function: memfd_create
⚡⚡⚡ AMTU (Abstract Machine Test Utility)
⚡⚡⚡ LTP: openposix test suite
⚡⚡⚡ Ethernet drivers sanity
⚡⚡⚡ Networking socket: fuzz
⚡⚡⚡ Networking sctp-auth: sockopts test
⚡⚡⚡ Networking: igmp conformance test
⚡⚡⚡ Networking TCP: keepalive test
⚡⚡⚡ Networking UDP: socket
⚡⚡⚡ Networking tunnel: gre basic
⚡⚡⚡ Networking tunnel: vxlan basic
⚡⚡⚡ audit: audit testsuite test
⚡⚡⚡ httpd: mod_ssl smoke sanity
⚡⚡⚡ iotop: sanity
⚡⚡⚡ tuned: tune-processes-through-perf
⚡⚡⚡ Usex - version 1.9-29
⚡⚡⚡ storage: SCSI VPD
⚡⚡⚡ stress: stress-ng
🚧 ⚡⚡⚡ LTP lite
🚧 ⚡⚡⚡ CIFS Connectathon
🚧 ⚡⚡⚡ Memory function: kaslr
🚧 ⚡⚡⚡ Networking bridge: sanity
🚧 ⚡⚡⚡ Networking MACsec: sanity
🚧 ⚡⚡⚡ Networking route: pmtu
🚧 ⚡⚡⚡ Networking tunnel: geneve basic test
🚧 ⚡⚡⚡ Networking vnic: ipvlan/basic
🚧 ⚡⚡⚡ ALSA PCM loopback test
🚧 ⚡⚡⚡ ALSA Control (mixer) Userspace Element test
🚧 ⚡⚡⚡ trace: ftrace/tracer
🚧 ⚡⚡⚡ Networking route_func: local
🚧 ⚡⚡⚡ Networking route_func: forward
🚧 ⚡⚡⚡ Networking ipsec: basic netns transport
🚧 ⚡⚡⚡ Networking ipsec: basic netns tunnel
ppc64le:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ Memory function: memfd_create
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ Networking sctp-auth: sockopts test
✅ Networking TCP: keepalive test
✅ Networking UDP: socket
✅ Networking tunnel: gre basic
✅ Networking tunnel: vxlan basic
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ Usex - version 1.9-29
🚧 ✅ LTP lite
🚧 ✅ CIFS Connectathon
🚧 ✅ Memory function: kaslr
🚧 ✅ Networking bridge: sanity
🚧 ✅ Networking MACsec: sanity
🚧 ✅ Networking route: pmtu
🚧 ✅ Networking tunnel: geneve basic test
🚧 ✅ Networking ipsec: basic netns tunnel
🚧 ✅ Networking vnic: ipvlan/basic
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ trace: ftrace/tracer
🚧 ✅ Networking route_func: local
🚧 ✅ Networking route_func: forward
Host 2:
✅ Boot test
✅ xfstests: ext4
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
x86_64:
Host 1:
✅ Boot test
✅ Podman system integration test (as root)
✅ Podman system integration test (as user)
✅ Loopdev Sanity
✅ jvm test suite
✅ Memory function: memfd_create
✅ AMTU (Abstract Machine Test Utility)
✅ LTP: openposix test suite
✅ Ethernet drivers sanity
✅ Networking socket: fuzz
✅ Networking sctp-auth: sockopts test
✅ Networking: igmp conformance test
✅ Networking TCP: keepalive test
✅ Networking UDP: socket
✅ Networking tunnel: gre basic
✅ Networking tunnel: vxlan basic
✅ audit: audit testsuite test
✅ httpd: mod_ssl smoke sanity
✅ iotop: sanity
✅ tuned: tune-processes-through-perf
✅ pciutils: sanity smoke test
✅ Usex - version 1.9-29
✅ storage: SCSI VPD
✅ stress: stress-ng
🚧 ✅ LTP lite
🚧 ✅ CIFS Connectathon
🚧 ✅ Memory function: kaslr
🚧 ✅ Networking bridge: sanity
🚧 ✅ Networking MACsec: sanity
🚧 ✅ Networking route: pmtu
🚧 ✅ Networking tunnel: geneve basic test
🚧 ✅ Networking vnic: ipvlan/basic
🚧 ✅ ALSA PCM loopback test
🚧 ✅ ALSA Control (mixer) Userspace Element test
🚧 ✅ trace: ftrace/tracer
🚧 ✅ Networking route_func: local
🚧 ✅ Networking route_func: forward
🚧 ✅ Networking ipsec: basic netns transport
🚧 ✅ Networking ipsec: basic netns tunnel
Host 2:
✅ Boot test
✅ Storage SAN device stress - mpt3sas driver
Host 3:
✅ Boot test
✅ xfstests: ext4
✅ xfstests: xfs
✅ selinux-policy: serge-testsuite
✅ lvm thinp sanity
✅ storage: software RAID testing
🚧 ✅ Storage blktests
🚧 ✅ IOMMU boot test
Host 4:
✅ Boot test
✅ Storage SAN device stress - megaraid_sas
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.
Adam Borowski reported a build-failure in 5.3 when
CONFIG_NF_CONNTRACK_BRIDGE is set but CONFIG_NF_TABLES is not. It was
introduced into the mainline by:
3c171f496ef5 ("netfilter: bridge: add connection tracking system")
There is also a fix in the mainline:
47e640af2e49 ("netfilter: add missing IS_ENABLED(CONFIG_NF_TABLES) check to header-file.")
I've cherry-picked it, and added the "Fixes:", "Reported-by:", "Link:"
and "Cc:" tags.
Please consider applying it to 5-3-y.
Jeremy Sowden (1):
netfilter: add missing IS_ENABLED(CONFIG_NF_TABLES) check to
header-file.
include/net/netfilter/nf_tables.h | 4 ++++
1 file changed, 4 insertions(+)
--
2.23.0
I'm announcing the release of the 4.9.194 kernel.
All users of the 4.9 kernel series must upgrade.
The updated 4.9.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git linux-4.9.y
and can be browsed at the normal kernel.org git web browser:
https://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=summary
thanks,
greg k-h
------------
Makefile | 2
arch/arc/kernel/traps.c | 1
arch/arm/mach-omap2/omap4-common.c | 3 +
arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 3 -
arch/arm/mm/init.c | 8 ++
arch/mips/Kconfig | 3 -
arch/mips/include/asm/smp.h | 12 ++++
arch/mips/sibyte/common/Makefile | 1
arch/mips/sibyte/common/dma.c | 14 -----
arch/mips/vdso/Makefile | 4 +
arch/powerpc/mm/pgtable-radix.c | 16 ++---
arch/s390/kvm/interrupt.c | 10 +++
arch/s390/kvm/kvm-s390.c | 2
arch/s390/net/bpf_jit_comp.c | 12 ++--
arch/x86/Makefile | 1
arch/x86/events/amd/ibs.c | 13 +++-
arch/x86/events/intel/core.c | 6 ++
arch/x86/include/asm/bootparam_utils.h | 1
arch/x86/include/asm/perf_event.h | 12 ++--
arch/x86/include/asm/uaccess.h | 4 +
arch/x86/kernel/apic/io_apic.c | 8 ++
arch/x86/kvm/vmx.c | 7 +-
arch/x86/kvm/x86.c | 7 ++
drivers/atm/Kconfig | 2
drivers/base/core.c | 53 +++++++++++++++++++
drivers/block/floppy.c | 4 -
drivers/clk/rockchip/clk-mmc-phase.c | 4 -
drivers/crypto/talitos.c | 67 ++++++++++++++++++-------
drivers/dma/omap-dma.c | 4 +
drivers/dma/ti-dma-crossbar.c | 4 +
drivers/gpio/gpiolib.c | 20 +++++--
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 5 +
drivers/iommu/amd_iommu.c | 16 ++++-
drivers/isdn/capi/capi.c | 10 +++
drivers/media/usb/dvb-usb/technisat-usb2.c | 22 +++-----
drivers/media/usb/tm6000/tm6000-dvb.c | 3 +
drivers/mtd/nand/mtk_nand.c | 21 +++----
drivers/net/ethernet/marvell/sky2.c | 7 ++
drivers/net/ethernet/qlogic/qed/qed_main.c | 4 +
drivers/net/ethernet/seeq/sgiseeq.c | 7 +-
drivers/net/tun.c | 16 ++++-
drivers/net/usb/cdc_ether.c | 13 +++-
drivers/net/usb/r8152.c | 5 +
drivers/net/wireless/marvell/mwifiex/ie.c | 3 +
drivers/net/wireless/marvell/mwifiex/uap_cmd.c | 9 ++-
drivers/net/xen-netfront.c | 2
drivers/nvmem/core.c | 15 ++++-
drivers/tty/serial/atmel_serial.c | 1
drivers/tty/serial/sprd_serial.c | 2
drivers/usb/core/config.c | 12 ++--
fs/btrfs/tree-log.c | 8 +-
fs/cifs/connect.c | 22 ++++++++
fs/nfs/nfs4file.c | 12 ++--
fs/nfs/pagelist.c | 2
fs/nfs/proc.c | 7 +-
include/uapi/linux/isdn/capicmd.h | 1
kernel/irq/resend.c | 2
net/batman-adv/bat_v_ogm.c | 18 ++++--
net/bridge/br_mdb.c | 2
net/core/dev.c | 2
net/core/skbuff.c | 19 +++++++
net/ipv4/tcp_input.c | 2
net/ipv6/ping.c | 2
net/netfilter/nf_conntrack_ftp.c | 2
net/sched/sch_generic.c | 6 +-
net/sched/sch_hhf.c | 2
net/sctp/protocol.c | 2
net/sctp/sm_sideeffect.c | 2
net/tipc/name_distr.c | 3 -
security/keys/request_key_auth.c | 6 ++
tools/power/x86/turbostat/turbostat.c | 2
virt/kvm/coalesced_mmio.c | 17 +++---
72 files changed, 450 insertions(+), 172 deletions(-)
Alan Stern (1):
USB: usbcore: Fix slab-out-of-bounds bug during device reset
Aneesh Kumar K.V (1):
powerpc/mm/radix: Use the right page size for vmemmap mapping
Bjørn Mork (1):
cdc_ether: fix rndis support for Mediatek based smartphones
Christophe JAILLET (4):
ipv6: Fix the link time qualifier of 'ping_v6_proc_exit_net()'
sctp: Fix the link time qualifier of 'sctp_ctrlsock_exit()'
Kconfig: Fix the reference to the IDT77105 Phy driver in the description of ATM_NICSTAR_USE_IDT77105
net: seeq: Fix the function used to release some memory in an error handling path
Christophe Leroy (6):
crypto: talitos - check AES key size
crypto: talitos - fix CTR alg blocksize
crypto: talitos - check data blocksize in ablkcipher.
crypto: talitos - fix ECB algs ivsize
crypto: talitos - Do not modify req->cryptlen on decryption.
crypto: talitos - HMAC SNOOP NO AFEU mode requires SW icv checking.
Chunyan Zhang (1):
serial: sprd: correct the wrong sequence of arguments
Cong Wang (2):
sch_hhf: ensure quantum and hhf_non_hh_weight are non-zero
net_sched: let qdisc_put() accept NULL pointer
Corey Minyard (1):
x86/boot: Add missing bootparam that breaks boot on some platforms
Dan Carpenter (1):
cifs: Use kzfree() to zero out the password
Dongli Zhang (1):
xen-netfront: do not assume sk_buff_head list is empty in error handling
Doug Berger (1):
ARM: 8874/1: mm: only adjust sections of valid mm structures
Douglas Anderson (1):
clk: rockchip: Don't yell about bad mmc phases when getting
Eric Biggers (1):
isdn/capi: check message length in capi_write()
Filipe Manana (1):
Btrfs: fix assertion failure during fsync and use of stale transaction
Fuqian Huang (1):
KVM: x86: work around leak of uninitialized stack contents
Greg Kroah-Hartman (2):
Revert "MIPS: SiByte: Enable swiotlb for SWARM, LittleSur and BigSur"
Linux 4.9.194
Hillf Danton (1):
keys: Fix missing null pointer check in request_key_auth_describe()
Ilya Leoshkevich (2):
s390/bpf: fix lcgr instruction encoding
s390/bpf: use 32-bit index for tail calls
Jann Horn (1):
floppy: fix usercopy direction
Jean Delvare (1):
nvmem: Use the same permissions for eeprom as for nvmem
Joerg Roedel (1):
iommu/amd: Fix race in increase_address_space()
Josh Hunt (1):
perf/x86/intel: Restrict period on Nehalem
Kent Gibson (2):
gpio: fix line flag validation in linehandle_create
gpio: fix line flag validation in lineevent_create
Kim Phillips (1):
perf/x86/amd/ibs: Fix sample bias for dispatched micro-ops
Linus Torvalds (1):
x86/build: Add -Wnoaddress-of-packed-member to REALMODE_CFLAGS, to silence GCC9 build warning
Matt Delco (1):
KVM: coalesced_mmio: add bounds checking
Muchun Song (1):
driver core: Fix use-after-free and double free on glue directory
Naoya Horiguchi (1):
tools/power turbostat: fix buffer overrun
Neal Cardwell (1):
tcp: fix tcp_ecn_withdraw_cwr() to clear TCP_ECN_QUEUE_CWR
Nicolas Dichtel (1):
bridge/mdb: remove wrong use of NLM_F_MULTI
Nishka Dasgupta (1):
drm/mediatek: mtk_drm_drv.c: Add of_node_put() before goto
Paolo Bonzini (1):
KVM: nVMX: handle page fault in vmread
Paul Burton (2):
MIPS: VDSO: Prevent use of smp_processor_id()
MIPS: VDSO: Use same -m%-float cflag as the kernel proper
Peter Zijlstra (1):
x86/uaccess: Don't leak the AC flags into __get_user() argument evaluation
Prashant Malani (1):
r8152: Set memory to all 0xFFs on failed reg reads
Razvan Stefanescu (1):
tty/serial: atmel: reschedule TX after RX was started
Ronnie Sahlberg (1):
cifs: set domainName when a domain-key is used in multiuser
Sean Young (2):
media: tm6000: double free if usb disconnect while streaming
media: technisat-usb2: break out of loop at end of buffer
Shmulik Ladkani (1):
net: gso: Fix skb_segment splat when splitting gso_size mangled skb having linear-headed frag_list
Subash Abhinov Kasiviswanathan (1):
net: Fix null de-reference of device refcount
Sven Eckelmann (1):
batman-adv: Only read OGM2 tvlv_len after buffer len check
Takashi Iwai (1):
sky2: Disable MSI on yet another ASUS boards (P6Xxxx)
Thomas Gleixner (1):
x86/apic: Fix arch_dynirq_lower_bound() bug for DT enabled machines
Thomas Huth (1):
KVM: s390: Do not leak kernel stack data in the KVM_S390_INTERRUPT ioctl
Thomas Jarosch (1):
netfilter: nf_conntrack_ftp: Fix debug output
Tony Lindgren (2):
ARM: OMAP2+: Fix missing SYSC_HAS_RESET_STATUS for dra7 epwmss
ARM: OMAP2+: Fix omap4 errata warning on other SoCs
Trond Myklebust (4):
NFSv4: Fix return values for nfs4_file_open()
NFS: Fix initialisation of I/O result struct in nfs_pgio_rpcsetup
NFSv2: Fix eof handling
NFSv2: Fix write regression
Vineet Gupta (1):
ARC: export "abort" for modules
Wen Huang (1):
mwifiex: Fix three heap overflow at parsing element in cfg80211_ap_settings
Wenwen Wang (3):
qed: Add cleanup in qed_slowpath_start()
dmaengine: ti: dma-crossbar: Fix a memory leak bug
dmaengine: ti: omap-dma: Add cleanup in omap_dma_probe()
Xiaolei Li (1):
mtd: rawnand: mtk: Fix wrongly assigned OOB buffer pointer issue
Xin Long (2):
sctp: use transport pf_retrans in sctp_do_8_2_transport_strike
tipc: add NULL pointer check before calling kfree_rcu
Yang Yingliang (1):
tun: fix use-after-free when register netdev failed
Yunfeng Ye (1):
genirq: Prevent NULL pointer dereference in resend_irqs()
zhaoyang (1):
ARM: 8901/1: add a criteria for pfn_valid of arm
This regards upstream commit a90118c445cc ("x86/boot: Save fields
explicitly, zero out everything else") application to linux-stable.
Its corresponding commits to the stable 4.4 and 4.9 trees didn't apply
correctly, probably due to a field name change (e820_table had been named
e820_map before 4.10).
On my desktop I'm unable to boot a signed kernel due to these commits.
Add e820_map (to replace e820_table) to the preserved fields so that the
E820 memory regions in boot_params can be accessed by the kernel after
boot_params has been sanitized.
Signed-off-by: John S Gruber <JohnSGruber(a)gmail.com>
Fixes: 41664b97f46e ("x86/boot: Save fields explicitly, zero out everything else")
Fixes: 4e478cb2ccdd ("x86/boot: Save fields explicitly, zero out everything else")
Link: https://lore.kernel.org/lkml/20190731054627.5627-2-jhubbard@nvidia.com/
---
I tested stable 4.14.145, 4.19.74, and 5.2.16 successfully under the same
circumstances. Only 4.4 and 4.9 are affected by this dropped line.
arch/x86/include/asm/bootparam_utils.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/include/asm/bootparam_utils.h b/arch/x86/include/asm/bootparam_utils.h
index 0232b5a..588d8fb 100644
--- a/arch/x86/include/asm/bootparam_utils.h
+++ b/arch/x86/include/asm/bootparam_utils.h
@@ -71,6 +71,7 @@ static void sanitize_boot_params(struct boot_params *boot_params)
BOOT_PARAM_PRESERVE(edd_mbr_sig_buf_entries),
BOOT_PARAM_PRESERVE(edd_mbr_sig_buffer),
BOOT_PARAM_PRESERVE(hdr),
+ BOOT_PARAM_PRESERVE(e820_map),
BOOT_PARAM_PRESERVE(eddbuf),
};
--
2.7.4
This is the start of the stable review cycle for the 4.4.194 release.
There are 56 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 21 Sep 2019 09:44:25 PM UTC.
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.194-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.194-rc1
Vineet Gupta <Vineet.Gupta1(a)synopsys.com>
ARC: export "abort" for modules
Sean Young <sean(a)mess.org>
media: technisat-usb2: break out of loop at end of buffer
Jann Horn <jannh(a)google.com>
floppy: fix usercopy direction
Hillf Danton <hdanton(a)sina.com>
keys: Fix missing null pointer check in request_key_auth_describe()
Wenwen Wang <wenwen(a)cs.uga.edu>
dmaengine: ti: omap-dma: Add cleanup in omap_dma_probe()
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
net: seeq: Fix the function used to release some memory in an error handling path
Naoya Horiguchi <n-horiguchi(a)ah.jp.nec.com>
tools/power turbostat: fix buffer overrun
Takashi Iwai <tiwai(a)suse.de>
sky2: Disable MSI on yet another ASUS boards (P6Xxxx)
Dan Carpenter <dan.carpenter(a)oracle.com>
cifs: Use kzfree() to zero out the password
Ronnie Sahlberg <lsahlber(a)redhat.com>
cifs: set domainName when a domain-key is used in multiuser
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv2: Fix write regression
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv2: Fix eof handling
Thomas Jarosch <thomas.jarosch(a)intra2net.com>
netfilter: nf_conntrack_ftp: Fix debug output
Thomas Gleixner <tglx(a)linutronix.de>
x86/apic: Fix arch_dynirq_lower_bound() bug for DT enabled machines
Prashant Malani <pmalani(a)chromium.org>
r8152: Set memory to all 0xFFs on failed reg reads
Doug Berger <opendmb(a)gmail.com>
ARM: 8874/1: mm: only adjust sections of valid mm structures
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
Kconfig: Fix the reference to the IDT77105 Phy driver in the description of ATM_NICSTAR_USE_IDT77105
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFS: Fix initialisation of I/O result struct in nfs_pgio_rpcsetup
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv4: Fix return values for nfs4_file_open()
Ilya Leoshkevich <iii(a)linux.ibm.com>
s390/bpf: use 32-bit index for tail calls
Tony Lindgren <tony(a)atomide.com>
ARM: OMAP2+: Fix omap4 errata warning on other SoCs
Ilya Leoshkevich <iii(a)linux.ibm.com>
s390/bpf: fix lcgr instruction encoding
Wen Huang <huangwenabc(a)gmail.com>
mwifiex: Fix three heap overflow at parsing element in cfg80211_ap_settings
Razvan Stefanescu <razvan.stefanescu(a)microchip.com>
tty/serial: atmel: reschedule TX after RX was started
Chunyan Zhang <chunyan.zhang(a)unisoc.com>
serial: sprd: correct the wrong sequence of arguments
Matt Delco <delco(a)chromium.org>
KVM: coalesced_mmio: add bounds checking
Dongli Zhang <dongli.zhang(a)oracle.com>
xen-netfront: do not assume sk_buff_head list is empty in error handling
Corey Minyard <cminyard(a)mvista.com>
x86/boot: Add missing bootparam that breaks boot on some platforms
Sean Young <sean(a)mess.org>
media: tm6000: double free if usb disconnect while streaming
Alan Stern <stern(a)rowland.harvard.edu>
USB: usbcore: Fix slab-out-of-bounds bug during device reset
Alexey Brodkin <Alexey.Brodkin(a)synopsys.com>
ARC: configs: Remove CONFIG_INITRAMFS_SOURCE from defconfigs
Paul Burton <paul.burton(a)mips.com>
MIPS: netlogic: xlr: Remove erroneous check in nlm_fmn_send()
Linus Torvalds <torvalds(a)linux-foundation.org>
x86/build: Add -Wnoaddress-of-packed-member to REALMODE_CFLAGS, to silence GCC9 build warning
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - check data blocksize in ablkcipher.
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - check AES key size
Muchun Song <smuchun(a)gmail.com>
driver core: Fix use-after-free and double free on glue directory
Douglas Anderson <dianders(a)chromium.org>
clk: rockchip: Don't yell about bad mmc phases when getting
Paul Burton <paul.burton(a)mips.com>
MIPS: VDSO: Use same -m%-float cflag as the kernel proper
Paul Burton <paul.burton(a)mips.com>
MIPS: VDSO: Prevent use of smp_processor_id()
Paolo Bonzini <pbonzini(a)redhat.com>
KVM: nVMX: handle page fault in vmread
Fuqian Huang <huangfq.daxian(a)gmail.com>
KVM: x86: work around leak of uninitialized stack contents
Thomas Huth <thuth(a)redhat.com>
KVM: s390: Do not leak kernel stack data in the KVM_S390_INTERRUPT ioctl
Yunfeng Ye <yeyunfeng(a)huawei.com>
genirq: Prevent NULL pointer dereference in resend_irqs()
Filipe Manana <fdmanana(a)suse.com>
Btrfs: fix assertion failure during fsync and use of stale transaction
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Revert "MIPS: SiByte: Enable swiotlb for SWARM, LittleSur and BigSur"
Yang Yingliang <yangyingliang(a)huawei.com>
tun: fix use-after-free when register netdev failed
Xin Long <lucien.xin(a)gmail.com>
tipc: add NULL pointer check before calling kfree_rcu
Neal Cardwell <ncardwell(a)google.com>
tcp: fix tcp_ecn_withdraw_cwr() to clear TCP_ECN_QUEUE_CWR
Xin Long <lucien.xin(a)gmail.com>
sctp: use transport pf_retrans in sctp_do_8_2_transport_strike
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
sctp: Fix the link time qualifier of 'sctp_ctrlsock_exit()'
Cong Wang <xiyou.wangcong(a)gmail.com>
sch_hhf: ensure quantum and hhf_non_hh_weight are non-zero
Subash Abhinov Kasiviswanathan <subashab(a)codeaurora.org>
net: Fix null de-reference of device refcount
Eric Biggers <ebiggers(a)google.com>
isdn/capi: check message length in capi_write()
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
ipv6: Fix the link time qualifier of 'ping_v6_proc_exit_net()'
Bjørn Mork <bjorn(a)mork.no>
cdc_ether: fix rndis support for Mediatek based smartphones
Nicolas Dichtel <nicolas.dichtel(a)6wind.com>
bridge/mdb: remove wrong use of NLM_F_MULTI
-------------
Diffstat:
Makefile | 4 +--
arch/arc/configs/axs101_defconfig | 1 -
arch/arc/configs/axs103_defconfig | 1 -
arch/arc/configs/axs103_smp_defconfig | 1 -
arch/arc/configs/nsim_700_defconfig | 1 -
arch/arc/configs/nsim_hs_defconfig | 1 -
arch/arc/configs/nsim_hs_smp_defconfig | 1 -
arch/arc/configs/nsimosci_defconfig | 1 -
arch/arc/configs/nsimosci_hs_defconfig | 1 -
arch/arc/configs/nsimosci_hs_smp_defconfig | 1 -
arch/arc/kernel/traps.c | 1 +
arch/arm/mach-omap2/omap4-common.c | 3 ++
arch/arm/mm/init.c | 3 +-
arch/mips/Kconfig | 3 --
arch/mips/include/asm/netlogic/xlr/fmn.h | 2 --
arch/mips/include/asm/smp.h | 12 ++++++-
arch/mips/sibyte/common/Makefile | 1 -
arch/mips/sibyte/common/dma.c | 14 --------
arch/mips/vdso/Makefile | 4 ++-
arch/s390/kvm/interrupt.c | 10 ++++++
arch/s390/kvm/kvm-s390.c | 2 +-
arch/s390/net/bpf_jit_comp.c | 12 ++++---
arch/x86/Makefile | 1 +
arch/x86/include/asm/bootparam_utils.h | 1 +
arch/x86/kernel/apic/io_apic.c | 8 ++++-
arch/x86/kvm/vmx.c | 7 ++--
arch/x86/kvm/x86.c | 7 ++++
drivers/atm/Kconfig | 2 +-
drivers/base/core.c | 53 +++++++++++++++++++++++++++++-
drivers/block/floppy.c | 4 +--
drivers/clk/rockchip/clk-mmc-phase.c | 4 +--
drivers/crypto/talitos.c | 29 ++++++++++++++++
drivers/dma/omap-dma.c | 4 ++-
drivers/isdn/capi/capi.c | 10 +++++-
drivers/media/usb/dvb-usb/technisat-usb2.c | 21 ++++++------
drivers/media/usb/tm6000/tm6000-dvb.c | 3 ++
drivers/net/ethernet/marvell/sky2.c | 7 ++++
drivers/net/ethernet/seeq/sgiseeq.c | 7 ++--
drivers/net/tun.c | 16 ++++++---
drivers/net/usb/cdc_ether.c | 13 ++++++--
drivers/net/usb/r8152.c | 5 ++-
drivers/net/wireless/mwifiex/ie.c | 3 ++
drivers/net/wireless/mwifiex/uap_cmd.c | 9 ++++-
drivers/net/xen-netfront.c | 2 +-
drivers/tty/serial/atmel_serial.c | 1 -
drivers/tty/serial/sprd_serial.c | 2 +-
drivers/usb/core/config.c | 12 ++++---
fs/btrfs/tree-log.c | 6 ++--
fs/cifs/connect.c | 22 +++++++++++++
fs/nfs/nfs4file.c | 12 +++----
fs/nfs/pagelist.c | 2 +-
fs/nfs/proc.c | 7 ++--
include/uapi/linux/isdn/capicmd.h | 1 +
kernel/irq/resend.c | 2 ++
net/bridge/br_mdb.c | 2 +-
net/core/dev.c | 2 ++
net/ipv4/tcp_input.c | 2 +-
net/ipv6/ping.c | 2 +-
net/netfilter/nf_conntrack_ftp.c | 2 +-
net/sched/sch_hhf.c | 2 +-
net/sctp/protocol.c | 2 +-
net/sctp/sm_sideeffect.c | 2 +-
net/tipc/name_distr.c | 3 +-
security/keys/request_key_auth.c | 6 ++++
tools/power/x86/turbostat/turbostat.c | 2 +-
virt/kvm/coalesced_mmio.c | 17 ++++++----
66 files changed, 296 insertions(+), 111 deletions(-)
This is the start of the stable review cycle for the 4.9.194 release.
There are 74 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 21 Sep 2019 09:44:25 PM UTC.
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.194-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.194-rc1
Vineet Gupta <Vineet.Gupta1(a)synopsys.com>
ARC: export "abort" for modules
Sean Young <sean(a)mess.org>
media: technisat-usb2: break out of loop at end of buffer
Jann Horn <jannh(a)google.com>
floppy: fix usercopy direction
Joerg Roedel <jroedel(a)suse.de>
iommu/amd: Fix race in increase_address_space()
Hillf Danton <hdanton(a)sina.com>
keys: Fix missing null pointer check in request_key_auth_describe()
Peter Zijlstra <peterz(a)infradead.org>
x86/uaccess: Don't leak the AC flags into __get_user() argument evaluation
Wenwen Wang <wenwen(a)cs.uga.edu>
dmaengine: ti: omap-dma: Add cleanup in omap_dma_probe()
Wenwen Wang <wenwen(a)cs.uga.edu>
dmaengine: ti: dma-crossbar: Fix a memory leak bug
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
net: seeq: Fix the function used to release some memory in an error handling path
Naoya Horiguchi <n-horiguchi(a)ah.jp.nec.com>
tools/power turbostat: fix buffer overrun
Kim Phillips <kim.phillips(a)amd.com>
perf/x86/amd/ibs: Fix sample bias for dispatched micro-ops
Josh Hunt <johunt(a)akamai.com>
perf/x86/intel: Restrict period on Nehalem
Takashi Iwai <tiwai(a)suse.de>
sky2: Disable MSI on yet another ASUS boards (P6Xxxx)
zhaoyang <huangzhaoyang(a)gmail.com>
ARM: 8901/1: add a criteria for pfn_valid of arm
Dan Carpenter <dan.carpenter(a)oracle.com>
cifs: Use kzfree() to zero out the password
Ronnie Sahlberg <lsahlber(a)redhat.com>
cifs: set domainName when a domain-key is used in multiuser
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv2: Fix write regression
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv2: Fix eof handling
Thomas Jarosch <thomas.jarosch(a)intra2net.com>
netfilter: nf_conntrack_ftp: Fix debug output
Thomas Gleixner <tglx(a)linutronix.de>
x86/apic: Fix arch_dynirq_lower_bound() bug for DT enabled machines
Prashant Malani <pmalani(a)chromium.org>
r8152: Set memory to all 0xFFs on failed reg reads
Sven Eckelmann <sven(a)narfation.org>
batman-adv: Only read OGM2 tvlv_len after buffer len check
Doug Berger <opendmb(a)gmail.com>
ARM: 8874/1: mm: only adjust sections of valid mm structures
Wenwen Wang <wenwen(a)cs.uga.edu>
qed: Add cleanup in qed_slowpath_start()
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
Kconfig: Fix the reference to the IDT77105 Phy driver in the description of ATM_NICSTAR_USE_IDT77105
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFS: Fix initialisation of I/O result struct in nfs_pgio_rpcsetup
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv4: Fix return values for nfs4_file_open()
Ilya Leoshkevich <iii(a)linux.ibm.com>
s390/bpf: use 32-bit index for tail calls
Tony Lindgren <tony(a)atomide.com>
ARM: OMAP2+: Fix omap4 errata warning on other SoCs
Ilya Leoshkevich <iii(a)linux.ibm.com>
s390/bpf: fix lcgr instruction encoding
Tony Lindgren <tony(a)atomide.com>
ARM: OMAP2+: Fix missing SYSC_HAS_RESET_STATUS for dra7 epwmss
Wen Huang <huangwenabc(a)gmail.com>
mwifiex: Fix three heap overflow at parsing element in cfg80211_ap_settings
Razvan Stefanescu <razvan.stefanescu(a)microchip.com>
tty/serial: atmel: reschedule TX after RX was started
Chunyan Zhang <chunyan.zhang(a)unisoc.com>
serial: sprd: correct the wrong sequence of arguments
Matt Delco <delco(a)chromium.org>
KVM: coalesced_mmio: add bounds checking
Dongli Zhang <dongli.zhang(a)oracle.com>
xen-netfront: do not assume sk_buff_head list is empty in error handling
Corey Minyard <cminyard(a)mvista.com>
x86/boot: Add missing bootparam that breaks boot on some platforms
Aneesh Kumar K.V <aneesh.kumar(a)linux.ibm.com>
powerpc/mm/radix: Use the right page size for vmemmap mapping
Sean Young <sean(a)mess.org>
media: tm6000: double free if usb disconnect while streaming
Alan Stern <stern(a)rowland.harvard.edu>
USB: usbcore: Fix slab-out-of-bounds bug during device reset
Linus Torvalds <torvalds(a)linux-foundation.org>
x86/build: Add -Wnoaddress-of-packed-member to REALMODE_CFLAGS, to silence GCC9 build warning
Jean Delvare <jdelvare(a)suse.de>
nvmem: Use the same permissions for eeprom as for nvmem
Nishka Dasgupta <nishkadg.linux(a)gmail.com>
drm/mediatek: mtk_drm_drv.c: Add of_node_put() before goto
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - HMAC SNOOP NO AFEU mode requires SW icv checking.
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - Do not modify req->cryptlen on decryption.
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - fix ECB algs ivsize
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - check data blocksize in ablkcipher.
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - fix CTR alg blocksize
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - check AES key size
Muchun Song <smuchun(a)gmail.com>
driver core: Fix use-after-free and double free on glue directory
Xiaolei Li <xiaolei.li(a)mediatek.com>
mtd: rawnand: mtk: Fix wrongly assigned OOB buffer pointer issue
Douglas Anderson <dianders(a)chromium.org>
clk: rockchip: Don't yell about bad mmc phases when getting
Paul Burton <paul.burton(a)mips.com>
MIPS: VDSO: Use same -m%-float cflag as the kernel proper
Paul Burton <paul.burton(a)mips.com>
MIPS: VDSO: Prevent use of smp_processor_id()
Paolo Bonzini <pbonzini(a)redhat.com>
KVM: nVMX: handle page fault in vmread
Fuqian Huang <huangfq.daxian(a)gmail.com>
KVM: x86: work around leak of uninitialized stack contents
Thomas Huth <thuth(a)redhat.com>
KVM: s390: Do not leak kernel stack data in the KVM_S390_INTERRUPT ioctl
Yunfeng Ye <yeyunfeng(a)huawei.com>
genirq: Prevent NULL pointer dereference in resend_irqs()
Filipe Manana <fdmanana(a)suse.com>
Btrfs: fix assertion failure during fsync and use of stale transaction
Kent Gibson <warthog618(a)gmail.com>
gpio: fix line flag validation in lineevent_create
Kent Gibson <warthog618(a)gmail.com>
gpio: fix line flag validation in linehandle_create
Greg Kroah-Hartman <gregkh(a)linuxfoundation.org>
Revert "MIPS: SiByte: Enable swiotlb for SWARM, LittleSur and BigSur"
Yang Yingliang <yangyingliang(a)huawei.com>
tun: fix use-after-free when register netdev failed
Xin Long <lucien.xin(a)gmail.com>
tipc: add NULL pointer check before calling kfree_rcu
Neal Cardwell <ncardwell(a)google.com>
tcp: fix tcp_ecn_withdraw_cwr() to clear TCP_ECN_QUEUE_CWR
Xin Long <lucien.xin(a)gmail.com>
sctp: use transport pf_retrans in sctp_do_8_2_transport_strike
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
sctp: Fix the link time qualifier of 'sctp_ctrlsock_exit()'
Cong Wang <xiyou.wangcong(a)gmail.com>
sch_hhf: ensure quantum and hhf_non_hh_weight are non-zero
Shmulik Ladkani <shmulik(a)metanetworks.com>
net: gso: Fix skb_segment splat when splitting gso_size mangled skb having linear-headed frag_list
Subash Abhinov Kasiviswanathan <subashab(a)codeaurora.org>
net: Fix null de-reference of device refcount
Eric Biggers <ebiggers(a)google.com>
isdn/capi: check message length in capi_write()
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
ipv6: Fix the link time qualifier of 'ping_v6_proc_exit_net()'
Bjørn Mork <bjorn(a)mork.no>
cdc_ether: fix rndis support for Mediatek based smartphones
Nicolas Dichtel <nicolas.dichtel(a)6wind.com>
bridge/mdb: remove wrong use of NLM_F_MULTI
-------------
Diffstat:
Makefile | 4 +-
arch/arc/kernel/traps.c | 1 +
arch/arm/mach-omap2/omap4-common.c | 3 ++
arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 3 +-
arch/arm/mm/init.c | 8 ++-
arch/mips/Kconfig | 3 --
arch/mips/include/asm/smp.h | 12 ++++-
arch/mips/sibyte/common/Makefile | 1 -
arch/mips/sibyte/common/dma.c | 14 ------
arch/mips/vdso/Makefile | 4 +-
arch/powerpc/mm/pgtable-radix.c | 16 +++---
arch/s390/kvm/interrupt.c | 10 ++++
arch/s390/kvm/kvm-s390.c | 2 +-
arch/s390/net/bpf_jit_comp.c | 12 +++--
arch/x86/Makefile | 1 +
arch/x86/events/amd/ibs.c | 13 +++--
arch/x86/events/intel/core.c | 6 +++
arch/x86/include/asm/bootparam_utils.h | 1 +
arch/x86/include/asm/perf_event.h | 12 +++--
arch/x86/include/asm/uaccess.h | 4 +-
arch/x86/kernel/apic/io_apic.c | 8 ++-
arch/x86/kvm/vmx.c | 7 ++-
arch/x86/kvm/x86.c | 7 +++
drivers/atm/Kconfig | 2 +-
drivers/base/core.c | 53 +++++++++++++++++++-
drivers/block/floppy.c | 4 +-
drivers/clk/rockchip/clk-mmc-phase.c | 4 +-
drivers/crypto/talitos.c | 67 +++++++++++++++++++-------
drivers/dma/omap-dma.c | 4 +-
drivers/dma/ti-dma-crossbar.c | 4 +-
drivers/gpio/gpiolib.c | 20 +++++---
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 5 +-
drivers/iommu/amd_iommu.c | 16 ++++--
drivers/isdn/capi/capi.c | 10 +++-
drivers/media/usb/dvb-usb/technisat-usb2.c | 22 ++++-----
drivers/media/usb/tm6000/tm6000-dvb.c | 3 ++
drivers/mtd/nand/mtk_nand.c | 21 ++++----
drivers/net/ethernet/marvell/sky2.c | 7 +++
drivers/net/ethernet/qlogic/qed/qed_main.c | 4 +-
drivers/net/ethernet/seeq/sgiseeq.c | 7 +--
drivers/net/tun.c | 16 ++++--
drivers/net/usb/cdc_ether.c | 13 +++--
drivers/net/usb/r8152.c | 5 +-
drivers/net/wireless/marvell/mwifiex/ie.c | 3 ++
drivers/net/wireless/marvell/mwifiex/uap_cmd.c | 9 +++-
drivers/net/xen-netfront.c | 2 +-
drivers/nvmem/core.c | 15 ++++--
drivers/tty/serial/atmel_serial.c | 1 -
drivers/tty/serial/sprd_serial.c | 2 +-
drivers/usb/core/config.c | 12 +++--
fs/btrfs/tree-log.c | 8 +--
fs/cifs/connect.c | 22 +++++++++
fs/nfs/nfs4file.c | 12 ++---
fs/nfs/pagelist.c | 2 +-
fs/nfs/proc.c | 7 ++-
include/uapi/linux/isdn/capicmd.h | 1 +
kernel/irq/resend.c | 2 +
net/batman-adv/bat_v_ogm.c | 18 ++++---
net/bridge/br_mdb.c | 2 +-
net/core/dev.c | 2 +
net/core/skbuff.c | 19 ++++++++
net/ipv4/tcp_input.c | 2 +-
net/ipv6/ping.c | 2 +-
net/netfilter/nf_conntrack_ftp.c | 2 +-
net/sched/sch_hhf.c | 2 +-
net/sctp/protocol.c | 2 +-
net/sctp/sm_sideeffect.c | 2 +-
net/tipc/name_distr.c | 3 +-
security/keys/request_key_auth.c | 6 +++
tools/power/x86/turbostat/turbostat.c | 2 +-
virt/kvm/coalesced_mmio.c | 17 ++++---
71 files changed, 446 insertions(+), 172 deletions(-)
This is the start of the stable review cycle for the 4.14.146 release.
There are 59 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 21 Sep 2019 09:44:25 PM UTC.
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.146-r…
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.146-rc1
Sean Young <sean(a)mess.org>
media: technisat-usb2: break out of loop at end of buffer
Christoph Paasch <cpaasch(a)apple.com>
tcp: Don't dequeue SYN/FIN-segments from write-queue
Christoph Paasch <cpaasch(a)apple.com>
tcp: Reset send_head when removing skb from write-queue
Kees Cook <keescook(a)chromium.org>
binfmt_elf: move brk out of mmap when doing direct loader exec
Jann Horn <jannh(a)google.com>
floppy: fix usercopy direction
Nathan Chancellor <natechancellor(a)gmail.com>
PCI: kirin: Fix section mismatch warning
Joerg Roedel <jroedel(a)suse.de>
iommu/amd: Fix race in increase_address_space()
Stuart Hayes <stuart.w.hayes(a)gmail.com>
iommu/amd: Flush old domains in kdump kernel
Hillf Danton <hdanton(a)sina.com>
keys: Fix missing null pointer check in request_key_auth_describe()
Tianyu Lan <Tianyu.Lan(a)microsoft.com>
x86/hyper-v: Fix overflow bug in fill_gva_list()
Peter Zijlstra <peterz(a)infradead.org>
x86/uaccess: Don't leak the AC flags into __get_user() argument evaluation
Wenwen Wang <wenwen(a)cs.uga.edu>
dmaengine: ti: omap-dma: Add cleanup in omap_dma_probe()
Wenwen Wang <wenwen(a)cs.uga.edu>
dmaengine: ti: dma-crossbar: Fix a memory leak bug
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
net: seeq: Fix the function used to release some memory in an error handling path
Naoya Horiguchi <n-horiguchi(a)ah.jp.nec.com>
tools/power turbostat: fix buffer overrun
Zephaniah E. Loss-Cutler-Hull <zephaniah(a)gmail.com>
tools/power x86_energy_perf_policy: Fix argument parsing
Ben Hutchings <ben(a)decadent.org.uk>
tools/power x86_energy_perf_policy: Fix "uninitialized variable" warnings at -O2
YueHaibing <yuehaibing(a)huawei.com>
amd-xgbe: Fix error path in xgbe_mod_init()
Kim Phillips <kim.phillips(a)amd.com>
perf/x86/amd/ibs: Fix sample bias for dispatched micro-ops
Josh Hunt <johunt(a)akamai.com>
perf/x86/intel: Restrict period on Nehalem
Jarkko Nikula <jarkko.nikula(a)linux.intel.com>
i2c: designware: Synchronize IRQs when unregistering slave client
Takashi Iwai <tiwai(a)suse.de>
sky2: Disable MSI on yet another ASUS boards (P6Xxxx)
zhaoyang <huangzhaoyang(a)gmail.com>
ARM: 8901/1: add a criteria for pfn_valid of arm
Dan Carpenter <dan.carpenter(a)oracle.com>
cifs: Use kzfree() to zero out the password
Ronnie Sahlberg <lsahlber(a)redhat.com>
cifs: set domainName when a domain-key is used in multiuser
Marc Zyngier <maz(a)kernel.org>
kallsyms: Don't let kallsyms_lookup_size_offset() fail on retrieving the first symbol
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv2: Fix write regression
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv2: Fix eof handling
Thomas Jarosch <thomas.jarosch(a)intra2net.com>
netfilter: nf_conntrack_ftp: Fix debug output
Thomas Gleixner <tglx(a)linutronix.de>
x86/apic: Fix arch_dynirq_lower_bound() bug for DT enabled machines
Prashant Malani <pmalani(a)chromium.org>
r8152: Set memory to all 0xFFs on failed reg reads
Sven Eckelmann <sven(a)narfation.org>
batman-adv: Only read OGM2 tvlv_len after buffer len check
Doug Berger <opendmb(a)gmail.com>
ARM: 8874/1: mm: only adjust sections of valid mm structures
Wenwen Wang <wenwen(a)cs.uga.edu>
qed: Add cleanup in qed_slowpath_start()
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
Kconfig: Fix the reference to the IDT77105 Phy driver in the description of ATM_NICSTAR_USE_IDT77105
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFS: Fix initialisation of I/O result struct in nfs_pgio_rpcsetup
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv4: Fix return value in nfs_finish_open()
Trond Myklebust <trond.myklebust(a)hammerspace.com>
NFSv4: Fix return values for nfs4_file_open()
Juliana Rodrigueiro <juliana.rodrigueiro(a)intra2net.com>
netfilter: xt_nfacct: Fix alignment mismatch in xt_nfacct_match_info
Phil Reid <preid(a)electromag.com.au>
fpga: altera-ps-spi: Fix getting of optional confd gpio
Ilya Leoshkevich <iii(a)linux.ibm.com>
s390/bpf: use 32-bit index for tail calls
Faiz Abbas <faiz_abbas(a)ti.com>
ARM: dts: dra74x: Fix iodelay configuration for mmc3
Tony Lindgren <tony(a)atomide.com>
ARM: OMAP2+: Fix omap4 errata warning on other SoCs
Ilya Leoshkevich <iii(a)linux.ibm.com>
s390/bpf: fix lcgr instruction encoding
Tony Lindgren <tony(a)atomide.com>
ARM: OMAP2+: Fix missing SYSC_HAS_RESET_STATUS for dra7 epwmss
Masashi Honma <masashi.honma(a)gmail.com>
nl80211: Fix possible Spectre-v1 for CQM RSSI thresholds
Wen Huang <huangwenabc(a)gmail.com>
mwifiex: Fix three heap overflow at parsing element in cfg80211_ap_settings
Razvan Stefanescu <razvan.stefanescu(a)microchip.com>
tty/serial: atmel: reschedule TX after RX was started
Chunyan Zhang <chunyan.zhang(a)unisoc.com>
serial: sprd: correct the wrong sequence of arguments
Hung-Te Lin <hungte(a)chromium.org>
firmware: google: check if size is valid when decoding VPD data
Matt Delco <delco(a)chromium.org>
KVM: coalesced_mmio: add bounds checking
Cong Wang <xiyou.wangcong(a)gmail.com>
net_sched: let qdisc_put() accept NULL pointer
Dongli Zhang <dongli.zhang(a)oracle.com>
xen-netfront: do not assume sk_buff_head list is empty in error handling
Sean Young <sean(a)mess.org>
media: tm6000: double free if usb disconnect while streaming
Yoshihiro Shimoda <yoshihiro.shimoda.uh(a)renesas.com>
phy: renesas: rcar-gen3-usb2: Disable clearing VBUS in over-current
Alan Stern <stern(a)rowland.harvard.edu>
USB: usbcore: Fix slab-out-of-bounds bug during device reset
Aneesh Kumar K.V <aneesh.kumar(a)linux.ibm.com>
powerpc/mm/radix: Use the right page size for vmemmap mapping
Benjamin Tissoires <benjamin.tissoires(a)redhat.com>
Input: elan_i2c - remove Lenovo Legion Y7000 PnpID
Aaron Armstrong Skomra <skomra(a)gmail.com>
HID: wacom: generic: read HID_DG_CONTACTMAX from any feature report
-------------
Diffstat:
Makefile | 4 +-
arch/arm/boot/dts/dra74x-mmc-iodelay.dtsi | 50 ++++++++++----------
arch/arm/mach-omap2/omap4-common.c | 3 ++
arch/arm/mach-omap2/omap_hwmod_7xx_data.c | 3 +-
arch/arm/mm/init.c | 8 +++-
arch/powerpc/mm/pgtable-radix.c | 16 +++----
arch/s390/net/bpf_jit_comp.c | 12 +++--
arch/x86/events/amd/ibs.c | 13 +++--
arch/x86/events/intel/core.c | 6 +++
arch/x86/hyperv/mmu.c | 8 ++--
arch/x86/include/asm/perf_event.h | 12 +++--
arch/x86/include/asm/uaccess.h | 4 +-
arch/x86/kernel/apic/io_apic.c | 8 +++-
drivers/atm/Kconfig | 2 +-
drivers/block/floppy.c | 4 +-
drivers/dma/omap-dma.c | 4 +-
drivers/dma/ti-dma-crossbar.c | 4 +-
drivers/firmware/google/vpd.c | 4 +-
drivers/firmware/google/vpd_decode.c | 55 +++++++++++++---------
drivers/firmware/google/vpd_decode.h | 6 +--
drivers/fpga/altera-ps-spi.c | 11 +++--
drivers/hid/wacom_sys.c | 10 ++--
drivers/hid/wacom_wac.c | 4 ++
drivers/i2c/busses/i2c-designware-slave.c | 1 +
drivers/input/mouse/elan_i2c_core.c | 2 +-
drivers/iommu/amd_iommu.c | 40 ++++++++++++++--
drivers/media/usb/dvb-usb/technisat-usb2.c | 22 ++++-----
drivers/media/usb/tm6000/tm6000-dvb.c | 3 ++
drivers/net/ethernet/amd/xgbe/xgbe-main.c | 10 +++-
drivers/net/ethernet/marvell/sky2.c | 7 +++
drivers/net/ethernet/qlogic/qed/qed_main.c | 4 +-
drivers/net/ethernet/seeq/sgiseeq.c | 7 +--
drivers/net/usb/r8152.c | 5 +-
drivers/net/wireless/marvell/mwifiex/ie.c | 3 ++
drivers/net/wireless/marvell/mwifiex/uap_cmd.c | 9 +++-
drivers/net/xen-netfront.c | 2 +-
drivers/pci/dwc/pcie-kirin.c | 4 +-
drivers/phy/renesas/phy-rcar-gen3-usb2.c | 2 +
drivers/tty/serial/atmel_serial.c | 1 -
drivers/tty/serial/sprd_serial.c | 2 +-
drivers/usb/core/config.c | 12 +++--
fs/binfmt_elf.c | 11 +++++
fs/cifs/connect.c | 22 +++++++++
fs/nfs/dir.c | 2 +-
fs/nfs/nfs4file.c | 12 ++---
fs/nfs/pagelist.c | 2 +-
fs/nfs/proc.c | 7 ++-
include/uapi/linux/netfilter/xt_nfacct.h | 5 ++
kernel/kallsyms.c | 6 ++-
net/batman-adv/bat_v_ogm.c | 18 ++++---
net/ipv4/tcp.c | 6 +--
net/netfilter/nf_conntrack_ftp.c | 2 +-
net/netfilter/xt_nfacct.c | 36 +++++++++-----
net/sched/sch_generic.c | 3 ++
net/wireless/nl80211.c | 4 +-
security/keys/request_key_auth.c | 6 +++
tools/power/x86/turbostat/turbostat.c | 2 +-
.../x86_energy_perf_policy.c | 28 ++++++-----
virt/kvm/coalesced_mmio.c | 17 ++++---
59 files changed, 391 insertions(+), 185 deletions(-)
The following commit has been merged into the perf/urgent branch of tip:
Commit-ID: b63fd11cced17fcb8e133def29001b0f6aaa5e06
Gitweb: https://git.kernel.org/tip/b63fd11cced17fcb8e133def29001b0f6aaa5e06
Author: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
AuthorDate: Wed, 04 Sep 2019 15:17:37 +05:30
Committer: Arnaldo Carvalho de Melo <acme(a)redhat.com>
CommitterDate: Fri, 20 Sep 2019 10:28:26 -03:00
perf stat: Reset previous counts on repeat with interval
When using 'perf stat' with repeat and interval option, it shows wrong
values for events.
The wrong values will be shown for the first interval on the second and
subsequent repetitions.
Without the fix:
# perf stat -r 3 -I 2000 -e faults -e sched:sched_switch -a sleep 5
2.000282489 53 faults
2.000282489 513 sched:sched_switch
4.005478208 3,721 faults
4.005478208 2,666 sched:sched_switch
5.025470933 395 faults
5.025470933 1,307 sched:sched_switch
2.009602825 1,84,46,74,40,73,70,95,47,520 faults <------
2.009602825 1,84,46,74,40,73,70,95,49,568 sched:sched_switch <------
4.019612206 4,730 faults
4.019612206 2,746 sched:sched_switch
5.039615484 3,953 faults
5.039615484 1,496 sched:sched_switch
2.000274620 1,84,46,74,40,73,70,95,47,520 faults <------
2.000274620 1,84,46,74,40,73,70,95,47,520 sched:sched_switch <------
4.000480342 4,282 faults
4.000480342 2,303 sched:sched_switch
5.000916811 1,322 faults
5.000916811 1,064 sched:sched_switch
#
prev_raw_counts is allocated when using intervals. This is used when
calculating the difference in the counts of events when using interval.
The current counts are stored in prev_raw_counts to calculate the
differences in the next iteration.
On the first interval of the second and subsequent repetitions,
prev_raw_counts would be the values stored in the last interval of the
previous repetitions, while the current counts will only be for the
first interval of the current repetition.
Hence there is a possibility of events showing up as big number.
Fix this by resetting prev_raw_counts whenever perf stat repeats the
command.
With the fix:
# perf stat -r 3 -I 2000 -e faults -e sched:sched_switch -a sleep 5
2.019349347 2,597 faults
2.019349347 2,753 sched:sched_switch
4.019577372 3,098 faults
4.019577372 2,532 sched:sched_switch
5.019415481 1,879 faults
5.019415481 1,356 sched:sched_switch
2.000178813 8,468 faults
2.000178813 2,254 sched:sched_switch
4.000404621 7,440 faults
4.000404621 1,266 sched:sched_switch
5.040196079 2,458 faults
5.040196079 556 sched:sched_switch
2.000191939 6,870 faults
2.000191939 1,170 sched:sched_switch
4.000414103 541 faults
4.000414103 902 sched:sched_switch
5.000809863 450 faults
5.000809863 364 sched:sched_switch
#
Committer notes:
This was broken since the cset introducing the --interval feature, i.e.
--repeat + --interval wasn't tested at that point, add the Fixes tag so
that automatic scripts can pick this up.
Fixes: 13370a9b5bb8 ("perf stat: Add interval printing")
Signed-off-by: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
Acked-by: Jiri Olsa <jolsa(a)kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
Tested-by: Ravi Bangoria <ravi.bangoria(a)linux.ibm.com>
Cc: Namhyung Kim <namhyung(a)kernel.org>
Cc: Naveen N. Rao <naveen.n.rao(a)linux.vnet.ibm.com>
Cc: Stephane Eranian <eranian(a)google.com>
Cc: stable(a)vger.kernel.org # v3.9+
Link: http://lore.kernel.org/lkml/20190904094738.9558-2-srikar@linux.vnet.ibm.com
[ Fixed up conflicts with libperf, i.e. some perf_{evsel,evlist} lost the 'perf' prefix ]
Signed-off-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
---
tools/perf/builtin-stat.c | 3 +++
tools/perf/util/stat.c | 17 +++++++++++++++++
tools/perf/util/stat.h | 1 +
3 files changed, 21 insertions(+)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index eece3d1..fa4b148 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1952,6 +1952,9 @@ int cmd_stat(int argc, const char **argv)
fprintf(output, "[ perf stat: executing run #%d ... ]\n",
run_idx + 1);
+ if (run_idx != 0)
+ perf_evlist__reset_prev_raw_counts(evsel_list);
+
status = run_perf_stat(argc, argv, run_idx);
if (forever && status != -1) {
print_counters(NULL, argc, argv);
diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c
index 0657120..fcd5434 100644
--- a/tools/perf/util/stat.c
+++ b/tools/perf/util/stat.c
@@ -162,6 +162,15 @@ static void perf_evsel__free_prev_raw_counts(struct evsel *evsel)
evsel->prev_raw_counts = NULL;
}
+static void perf_evsel__reset_prev_raw_counts(struct evsel *evsel)
+{
+ if (evsel->prev_raw_counts) {
+ evsel->prev_raw_counts->aggr.val = 0;
+ evsel->prev_raw_counts->aggr.ena = 0;
+ evsel->prev_raw_counts->aggr.run = 0;
+ }
+}
+
static int perf_evsel__alloc_stats(struct evsel *evsel, bool alloc_raw)
{
int ncpus = perf_evsel__nr_cpus(evsel);
@@ -212,6 +221,14 @@ void perf_evlist__reset_stats(struct evlist *evlist)
}
}
+void perf_evlist__reset_prev_raw_counts(struct evlist *evlist)
+{
+ struct evsel *evsel;
+
+ evlist__for_each_entry(evlist, evsel)
+ perf_evsel__reset_prev_raw_counts(evsel);
+}
+
static void zero_per_pkg(struct evsel *counter)
{
if (counter->per_pkg_mask)
diff --git a/tools/perf/util/stat.h b/tools/perf/util/stat.h
index 0f9c9f6..edbeb2f 100644
--- a/tools/perf/util/stat.h
+++ b/tools/perf/util/stat.h
@@ -193,6 +193,7 @@ void perf_stat__collect_metric_expr(struct evlist *);
int perf_evlist__alloc_stats(struct evlist *evlist, bool alloc_raw);
void perf_evlist__free_stats(struct evlist *evlist);
void perf_evlist__reset_stats(struct evlist *evlist);
+void perf_evlist__reset_prev_raw_counts(struct evlist *evlist);
int perf_stat_process_counter(struct perf_stat_config *config,
struct evsel *counter);
The following commit has been merged into the perf/urgent branch of tip:
Commit-ID: 443f2d5ba13d65ccfd879460f77941875159d154
Gitweb: https://git.kernel.org/tip/443f2d5ba13d65ccfd879460f77941875159d154
Author: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
AuthorDate: Wed, 04 Sep 2019 15:17:38 +05:30
Committer: Arnaldo Carvalho de Melo <acme(a)redhat.com>
CommitterDate: Fri, 20 Sep 2019 10:28:26 -03:00
perf stat: Fix a segmentation fault when using repeat forever
Observe a segmentation fault when 'perf stat' is asked to repeat forever
with the interval option.
Without fix:
# perf stat -r 0 -I 5000 -e cycles -a sleep 10
# time counts unit events
5.000211692 3,13,89,82,34,157 cycles
10.000380119 1,53,98,52,22,294 cycles
10.040467280 17,16,79,265 cycles
Segmentation fault
This problem was only observed when we use forever option aka -r 0 and
works with limited repeats. Calling print_counter with ts being set to
NULL, is not a correct option when interval is set. Hence avoid
print_counter(NULL,..) if interval is set.
With fix:
# perf stat -r 0 -I 5000 -e cycles -a sleep 10
# time counts unit events
5.019866622 3,15,14,43,08,697 cycles
10.039865756 3,15,16,31,95,261 cycles
10.059950628 1,26,05,47,158 cycles
5.009902655 3,14,52,62,33,932 cycles
10.019880228 3,14,52,22,89,154 cycles
10.030543876 66,90,18,333 cycles
5.009848281 3,14,51,98,25,437 cycles
10.029854402 3,15,14,93,04,918 cycles
5.009834177 3,14,51,95,92,316 cycles
Committer notes:
Did the 'git bisect' to find the cset introducing the problem to add the
Fixes tag below, and at that time the problem reproduced as:
(gdb) run stat -r0 -I500 sleep 1
<SNIP>
Program received signal SIGSEGV, Segmentation fault.
print_interval (prefix=prefix@entry=0x7fffffffc8d0 "", ts=ts@entry=0x0) at builtin-stat.c:866
866 sprintf(prefix, "%6lu.%09lu%s", ts->tv_sec, ts->tv_nsec, csv_sep);
(gdb) bt
#0 print_interval (prefix=prefix@entry=0x7fffffffc8d0 "", ts=ts@entry=0x0) at builtin-stat.c:866
#1 0x000000000041860a in print_counters (ts=ts@entry=0x0, argc=argc@entry=2, argv=argv@entry=0x7fffffffd640) at builtin-stat.c:938
#2 0x0000000000419a7f in cmd_stat (argc=2, argv=0x7fffffffd640, prefix=<optimized out>) at builtin-stat.c:1411
#3 0x000000000045c65a in run_builtin (p=p@entry=0x6291b8 <commands+216>, argc=argc@entry=5, argv=argv@entry=0x7fffffffd640) at perf.c:370
#4 0x000000000045c893 in handle_internal_command (argc=5, argv=0x7fffffffd640) at perf.c:429
#5 0x000000000045c8f1 in run_argv (argcp=argcp@entry=0x7fffffffd4ac, argv=argv@entry=0x7fffffffd4a0) at perf.c:473
#6 0x000000000045cac9 in main (argc=<optimized out>, argv=<optimized out>) at perf.c:588
(gdb)
Mostly the same as just before this patch:
Program received signal SIGSEGV, Segmentation fault.
0x00000000005874a7 in print_interval (config=0xa1f2a0 <stat_config>, evlist=0xbc9b90, prefix=0x7fffffffd1c0 "`", ts=0x0) at util/stat-display.c:964
964 sprintf(prefix, "%6lu.%09lu%s", ts->tv_sec, ts->tv_nsec, config->csv_sep);
(gdb) bt
#0 0x00000000005874a7 in print_interval (config=0xa1f2a0 <stat_config>, evlist=0xbc9b90, prefix=0x7fffffffd1c0 "`", ts=0x0) at util/stat-display.c:964
#1 0x0000000000588047 in perf_evlist__print_counters (evlist=0xbc9b90, config=0xa1f2a0 <stat_config>, _target=0xa1f0c0 <target>, ts=0x0, argc=2, argv=0x7fffffffd670)
at util/stat-display.c:1172
#2 0x000000000045390f in print_counters (ts=0x0, argc=2, argv=0x7fffffffd670) at builtin-stat.c:656
#3 0x0000000000456bb5 in cmd_stat (argc=2, argv=0x7fffffffd670) at builtin-stat.c:1960
#4 0x00000000004dd2e0 in run_builtin (p=0xa30e00 <commands+288>, argc=5, argv=0x7fffffffd670) at perf.c:310
#5 0x00000000004dd54d in handle_internal_command (argc=5, argv=0x7fffffffd670) at perf.c:362
#6 0x00000000004dd694 in run_argv (argcp=0x7fffffffd4cc, argv=0x7fffffffd4c0) at perf.c:406
#7 0x00000000004dda11 in main (argc=5, argv=0x7fffffffd670) at perf.c:531
(gdb)
Fixes: d4f63a4741a8 ("perf stat: Introduce print_counters function")
Signed-off-by: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
Acked-by: Jiri Olsa <jolsa(a)kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
Tested-by: Ravi Bangoria <ravi.bangoria(a)linux.ibm.com>
Cc: Namhyung Kim <namhyung(a)kernel.org>
Cc: Naveen N. Rao <naveen.n.rao(a)linux.vnet.ibm.com>
Cc: stable(a)vger.kernel.org # v4.2+
Link: http://lore.kernel.org/lkml/20190904094738.9558-3-srikar@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
---
tools/perf/builtin-stat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index fa4b148..60cdd38 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1956,7 +1956,7 @@ int cmd_stat(int argc, const char **argv)
perf_evlist__reset_prev_raw_counts(evsel_list);
status = run_perf_stat(argc, argv, run_idx);
- if (forever && status != -1) {
+ if (forever && status != -1 && !interval) {
print_counters(NULL, argc, argv);
perf_stat__reset_stats();
}
From: Alexander Sverdlin <alexander.sverdlin(a)nokia.com>
irq_create_fwspec_mapping() can race with itself during IRQ trigger type
configuration. Possible scenarios include:
- Mapping exists, two irq_create_fwspec_mapping() running in parallel do
not detect type mismatch, IRQ remains configured with one of the
different trigger types randomly
- Second call to irq_create_fwspec_mapping() sees existing mapping just
created by first call, but earlier irqd_set_trigger_type() call races
with later irqd_set_trigger_type() => totally undetected, IRQ type
is being set randomly to either one or another type
Introduce helper function to detect parallel changes to IRQ type.
Cc: stable(a)vger.kernel.org
Signed-off-by: Alexander Sverdlin <alexander.sverdlin(a)nokia.com>
---
kernel/irq/irqdomain.c | 66 +++++++++++++++++++++++++++++---------------------
1 file changed, 38 insertions(+), 28 deletions(-)
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 176f2cc..af4d30c 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -764,10 +764,45 @@ static void of_phandle_args_to_fwspec(struct device_node *np, const u32 *args,
fwspec->param[i] = args[i];
}
+/* Detect races during IRQ type setting */
+static int irq_set_trigger_type_locked(unsigned int virq, unsigned int type,
+ irq_hw_number_t hwirq,
+ const struct irq_fwspec *fwspec)
+{
+ struct irq_data *irq_data;
+ int ret = 0;
+
+ mutex_lock(&irq_domain_mutex);
+ /*
+ * If the trigger type is not specified or matches the current trigger
+ * type then we are done.
+ */
+ if (type == IRQ_TYPE_NONE || type == irq_get_trigger_type(virq))
+ goto unlock;
+
+ /* If the trigger type has not been set yet, then set it now */
+ if (irq_get_trigger_type(virq) != IRQ_TYPE_NONE) {
+ pr_warn("type mismatch, failed to map hwirq-%lu for %s!\n",
+ hwirq, of_node_full_name(to_of_node(fwspec->fwnode)));
+ ret = -EINVAL;
+ goto unlock;
+ }
+
+ irq_data = irq_get_irq_data(virq);
+ if (!irq_data) {
+ ret = -ENOENT;
+ goto unlock;
+ }
+ irqd_set_trigger_type(irq_data, type);
+
+unlock:
+ mutex_unlock(&irq_domain_mutex);
+ return ret;
+}
+
unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec)
{
struct irq_domain *domain;
- struct irq_data *irq_data;
irq_hw_number_t hwirq;
unsigned int type = IRQ_TYPE_NONE;
int virq;
@@ -802,29 +837,8 @@ unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec)
*/
virq = irq_find_mapping(domain, hwirq);
if (virq) {
- /*
- * If the trigger type is not specified or matches the
- * current trigger type then we are done so return the
- * interrupt number.
- */
- if (type == IRQ_TYPE_NONE || type == irq_get_trigger_type(virq))
- return virq;
-
- /*
- * If the trigger type has not been set yet, then set
- * it now and return the interrupt number.
- */
- if (irq_get_trigger_type(virq) == IRQ_TYPE_NONE) {
- irq_data = irq_get_irq_data(virq);
- if (!irq_data)
- return 0;
-
- irqd_set_trigger_type(irq_data, type);
+ if (!irq_set_trigger_type_locked(virq, type, hwirq, fwspec))
return virq;
- }
-
- pr_warn("type mismatch, failed to map hwirq-%lu for %s!\n",
- hwirq, of_node_full_name(to_of_node(fwspec->fwnode)));
return 0;
}
@@ -839,8 +853,7 @@ unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec)
return virq;
}
- irq_data = irq_get_irq_data(virq);
- if (!irq_data) {
+ if (irq_set_trigger_type_locked(virq, type, hwirq, fwspec)) {
if (irq_domain_is_hierarchy(domain))
irq_domain_free_irqs(virq, 1);
else
@@ -848,9 +861,6 @@ unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec)
return 0;
}
- /* Store trigger type */
- irqd_set_trigger_type(irq_data, type);
-
return virq;
}
EXPORT_SYMBOL_GPL(irq_create_fwspec_mapping);
--
2.4.6
commit 6953c57ab172 "gpio: of: Handle SPI chipselect legacy bindings"
did introduce logic to centrally handle the legacy spi-cs-high property
in combination with cs-gpios. This assumes that the polarity
of the CS has to be inverted if spi-cs-high is missing, even
and especially if non-legacy GPIO_ACTIVE_HIGH is specified.
The DTS for the GTA04 was orginally introduced under the assumption
that there is no need for spi-cs-high if the gpio is defined with
proper polarity GPIO_ACTIVE_HIGH.
This was not a problem until gpiolib changed the interpretation of
GPIO_ACTIVE_HIGH and missing spi-cs-high.
The effect is that the missing spi-cs-high is now interpreted as CS being
low (despite GPIO_ACTIVE_HIGH) which turns off the SPI interface when the
panel is to be programmed by the panel driver.
Therefore, we have to add the redundant and legacy spi-cs-high property
to properly pass through the legacy handler.
Since this is nowhere documented in the bindings, we add some words of
WARNING.
Cc: stable(a)vger.kernel.org
Signed-off-by: H. Nikolaus Schaller <hns(a)goldelico.com>
---
Documentation/devicetree/bindings/spi/spi-bus.txt | 6 ++++++
arch/arm/boot/dts/omap3-gta04.dtsi | 1 +
2 files changed, 7 insertions(+)
diff --git a/Documentation/devicetree/bindings/spi/spi-bus.txt b/Documentation/devicetree/bindings/spi/spi-bus.txt
index 1f6e86f787ef..982aa590058b 100644
--- a/Documentation/devicetree/bindings/spi/spi-bus.txt
+++ b/Documentation/devicetree/bindings/spi/spi-bus.txt
@@ -47,6 +47,10 @@ cs1 : native
cs2 : &gpio1 1 0
cs3 : &gpio1 2 0
+WARNING: the polarity of cs-gpios may be inverted in some cases compared
+to what is specified in the third parameter. In that case the spi-cs-high
+property must be defined for slave nodes.
+
SPI slave nodes must be children of the SPI controller node.
@@ -69,6 +73,8 @@ All slave nodes can contain the following optional properties:
phase (CPHA) mode.
- spi-cs-high - Empty property indicating device requires chip select
active high.
+ WARNING: this is especially required even if the cs-gpios
+ define the gpio as GPIO_ACTIVE_HIGH
- spi-3wire - Empty property indicating device requires 3-wire mode.
- spi-lsb-first - Empty property indicating device requires LSB first mode.
- spi-tx-bus-width - The bus width (number of data wires) that is used for MOSI.
diff --git a/arch/arm/boot/dts/omap3-gta04.dtsi b/arch/arm/boot/dts/omap3-gta04.dtsi
index 9a9a29fe88ec..47bab8e1040e 100644
--- a/arch/arm/boot/dts/omap3-gta04.dtsi
+++ b/arch/arm/boot/dts/omap3-gta04.dtsi
@@ -124,6 +124,7 @@
spi-max-frequency = <100000>;
spi-cpol;
spi-cpha;
+ spi-cs-high;
backlight= <&backlight>;
label = "lcd";
--
2.19.1
From: Alexander Sverdlin <alexander.sverdlin(a)nokia.com>
irq_domain_associate() is the only place where irq_find_mapping() can be
used reliably (under irq_domain_mutex) to make a decision if the mapping
shall be created or not. Other calls to irq_find_mapping() (not under
any lock) cannot be used for this purpose and lead to race conditions in
particular inside irq_create_mapping().
Give the callers of irq_domain_associate() an ability to detect existing
domain reliably by examining the return value.
Cc: stable(a)vger.kernel.org
Signed-off-by: Alexander Sverdlin <alexander.sverdlin(a)nokia.com>
---
kernel/irq/irqdomain.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/kernel/irq/irqdomain.c b/kernel/irq/irqdomain.c
index 3078d0e..7bc07b6 100644
--- a/kernel/irq/irqdomain.c
+++ b/kernel/irq/irqdomain.c
@@ -532,6 +532,7 @@ int irq_domain_associate(struct irq_domain *domain, unsigned int virq,
irq_hw_number_t hwirq)
{
struct irq_data *irq_data = irq_get_irq_data(virq);
+ unsigned int eirq;
int ret;
if (WARN(hwirq >= domain->hwirq_max,
@@ -543,6 +544,16 @@ int irq_domain_associate(struct irq_domain *domain, unsigned int virq,
return -EINVAL;
mutex_lock(&irq_domain_mutex);
+
+ /* Check if mapping already exists */
+ eirq = irq_find_mapping(domain, hwirq);
+ if (eirq) {
+ mutex_unlock(&irq_domain_mutex);
+ pr_debug("%s: conflicting mapping for hwirq 0x%x\n",
+ domain->name, (int)hwirq);
+ return -EBUSY;
+ }
+
irq_data->hwirq = hwirq;
irq_data->domain = domain;
if (domain->ops->map) {
--
2.4.6
From: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
Observe a segmentation fault when 'perf stat' is asked to repeat forever
with the interval option.
Without fix:
# perf stat -r 0 -I 5000 -e cycles -a sleep 10
# time counts unit events
5.000211692 3,13,89,82,34,157 cycles
10.000380119 1,53,98,52,22,294 cycles
10.040467280 17,16,79,265 cycles
Segmentation fault
This problem was only observed when we use forever option aka -r 0 and
works with limited repeats. Calling print_counter with ts being set to
NULL, is not a correct option when interval is set. Hence avoid
print_counter(NULL,..) if interval is set.
With fix:
# perf stat -r 0 -I 5000 -e cycles -a sleep 10
# time counts unit events
5.019866622 3,15,14,43,08,697 cycles
10.039865756 3,15,16,31,95,261 cycles
10.059950628 1,26,05,47,158 cycles
5.009902655 3,14,52,62,33,932 cycles
10.019880228 3,14,52,22,89,154 cycles
10.030543876 66,90,18,333 cycles
5.009848281 3,14,51,98,25,437 cycles
10.029854402 3,15,14,93,04,918 cycles
5.009834177 3,14,51,95,92,316 cycles
Committer notes:
Did the 'git bisect' to find the cset introducing the problem to add the
Fixes tag below, and at that time the problem reproduced as:
(gdb) run stat -r0 -I500 sleep 1
<SNIP>
Program received signal SIGSEGV, Segmentation fault.
print_interval (prefix=prefix@entry=0x7fffffffc8d0 "", ts=ts@entry=0x0) at builtin-stat.c:866
866 sprintf(prefix, "%6lu.%09lu%s", ts->tv_sec, ts->tv_nsec, csv_sep);
(gdb) bt
#0 print_interval (prefix=prefix@entry=0x7fffffffc8d0 "", ts=ts@entry=0x0) at builtin-stat.c:866
#1 0x000000000041860a in print_counters (ts=ts@entry=0x0, argc=argc@entry=2, argv=argv@entry=0x7fffffffd640) at builtin-stat.c:938
#2 0x0000000000419a7f in cmd_stat (argc=2, argv=0x7fffffffd640, prefix=<optimized out>) at builtin-stat.c:1411
#3 0x000000000045c65a in run_builtin (p=p@entry=0x6291b8 <commands+216>, argc=argc@entry=5, argv=argv@entry=0x7fffffffd640) at perf.c:370
#4 0x000000000045c893 in handle_internal_command (argc=5, argv=0x7fffffffd640) at perf.c:429
#5 0x000000000045c8f1 in run_argv (argcp=argcp@entry=0x7fffffffd4ac, argv=argv@entry=0x7fffffffd4a0) at perf.c:473
#6 0x000000000045cac9 in main (argc=<optimized out>, argv=<optimized out>) at perf.c:588
(gdb)
Mostly the same as just before this patch:
Program received signal SIGSEGV, Segmentation fault.
0x00000000005874a7 in print_interval (config=0xa1f2a0 <stat_config>, evlist=0xbc9b90, prefix=0x7fffffffd1c0 "`", ts=0x0) at util/stat-display.c:964
964 sprintf(prefix, "%6lu.%09lu%s", ts->tv_sec, ts->tv_nsec, config->csv_sep);
(gdb) bt
#0 0x00000000005874a7 in print_interval (config=0xa1f2a0 <stat_config>, evlist=0xbc9b90, prefix=0x7fffffffd1c0 "`", ts=0x0) at util/stat-display.c:964
#1 0x0000000000588047 in perf_evlist__print_counters (evlist=0xbc9b90, config=0xa1f2a0 <stat_config>, _target=0xa1f0c0 <target>, ts=0x0, argc=2, argv=0x7fffffffd670)
at util/stat-display.c:1172
#2 0x000000000045390f in print_counters (ts=0x0, argc=2, argv=0x7fffffffd670) at builtin-stat.c:656
#3 0x0000000000456bb5 in cmd_stat (argc=2, argv=0x7fffffffd670) at builtin-stat.c:1960
#4 0x00000000004dd2e0 in run_builtin (p=0xa30e00 <commands+288>, argc=5, argv=0x7fffffffd670) at perf.c:310
#5 0x00000000004dd54d in handle_internal_command (argc=5, argv=0x7fffffffd670) at perf.c:362
#6 0x00000000004dd694 in run_argv (argcp=0x7fffffffd4cc, argv=0x7fffffffd4c0) at perf.c:406
#7 0x00000000004dda11 in main (argc=5, argv=0x7fffffffd670) at perf.c:531
(gdb)
Fixes: d4f63a4741a8 ("perf stat: Introduce print_counters function")
Signed-off-by: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
Acked-by: Jiri Olsa <jolsa(a)kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
Tested-by: Ravi Bangoria <ravi.bangoria(a)linux.ibm.com>
Cc: Namhyung Kim <namhyung(a)kernel.org>
Cc: Naveen N. Rao <naveen.n.rao(a)linux.vnet.ibm.com>
Cc: stable(a)vger.kernel.org # v4.2+
Link: http://lore.kernel.org/lkml/20190904094738.9558-3-srikar@linux.vnet.ibm.com
Signed-off-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
---
tools/perf/builtin-stat.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index fa4b148ecfca..60cdd383af81 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1956,7 +1956,7 @@ int cmd_stat(int argc, const char **argv)
perf_evlist__reset_prev_raw_counts(evsel_list);
status = run_perf_stat(argc, argv, run_idx);
- if (forever && status != -1) {
+ if (forever && status != -1 && !interval) {
print_counters(NULL, argc, argv);
perf_stat__reset_stats();
}
--
2.21.0
From: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
When using 'perf stat' with repeat and interval option, it shows wrong
values for events.
The wrong values will be shown for the first interval on the second and
subsequent repetitions.
Without the fix:
# perf stat -r 3 -I 2000 -e faults -e sched:sched_switch -a sleep 5
2.000282489 53 faults
2.000282489 513 sched:sched_switch
4.005478208 3,721 faults
4.005478208 2,666 sched:sched_switch
5.025470933 395 faults
5.025470933 1,307 sched:sched_switch
2.009602825 1,84,46,74,40,73,70,95,47,520 faults <------
2.009602825 1,84,46,74,40,73,70,95,49,568 sched:sched_switch <------
4.019612206 4,730 faults
4.019612206 2,746 sched:sched_switch
5.039615484 3,953 faults
5.039615484 1,496 sched:sched_switch
2.000274620 1,84,46,74,40,73,70,95,47,520 faults <------
2.000274620 1,84,46,74,40,73,70,95,47,520 sched:sched_switch <------
4.000480342 4,282 faults
4.000480342 2,303 sched:sched_switch
5.000916811 1,322 faults
5.000916811 1,064 sched:sched_switch
#
prev_raw_counts is allocated when using intervals. This is used when
calculating the difference in the counts of events when using interval.
The current counts are stored in prev_raw_counts to calculate the
differences in the next iteration.
On the first interval of the second and subsequent repetitions,
prev_raw_counts would be the values stored in the last interval of the
previous repetitions, while the current counts will only be for the
first interval of the current repetition.
Hence there is a possibility of events showing up as big number.
Fix this by resetting prev_raw_counts whenever perf stat repeats the
command.
With the fix:
# perf stat -r 3 -I 2000 -e faults -e sched:sched_switch -a sleep 5
2.019349347 2,597 faults
2.019349347 2,753 sched:sched_switch
4.019577372 3,098 faults
4.019577372 2,532 sched:sched_switch
5.019415481 1,879 faults
5.019415481 1,356 sched:sched_switch
2.000178813 8,468 faults
2.000178813 2,254 sched:sched_switch
4.000404621 7,440 faults
4.000404621 1,266 sched:sched_switch
5.040196079 2,458 faults
5.040196079 556 sched:sched_switch
2.000191939 6,870 faults
2.000191939 1,170 sched:sched_switch
4.000414103 541 faults
4.000414103 902 sched:sched_switch
5.000809863 450 faults
5.000809863 364 sched:sched_switch
#
Committer notes:
This was broken since the cset introducing the --interval feature, i.e.
--repeat + --interval wasn't tested at that point, add the Fixes tag so
that automatic scripts can pick this up.
Fixes: 13370a9b5bb8 ("perf stat: Add interval printing")
Signed-off-by: Srikar Dronamraju <srikar(a)linux.vnet.ibm.com>
Acked-by: Jiri Olsa <jolsa(a)kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
Tested-by: Ravi Bangoria <ravi.bangoria(a)linux.ibm.com>
Cc: Namhyung Kim <namhyung(a)kernel.org>
Cc: Naveen N. Rao <naveen.n.rao(a)linux.vnet.ibm.com>
Cc: Stephane Eranian <eranian(a)google.com>
Cc: stable(a)vger.kernel.org # v3.9+
Link: http://lore.kernel.org/lkml/20190904094738.9558-2-srikar@linux.vnet.ibm.com
[ Fixed up conflicts with libperf, i.e. some perf_{evsel,evlist} lost the 'perf' prefix ]
Signed-off-by: Arnaldo Carvalho de Melo <acme(a)redhat.com>
---
tools/perf/builtin-stat.c | 3 +++
tools/perf/util/stat.c | 17 +++++++++++++++++
tools/perf/util/stat.h | 1 +
3 files changed, 21 insertions(+)
diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c
index eece3d1e429a..fa4b148ecfca 100644
--- a/tools/perf/builtin-stat.c
+++ b/tools/perf/builtin-stat.c
@@ -1952,6 +1952,9 @@ int cmd_stat(int argc, const char **argv)
fprintf(output, "[ perf stat: executing run #%d ... ]\n",
run_idx + 1);
+ if (run_idx != 0)
+ perf_evlist__reset_prev_raw_counts(evsel_list);
+
status = run_perf_stat(argc, argv, run_idx);
if (forever && status != -1) {
print_counters(NULL, argc, argv);
diff --git a/tools/perf/util/stat.c b/tools/perf/util/stat.c
index 06571209cb0b..fcd54342c04c 100644
--- a/tools/perf/util/stat.c
+++ b/tools/perf/util/stat.c
@@ -162,6 +162,15 @@ static void perf_evsel__free_prev_raw_counts(struct evsel *evsel)
evsel->prev_raw_counts = NULL;
}
+static void perf_evsel__reset_prev_raw_counts(struct evsel *evsel)
+{
+ if (evsel->prev_raw_counts) {
+ evsel->prev_raw_counts->aggr.val = 0;
+ evsel->prev_raw_counts->aggr.ena = 0;
+ evsel->prev_raw_counts->aggr.run = 0;
+ }
+}
+
static int perf_evsel__alloc_stats(struct evsel *evsel, bool alloc_raw)
{
int ncpus = perf_evsel__nr_cpus(evsel);
@@ -212,6 +221,14 @@ void perf_evlist__reset_stats(struct evlist *evlist)
}
}
+void perf_evlist__reset_prev_raw_counts(struct evlist *evlist)
+{
+ struct evsel *evsel;
+
+ evlist__for_each_entry(evlist, evsel)
+ perf_evsel__reset_prev_raw_counts(evsel);
+}
+
static void zero_per_pkg(struct evsel *counter)
{
if (counter->per_pkg_mask)
diff --git a/tools/perf/util/stat.h b/tools/perf/util/stat.h
index 0f9c9f6e2041..edbeb2f63e8d 100644
--- a/tools/perf/util/stat.h
+++ b/tools/perf/util/stat.h
@@ -193,6 +193,7 @@ void perf_stat__collect_metric_expr(struct evlist *);
int perf_evlist__alloc_stats(struct evlist *evlist, bool alloc_raw);
void perf_evlist__free_stats(struct evlist *evlist);
void perf_evlist__reset_stats(struct evlist *evlist);
+void perf_evlist__reset_prev_raw_counts(struct evlist *evlist);
int perf_stat_process_counter(struct perf_stat_config *config,
struct evsel *counter);
--
2.21.0
This is the start of the stable review cycle for the 4.19.74 release.
There are 50 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 Fri 20 Sep 2019 06:09:47 AM UTC.
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.19.74-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.19.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.19.74-rc1
Linus Torvalds <torvalds(a)linux-foundation.org>
x86/build: Add -Wnoaddress-of-packed-member to REALMODE_CFLAGS, to silence GCC9 build warning
Jean Delvare <jdelvare(a)suse.de>
nvmem: Use the same permissions for eeprom as for nvmem
Hui Peng <benquike(a)gmail.com>
rsi: fix a double free bug in rsi_91x_deinit()
Steffen Dirkwinkel <s.dirkwinkel(a)beckhoff.com>
platform/x86: pmc_atom: Add CB4063 Beckhoff Automation board to critclk_systems DMI table
Yang Yingliang <yangyingliang(a)huawei.com>
modules: fix compile error if don't have strict module rwx
Yang Yingliang <yangyingliang(a)huawei.com>
modules: fix BUG when load module with rodata=n
Olivier Moysan <olivier.moysan(a)st.com>
iio: adc: stm32-dfsdm: fix data type
Mario Limonciello <mario.limonciello(a)dell.com>
Revert "Bluetooth: btusb: driver to enable the usb-wakeup feature"
Nishka Dasgupta <nishkadg.linux(a)gmail.com>
drm/mediatek: mtk_drm_drv.c: Add of_node_put() before goto
Hans de Goede <hdegoede(a)redhat.com>
drm: panel-orientation-quirks: Add extra quirk table entry for GPD MicroPC
Andrew F. Davis <afd(a)ti.com>
firmware: ti_sci: Always request response from firmware
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - HMAC SNOOP NO AFEU mode requires SW icv checking.
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - Do not modify req->cryptlen on decryption.
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - fix ECB algs ivsize
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - check data blocksize in ablkcipher.
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - fix CTR alg blocksize
Christophe Leroy <christophe.leroy(a)c-s.fr>
crypto: talitos - check AES key size
Muchun Song <smuchun(a)gmail.com>
driver core: Fix use-after-free and double free on glue directory
Richard Weinberger <richard(a)nod.at>
ubifs: Correctly use tnc_next() in search_dh_cookie()
Kent Gibson <warthog618(a)gmail.com>
gpio: fix line flag validation in lineevent_create
Alex Williamson <alex.williamson(a)redhat.com>
PCI: Always allow probing with driver_override
Xiaolei Li <xiaolei.li(a)mediatek.com>
mtd: rawnand: mtk: Fix wrongly assigned OOB buffer pointer issue
Douglas Anderson <dianders(a)chromium.org>
clk: rockchip: Don't yell about bad mmc phases when getting
Neil Armstrong <narmstrong(a)baylibre.com>
drm/meson: Add support for XBGR8888 & ABGR8888 formats
Suraj Jitindar Singh <sjitindarsingh(a)gmail.com>
powerpc: Add barrier_nospec to raw_copy_in_user()
Steve Wahl <steve.wahl(a)hpe.com>
x86/purgatory: Change compiler flags from -mcmodel=kernel to -mcmodel=large to fix kexec relocation errors
Paolo Bonzini <pbonzini(a)redhat.com>
KVM: nVMX: handle page fault in vmread
Fuqian Huang <huangfq.daxian(a)gmail.com>
KVM: x86: work around leak of uninitialized stack contents
Thomas Huth <thuth(a)redhat.com>
KVM: s390: Do not leak kernel stack data in the KVM_S390_INTERRUPT ioctl
Igor Mammedov <imammedo(a)redhat.com>
KVM: s390: kvm_s390_vm_start_migration: check dirty_bitmap before using it as target for memset()
Yunfeng Ye <yeyunfeng(a)huawei.com>
genirq: Prevent NULL pointer dereference in resend_irqs()
Alexander Duyck <alexander.h.duyck(a)linux.intel.com>
ixgbe: Prevent u8 wrapping of ITR value to something less than 10us
Filipe Manana <fdmanana(a)suse.com>
Btrfs: fix assertion failure during fsync and use of stale transaction
Kent Gibson <warthog618(a)gmail.com>
gpio: fix line flag validation in linehandle_create
Hans de Goede <hdegoede(a)redhat.com>
gpiolib: acpi: Add gpiolib_acpi_run_edge_events_on_boot option and blacklist
Yang Yingliang <yangyingliang(a)huawei.com>
tun: fix use-after-free when register netdev failed
Xin Long <lucien.xin(a)gmail.com>
tipc: add NULL pointer check before calling kfree_rcu
Neal Cardwell <ncardwell(a)google.com>
tcp: fix tcp_ecn_withdraw_cwr() to clear TCP_ECN_QUEUE_CWR
Xin Long <lucien.xin(a)gmail.com>
sctp: use transport pf_retrans in sctp_do_8_2_transport_strike
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
sctp: Fix the link time qualifier of 'sctp_ctrlsock_exit()'
Cong Wang <xiyou.wangcong(a)gmail.com>
sch_hhf: ensure quantum and hhf_non_hh_weight are non-zero
Eric Dumazet <edumazet(a)google.com>
net: sched: fix reordering issues
Stefan Chulski <stefanc(a)marvell.com>
net: phylink: Fix flow control resolution
Shmulik Ladkani <shmulik(a)metanetworks.com>
net: gso: Fix skb_segment splat when splitting gso_size mangled skb having linear-headed frag_list
Subash Abhinov Kasiviswanathan <subashab(a)codeaurora.org>
net: Fix null de-reference of device refcount
Steffen Klassert <steffen.klassert(a)secunet.com>
ixgbe: Fix secpath usage for IPsec TX offload.
Eric Biggers <ebiggers(a)google.com>
isdn/capi: check message length in capi_write()
Christophe JAILLET <christophe.jaillet(a)wanadoo.fr>
ipv6: Fix the link time qualifier of 'ping_v6_proc_exit_net()'
Bjørn Mork <bjorn(a)mork.no>
cdc_ether: fix rndis support for Mediatek based smartphones
Nicolas Dichtel <nicolas.dichtel(a)6wind.com>
bridge/mdb: remove wrong use of NLM_F_MULTI
-------------
Diffstat:
Makefile | 4 +-
arch/powerpc/include/asm/uaccess.h | 1 +
arch/s390/kvm/interrupt.c | 10 ++++
arch/s390/kvm/kvm-s390.c | 4 +-
arch/x86/Makefile | 1 +
arch/x86/kvm/vmx.c | 7 ++-
arch/x86/kvm/x86.c | 7 +++
arch/x86/purgatory/Makefile | 35 ++++++++------
drivers/base/core.c | 53 +++++++++++++++++++-
drivers/bluetooth/btusb.c | 5 --
drivers/clk/rockchip/clk-mmc-phase.c | 4 +-
drivers/crypto/talitos.c | 67 +++++++++++++++++++-------
drivers/firmware/ti_sci.c | 8 +--
drivers/gpio/gpiolib-acpi.c | 42 ++++++++++++++--
drivers/gpio/gpiolib.c | 16 ++++--
drivers/gpu/drm/drm_panel_orientation_quirks.c | 12 +++++
drivers/gpu/drm/mediatek/mtk_drm_drv.c | 5 +-
drivers/gpu/drm/meson/meson_plane.c | 16 ++++++
drivers/iio/adc/stm32-dfsdm-adc.c | 4 +-
drivers/isdn/capi/capi.c | 10 +++-
drivers/mtd/nand/raw/mtk_nand.c | 21 ++++----
drivers/net/ethernet/intel/ixgbe/ixgbe_main.c | 8 ++-
drivers/net/phy/phylink.c | 6 +--
drivers/net/tun.c | 16 ++++--
drivers/net/usb/cdc_ether.c | 13 +++--
drivers/net/wireless/rsi/rsi_91x_usb.c | 1 -
drivers/nvmem/core.c | 15 ++++--
drivers/pci/pci-driver.c | 3 +-
drivers/platform/x86/pmc_atom.c | 8 +++
fs/btrfs/tree-log.c | 8 +--
fs/ubifs/tnc.c | 16 ++++--
include/uapi/linux/isdn/capicmd.h | 1 +
kernel/irq/resend.c | 2 +
kernel/module.c | 22 ++++++---
net/bridge/br_mdb.c | 2 +-
net/core/dev.c | 2 +
net/core/skbuff.c | 19 ++++++++
net/ipv4/tcp_input.c | 2 +-
net/ipv6/ping.c | 2 +-
net/sched/sch_generic.c | 9 +++-
net/sched/sch_hhf.c | 2 +-
net/sctp/protocol.c | 2 +-
net/sctp/sm_sideeffect.c | 2 +-
net/tipc/name_distr.c | 3 +-
44 files changed, 377 insertions(+), 119 deletions(-)
On Thu, Sep 19, 2019 at 10:25:01PM +0200, Miquel Raynal wrote:
> In certain circumstances, it is needed to check INT_TX_EMPTY and
> INT_RX_NOT_EMPTY in the transmit path, not only in the receive
> path. In both cases, the delay penalty is negligible.
In which circumstances and why is this required?
On Thu, 19 Sep 2019, Sasha Levin wrote:
> [This is an automated email]
>
> This commit has been processed because it contains a "Fixes:" tag,
> fixing commit: 236968383cf5 timers: Optimize collect_expired_timers() for NOHZ.
>
> The bot has tested the following trees: v5.2.15, v4.19.73, v4.14.144, v4.9.193.
>
> v5.2.15: Build OK!
> v4.19.73: Build OK!
> v4.14.144: Failed to apply! Possible dependencies:
> c310ce4dcb9d ("timers: Avoid an unnecessary iteration in __run_timers()")
>
> v4.9.193: Failed to apply! Possible dependencies:
> c310ce4dcb9d ("timers: Avoid an unnecessary iteration in __run_timers()")
>
>
> NOTE: The patch will not be queued to stable trees until it is upstream.
>
> How should we proceed with this patch?
The backport should be trivial. If you need help, please let me know.
Thanks,
tglx
When naming the new devices, instead of using the ACPI ID in
the name as base, using the parent device's name. That makes
it possible to support multiple multi-instance i2c devices
of the same type in the same system.
This fixes an issue seen on some Intel Kaby Lake based
boards:
sysfs: cannot create duplicate filename '/devices/pci0000:00/0000:00:15.0/i2c_designware.0/i2c-0/i2c-INT3515-tps6598x.0'
Fixes: 2336dfadfb1e ("platform/x86: i2c-multi-instantiate: Allow to have same slaves")
Cc: stable(a)vger.kernel.org
Signed-off-by: Heikki Krogerus <heikki.krogerus(a)linux.intel.com>
---
drivers/platform/x86/i2c-multi-instantiate.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/platform/x86/i2c-multi-instantiate.c b/drivers/platform/x86/i2c-multi-instantiate.c
index 61fe341a85aa..ea68f6ed66ae 100644
--- a/drivers/platform/x86/i2c-multi-instantiate.c
+++ b/drivers/platform/x86/i2c-multi-instantiate.c
@@ -90,7 +90,7 @@ static int i2c_multi_inst_probe(struct platform_device *pdev)
for (i = 0; i < multi->num_clients && inst_data[i].type; i++) {
memset(&board_info, 0, sizeof(board_info));
strlcpy(board_info.type, inst_data[i].type, I2C_NAME_SIZE);
- snprintf(name, sizeof(name), "%s-%s.%d", match->id,
+ snprintf(name, sizeof(name), "%s-%s.%d", dev_name(dev),
inst_data[i].type, i);
board_info.dev_name = name;
switch (inst_data[i].flags & IRQ_RESOURCE_TYPE) {
--
2.23.0
Hello,
We ran automated tests on a patchset that was proposed for merging into this
kernel tree. The patches were applied to:
Kernel repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 1e2ba4a74fa7 - Linux 5.2.16
The results of these automated tests are provided below.
Overall result: PASSED
Merge: OK
Compile: OK
Tests: OK
All kernel binaries, config files, and logs are available for download here:
https://artifacts.cki-project.org/pipelines/175260
Please reply to this email if you have any questions about the tests that we
ran or if you have any suggestions on how to make future tests more effective.
,-. ,-.
( C ) ( K ) Continuous
`-',-.`-' Kernel
( I ) Integration
`-'
______________________________________________________________________________
Merge testing
-------------
We cloned this repository and checked out the following commit:
Repo: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Commit: 1e2ba4a74fa7 - Linux 5.2.16
We grabbed the 5d06de98f77f commit of the stable queue repository.
We then merged the patchset with `git am`:
usb-usbcore-fix-slab-out-of-bounds-bug-during-device-reset.patch
media-tm6000-double-free-if-usb-disconnect-while-streaming.patch
phy-renesas-rcar-gen3-usb2-disable-clearing-vbus-in-over-current.patch
net-hns3-adjust-hns3_uninit_phy-s-location-in-the-hns3_client_uninit.patch
netfilter-nf_flow_table-set-default-timeout-after-successful-insertion.patch
hid-wacom-generic-read-hid_dg_contactmax-from-any-feature-report.patch
input-elan_i2c-remove-lenovo-legion-y7000-pnpid.patch
sunrpc-handle-connection-breakages-correctly-in-call_status.patch
media-stm32-dcmi-fix-irq-0-case.patch
nfs-disable-client-side-deduplication.patch
powerpc-mm-radix-use-the-right-page-size-for-vmemmap-mapping.patch
scripts-decode_stacktrace-match-basepath-using-shell-prefix-operator-not-regex.patch
net-hns-fix-led-configuration-for-marvell-phy.patch
net-aquantia-fix-limit-of-vlan-filters.patch
ip6_gre-fix-a-dst-leak-in-ip6erspan_tunnel_xmit.patch
net-sched-fix-race-between-deactivation-and-dequeue-for-nolock-qdisc.patch
net_sched-let-qdisc_put-accept-null-pointer.patch
udp-correct-reuseport-selection-with-connected-sockets.patch
xen-netfront-do-not-assume-sk_buff_head-list-is-empty-in-error-handling.patch
net-dsa-fix-load-order-between-dsa-drivers-and-taggers.patch
kvm-coalesced_mmio-add-bounds-checking.patch
firmware-google-check-if-size-is-valid-when-decoding-vpd-data.patch
serial-sprd-correct-the-wrong-sequence-of-arguments.patch
tty-serial-atmel-reschedule-tx-after-rx-was-started.patch
mwifiex-fix-three-heap-overflow-at-parsing-element-in-cfg80211_ap_settings.patch
nl80211-fix-possible-spectre-v1-for-cqm-rssi-thresholds.patch
ieee802154-hwsim-fix-error-handle-path-in-hwsim_init.patch
ieee802154-hwsim-unregister-hw-while-hwsim_subscribe.patch
arm-dts-am57xx-disable-voltage-switching-for-sd-card.patch
arm-omap2-fix-missing-sysc_has_reset_status-for-dra7.patch
bus-ti-sysc-fix-handling-of-forced-idle.patch
bus-ti-sysc-fix-using-configured-sysc-mask-value.patch
arm-dts-fix-flags-for-gpio7.patch
arm-dts-fix-incorrect-dcan-register-mapping-for-am3-.patch
arm64-dts-meson-g12a-add-missing-dwc2-phy-names.patch
s390-bpf-fix-lcgr-instruction-encoding.patch
arm-omap2-fix-omap4-errata-warning-on-other-socs.patch
arm-dts-am335x-fix-uarts-length.patch
arm-dts-dra74x-fix-iodelay-configuration-for-mmc3.patch
arm-omap1-ams-delta-fiq-fix-missing-irq_ack.patch
bus-ti-sysc-simplify-cleanup-upon-failures-in-sysc_p.patch
arm-dts-fix-incomplete-dts-data-for-am3-and-am4-mmc.patch
s390-bpf-use-32-bit-index-for-tail-calls.patch
selftests-bpf-fix-bind-4-6-deny-specific-ip-port-on-.patch
tools-bpftool-close-prog-fd-before-exit-on-showing-a.patch
fpga-altera-ps-spi-fix-getting-of-optional-confd-gpi.patch
netfilter-ebtables-fix-argument-order-to-add_counter.patch
netfilter-nft_flow_offload-missing-netlink-attribute.patch
netfilter-xt_nfacct-fix-alignment-mismatch-in-xt_nfa.patch
nfsv4-fix-return-values-for-nfs4_file_open.patch
nfsv4-fix-return-value-in-nfs_finish_open.patch
nfs-fix-initialisation-of-i-o-result-struct-in-nfs_p.patch
nfs-on-fatal-writeback-errors-we-need-to-call-nfs_in.patch
kconfig-fix-the-reference-to-the-idt77105-phy-driver.patch
xdp-unpin-xdp-umem-pages-in-error-path.patch
selftests-bpf-fix-test_cgroup_storage-on-s390.patch
selftests-bpf-add-config-fragment-bpf_jit.patch
qed-add-cleanup-in-qed_slowpath_start.patch
drm-omap-fix-port-lookup-for-sdi-output.patch
drm-virtio-use-virtio_max_dma_size.patch
arm-8874-1-mm-only-adjust-sections-of-valid-mm-struc.patch
batman-adv-only-read-ogm2-tvlv_len-after-buffer-len-.patch
flow_dissector-fix-potential-use-after-free-on-bpf_p.patch
bpf-allow-narrow-loads-of-some-sk_reuseport_md-field.patch
r8152-set-memory-to-all-0xffs-on-failed-reg-reads.patch
x86-apic-fix-arch_dynirq_lower_bound-bug-for-dt-enab.patch
pnfs-flexfiles-don-t-time-out-requests-on-hard-mount.patch
nfs-fix-spurious-eio-read-errors.patch
nfs-fix-writepage-s-error-handling-to-not-report-err.patch
drm-amdgpu-fix-dma_fence_wait-without-reference.patch
netfilter-xt_physdev-fix-spurious-error-message-in-p.patch
netfilter-nf_conntrack_ftp-fix-debug-output.patch
nfsv2-fix-eof-handling.patch
nfsv2-fix-write-regression.patch
nfs-remove-set-but-not-used-variable-mapping.patch
kallsyms-don-t-let-kallsyms_lookup_size_offset-fail-.patch
netfilter-conntrack-make-sysctls-per-namespace-again.patch
drm-amd-powerplay-correct-vega20-dpm-level-related-s.patch
cifs-set-domainname-when-a-domain-key-is-used-in-mul.patch
cifs-use-kzfree-to-zero-out-the-password.patch
libceph-don-t-call-crypto_free_sync_skcipher-on-a-nu.patch
usb-host-xhci-tegra-set-dma-mask-correctly.patch
risc-v-fix-fixmap-area-corruption-on-rv32-systems.patch
arm-8901-1-add-a-criteria-for-pfn_valid-of-arm.patch
ibmvnic-do-not-process-reset-during-or-after-device-.patch
sky2-disable-msi-on-yet-another-asus-boards-p6xxxx.patch
i2c-designware-synchronize-irqs-when-unregistering-s.patch
perf-x86-intel-restrict-period-on-nehalem.patch
perf-x86-amd-ibs-fix-sample-bias-for-dispatched-micr.patch
i2c-iproc-stop-advertising-support-of-smbus-quick-cm.patch
i2c-mediatek-disable-zero-length-transfers-for-mt818.patch
amd-xgbe-fix-error-path-in-xgbe_mod_init.patch
netfilter-nf_flow_table-clear-skb-tstamp-before-xmit.patch
tools-power-x86_energy_perf_policy-fix-uninitialized.patch
tools-power-x86_energy_perf_policy-fix-argument-pars.patch
tools-power-turbostat-fix-leak-of-file-descriptor-on.patch
tools-power-turbostat-fix-file-descriptor-leaks.patch
tools-power-turbostat-fix-buffer-overrun.patch
tools-power-turbostat-fix-haswell-core-systems.patch
tools-power-turbostat-add-ice-lake-nnpi-support.patch
tools-power-turbostat-fix-cpu-c1-display-value.patch
net-aquantia-fix-removal-of-vlan-0.patch
net-aquantia-reapply-vlan-filters-on-up.patch
net-aquantia-linkstate-irq-should-be-oneshot.patch
net-aquantia-fix-out-of-memory-condition-on-rx-side.patch
net-dsa-microchip-add-ksz8563-compatibility-string.patch
enetc-add-missing-call-to-pci_free_irq_vectors-in-pr.patch
net-seeq-fix-the-function-used-to-release-some-memor.patch
arm64-dts-renesas-r8a77995-draak-fix-backlight-regul.patch
dmaengine-ti-dma-crossbar-fix-a-memory-leak-bug.patch
dmaengine-ti-omap-dma-add-cleanup-in-omap_dma_probe.patch
x86-uaccess-don-t-leak-the-ac-flags-into-__get_user-.patch
x86-hyper-v-fix-overflow-bug-in-fill_gva_list.patch
iommu-vt-d-remove-global-page-flush-support.patch
dmaengine-sprd-fix-the-dma-link-list-configuration.patch
dmaengine-rcar-dmac-fix-dmachclr-handling-if-iommu-i.patch
keys-fix-missing-null-pointer-check-in-request_key_a.patch
iommu-amd-flush-old-domains-in-kdump-kernel.patch
iommu-amd-fix-race-in-increase_address_space.patch
revert-arm64-remove-unnecessary-isbs-from-set_-pte-pmd-pud.patch
ovl-fix-regression-caused-by-overlapping-layers-detection.patch
floppy-fix-usercopy-direction.patch
Compile testing
---------------
We compiled the kernel for 3 architectures:
aarch64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
ppc64le:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
x86_64:
make options: -j30 INSTALL_MOD_STRIP=1 targz-pkg
Hardware testing
----------------
We booted each kernel and ran the following tests:
aarch64:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
ppc64le:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
x86_64:
⚡ Internal infrastructure issues prevented one or more tests (marked
with ⚡⚡⚡) from running on this architecture.
This is not the fault of the kernel that was tested.
Test sources: https://github.com/CKI-project/tests-beaker
💚 Pull requests are welcome for new tests or improvements to existing tests!
Waived tests
------------
If the test run included waived tests, they are marked with 🚧. Such tests are
executed but their results are not taken into account. Tests are waived when
their results are not reliable enough, e.g. when they're just introduced or are
being fixed.