diff --git a/examples/rt-for-vmware.yml b/examples/rt-for-vmware.yml index 6ebcb98e5..c1306a489 100644 --- a/examples/rt-for-vmware.yml +++ b/examples/rt-for-vmware.yml @@ -1,5 +1,5 @@ kernel: - image: linuxkit/kernel:4.14.34-rt + image: linuxkit/kernel:4.14.39-rt cmdline: "console=tty0" init: - linuxkit/init:v0.4 diff --git a/kernel/Makefile b/kernel/Makefile index cdce74eea..fbd2ef47a 100644 --- a/kernel/Makefile +++ b/kernel/Makefile @@ -221,14 +221,14 @@ ifeq ($(ARCH),x86_64) $(eval $(call kernel,4.16.8,4.16.x,$(EXTRA),$(DEBUG))) $(eval $(call kernel,4.14.40,4.14.x,$(EXTRA),$(DEBUG))) $(eval $(call kernel,4.14.40,4.14.x,,-dbg)) -$(eval $(call kernel,4.14.34,4.14.x,-rt,)) +$(eval $(call kernel,4.14.39,4.14.x,-rt,)) $(eval $(call kernel,4.9.99,4.9.x,$(EXTRA),$(DEBUG))) $(eval $(call kernel,4.4.131,4.4.x,$(EXTRA),$(DEBUG))) else ifeq ($(ARCH),aarch64) $(eval $(call kernel,4.16.8,4.16.x,$(EXTRA),$(DEBUG))) $(eval $(call kernel,4.14.40,4.14.x,$(EXTRA),$(DEBUG))) -$(eval $(call kernel,4.14.34,4.14.x,-rt,)) +$(eval $(call kernel,4.14.39,4.14.x,-rt,)) else ifeq ($(ARCH),s390x) $(eval $(call kernel,4.16.8,4.16.x,$(EXTRA),$(DEBUG))) diff --git a/kernel/patches-4.14.x-rt/0005-string-drop-__must_check-from-strscpy-and-restore-st.patch b/kernel/patches-4.14.x-rt/0005-string-drop-__must_check-from-strscpy-and-restore-st.patch new file mode 100644 index 000000000..4a6e141da --- /dev/null +++ b/kernel/patches-4.14.x-rt/0005-string-drop-__must_check-from-strscpy-and-restore-st.patch @@ -0,0 +1,62 @@ +From: Tejun Heo +Date: Tue, 9 Jan 2018 07:21:15 -0800 +Subject: [PATCH] string: drop __must_check from strscpy() and restore + strscpy() usages in cgroup +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Upstream commit 08a77676f9c5fc69a681ccd2cd8140e65dcb26c7 + +e7fd37ba1217 ("cgroup: avoid copying strings longer than the buffers") +converted possibly unsafe strncpy() usages in cgroup to strscpy(). +However, although the callsites are completely fine with truncated +copied, because strscpy() is marked __must_check, it led to the +following warnings. + + kernel/cgroup/cgroup.c: In function ‘cgroup_file_name’: + kernel/cgroup/cgroup.c:1400:10: warning: ignoring return value of ‘strscpy’, declared with attribute warn_unused_result [-Wunused-result] + strscpy(buf, cft->name, CGROUP_FILE_NAME_MAX); + ^ + +To avoid the warnings, 50034ed49645 ("cgroup: use strlcpy() instead of +strscpy() to avoid spurious warning") switched them to strlcpy(). + +strlcpy() is worse than strlcpy() because it unconditionally runs +strlen() on the source string, and the only reason we switched to +strlcpy() here was because it was lacking __must_check, which doesn't +reflect any material differences between the two function. It's just +that someone added __must_check to strscpy() and not to strlcpy(). + +These basic string copy operations are used in variety of ways, and +one of not-so-uncommon use cases is safely handling truncated copies, +where the caller naturally doesn't care about the return value. The +__must_check doesn't match the actual use cases and forces users to +opt for inferior variants which lack __must_check by happenstance or +spread ugly (void) casts. + +Remove __must_check from strscpy() and restore strscpy() usages in +cgroup. + +Signed-off-by: Tejun Heo +Suggested-by: Linus Torvalds +Cc: Ma Shimiao +Cc: Arnd Bergmann +Cc: Chris Metcalf +[bigeasy: drop the cgroup.c hunk] +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/string.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/include/linux/string.h ++++ b/include/linux/string.h +@@ -28,7 +28,7 @@ extern char * strncpy(char *,const char + size_t strlcpy(char *, const char *, size_t); + #endif + #ifndef __HAVE_ARCH_STRSCPY +-ssize_t __must_check strscpy(char *, const char *, size_t); ++ssize_t strscpy(char *, const char *, size_t); + #endif + #ifndef __HAVE_ARCH_STRCAT + extern char * strcat(char *, const char *); diff --git a/kernel/patches-4.14.x-rt/0005-0001-iommu-amd-Use-raw-locks-on-atomic-context-paths.patch b/kernel/patches-4.14.x-rt/0006-0001-iommu-amd-Use-raw-locks-on-atomic-context-paths.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0005-0001-iommu-amd-Use-raw-locks-on-atomic-context-paths.patch rename to kernel/patches-4.14.x-rt/0006-0001-iommu-amd-Use-raw-locks-on-atomic-context-paths.patch diff --git a/kernel/patches-4.14.x-rt/0006-0002-iommu-amd-Don-t-use-dev_data-in-irte_ga_set_affinity.patch b/kernel/patches-4.14.x-rt/0007-0002-iommu-amd-Don-t-use-dev_data-in-irte_ga_set_affinity.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0006-0002-iommu-amd-Don-t-use-dev_data-in-irte_ga_set_affinity.patch rename to kernel/patches-4.14.x-rt/0007-0002-iommu-amd-Don-t-use-dev_data-in-irte_ga_set_affinity.patch diff --git a/kernel/patches-4.14.x-rt/0007-0003-iommu-amd-Avoid-locking-get_irq_table-from-atomic-co.patch b/kernel/patches-4.14.x-rt/0008-0003-iommu-amd-Avoid-locking-get_irq_table-from-atomic-co.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0007-0003-iommu-amd-Avoid-locking-get_irq_table-from-atomic-co.patch rename to kernel/patches-4.14.x-rt/0008-0003-iommu-amd-Avoid-locking-get_irq_table-from-atomic-co.patch diff --git a/kernel/patches-4.14.x-rt/0008-0001-iommu-amd-Take-into-account-that-alloc_dev_data-may-.patch b/kernel/patches-4.14.x-rt/0009-0001-iommu-amd-Take-into-account-that-alloc_dev_data-may-.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0008-0001-iommu-amd-Take-into-account-that-alloc_dev_data-may-.patch rename to kernel/patches-4.14.x-rt/0009-0001-iommu-amd-Take-into-account-that-alloc_dev_data-may-.patch diff --git a/kernel/patches-4.14.x-rt/0009-0002-iommu-amd-Turn-dev_data_list-into-a-lock-less-list.patch b/kernel/patches-4.14.x-rt/0010-0002-iommu-amd-Turn-dev_data_list-into-a-lock-less-list.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0009-0002-iommu-amd-Turn-dev_data_list-into-a-lock-less-list.patch rename to kernel/patches-4.14.x-rt/0010-0002-iommu-amd-Turn-dev_data_list-into-a-lock-less-list.patch diff --git a/kernel/patches-4.14.x-rt/0010-0003-iommu-amd-Split-domain-id-out-of-amd_iommu_devtable_.patch b/kernel/patches-4.14.x-rt/0011-0003-iommu-amd-Split-domain-id-out-of-amd_iommu_devtable_.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0010-0003-iommu-amd-Split-domain-id-out-of-amd_iommu_devtable_.patch rename to kernel/patches-4.14.x-rt/0011-0003-iommu-amd-Split-domain-id-out-of-amd_iommu_devtable_.patch diff --git a/kernel/patches-4.14.x-rt/0011-0004-iommu-amd-Split-irq_lookup_table-out-of-the-amd_iomm.patch b/kernel/patches-4.14.x-rt/0012-0004-iommu-amd-Split-irq_lookup_table-out-of-the-amd_iomm.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0011-0004-iommu-amd-Split-irq_lookup_table-out-of-the-amd_iomm.patch rename to kernel/patches-4.14.x-rt/0012-0004-iommu-amd-Split-irq_lookup_table-out-of-the-amd_iomm.patch diff --git a/kernel/patches-4.14.x-rt/0012-0005-iommu-amd-Remove-the-special-case-from-alloc_irq_tab.patch b/kernel/patches-4.14.x-rt/0013-0005-iommu-amd-Remove-the-special-case-from-alloc_irq_tab.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0012-0005-iommu-amd-Remove-the-special-case-from-alloc_irq_tab.patch rename to kernel/patches-4.14.x-rt/0013-0005-iommu-amd-Remove-the-special-case-from-alloc_irq_tab.patch diff --git a/kernel/patches-4.14.x-rt/0013-0006-iommu-amd-Use-table-instead-irt-as-variable-name-in-.patch b/kernel/patches-4.14.x-rt/0014-0006-iommu-amd-Use-table-instead-irt-as-variable-name-in-.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0013-0006-iommu-amd-Use-table-instead-irt-as-variable-name-in-.patch rename to kernel/patches-4.14.x-rt/0014-0006-iommu-amd-Use-table-instead-irt-as-variable-name-in-.patch diff --git a/kernel/patches-4.14.x-rt/0014-0007-iommu-amd-Factor-out-setting-the-remap-table-for-a-d.patch b/kernel/patches-4.14.x-rt/0015-0007-iommu-amd-Factor-out-setting-the-remap-table-for-a-d.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0014-0007-iommu-amd-Factor-out-setting-the-remap-table-for-a-d.patch rename to kernel/patches-4.14.x-rt/0015-0007-iommu-amd-Factor-out-setting-the-remap-table-for-a-d.patch diff --git a/kernel/patches-4.14.x-rt/0015-0008-iommu-amd-Drop-the-lock-while-allocating-new-irq-rem.patch b/kernel/patches-4.14.x-rt/0016-0008-iommu-amd-Drop-the-lock-while-allocating-new-irq-rem.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0015-0008-iommu-amd-Drop-the-lock-while-allocating-new-irq-rem.patch rename to kernel/patches-4.14.x-rt/0016-0008-iommu-amd-Drop-the-lock-while-allocating-new-irq-rem.patch diff --git a/kernel/patches-4.14.x-rt/0016-0009-iommu-amd-Make-amd_iommu_devtable_lock-a-spin_lock.patch b/kernel/patches-4.14.x-rt/0017-0009-iommu-amd-Make-amd_iommu_devtable_lock-a-spin_lock.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0016-0009-iommu-amd-Make-amd_iommu_devtable_lock-a-spin_lock.patch rename to kernel/patches-4.14.x-rt/0017-0009-iommu-amd-Make-amd_iommu_devtable_lock-a-spin_lock.patch diff --git a/kernel/patches-4.14.x-rt/0017-0010-iommu-amd-Return-proper-error-code-in-irq_remapping_.patch b/kernel/patches-4.14.x-rt/0018-0010-iommu-amd-Return-proper-error-code-in-irq_remapping_.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0017-0010-iommu-amd-Return-proper-error-code-in-irq_remapping_.patch rename to kernel/patches-4.14.x-rt/0018-0010-iommu-amd-Return-proper-error-code-in-irq_remapping_.patch diff --git a/kernel/patches-4.14.x-rt/0018-0001-timers-Use-static-keys-for-migrate_enable-nohz_activ.patch b/kernel/patches-4.14.x-rt/0019-0001-timers-Use-static-keys-for-migrate_enable-nohz_activ.patch similarity index 99% rename from kernel/patches-4.14.x-rt/0018-0001-timers-Use-static-keys-for-migrate_enable-nohz_activ.patch rename to kernel/patches-4.14.x-rt/0019-0001-timers-Use-static-keys-for-migrate_enable-nohz_activ.patch index 7d81ed798..865d9c6c2 100644 --- a/kernel/patches-4.14.x-rt/0018-0001-timers-Use-static-keys-for-migrate_enable-nohz_activ.patch +++ b/kernel/patches-4.14.x-rt/0019-0001-timers-Use-static-keys-for-migrate_enable-nohz_activ.patch @@ -114,7 +114,7 @@ Signed-off-by: Sebastian Andrzej Siewior DECLARE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases); --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c -@@ -1131,7 +1131,7 @@ static inline void tick_nohz_activate(st +@@ -1132,7 +1132,7 @@ static inline void tick_nohz_activate(st ts->nohz_mode = mode; /* One update is enough */ if (!test_and_set_bit(0, &tick_nohz_active)) diff --git a/kernel/patches-4.14.x-rt/0019-0002-hrtimer-Correct-blantanly-wrong-comment.patch b/kernel/patches-4.14.x-rt/0020-0002-hrtimer-Correct-blantanly-wrong-comment.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0019-0002-hrtimer-Correct-blantanly-wrong-comment.patch rename to kernel/patches-4.14.x-rt/0020-0002-hrtimer-Correct-blantanly-wrong-comment.patch diff --git a/kernel/patches-4.14.x-rt/0020-0003-hrtimer-Fix-kerneldoc-for-struct-hrtimer_cpu_base.patch b/kernel/patches-4.14.x-rt/0021-0003-hrtimer-Fix-kerneldoc-for-struct-hrtimer_cpu_base.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0020-0003-hrtimer-Fix-kerneldoc-for-struct-hrtimer_cpu_base.patch rename to kernel/patches-4.14.x-rt/0021-0003-hrtimer-Fix-kerneldoc-for-struct-hrtimer_cpu_base.patch diff --git a/kernel/patches-4.14.x-rt/0021-0004-hrtimer-Cleanup-clock-argument-in-schedule_hrtimeout.patch b/kernel/patches-4.14.x-rt/0022-0004-hrtimer-Cleanup-clock-argument-in-schedule_hrtimeout.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0021-0004-hrtimer-Cleanup-clock-argument-in-schedule_hrtimeout.patch rename to kernel/patches-4.14.x-rt/0022-0004-hrtimer-Cleanup-clock-argument-in-schedule_hrtimeout.patch diff --git a/kernel/patches-4.14.x-rt/0022-0005-hrtimer-Fix-hrtimer-function-description.patch b/kernel/patches-4.14.x-rt/0023-0005-hrtimer-Fix-hrtimer-function-description.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0022-0005-hrtimer-Fix-hrtimer-function-description.patch rename to kernel/patches-4.14.x-rt/0023-0005-hrtimer-Fix-hrtimer-function-description.patch diff --git a/kernel/patches-4.14.x-rt/0023-0007-hrtimer-Cleanup-hrtimer_mode-enum.patch b/kernel/patches-4.14.x-rt/0024-0007-hrtimer-Cleanup-hrtimer_mode-enum.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0023-0007-hrtimer-Cleanup-hrtimer_mode-enum.patch rename to kernel/patches-4.14.x-rt/0024-0007-hrtimer-Cleanup-hrtimer_mode-enum.patch diff --git a/kernel/patches-4.14.x-rt/0024-0008-tracing-hrtimer-Take-all-clock-bases-and-modes-into-.patch b/kernel/patches-4.14.x-rt/0024-0008-tracing-hrtimer-Take-all-clock-bases-and-modes-into-.patch deleted file mode 100644 index 17ed746cd..000000000 --- a/kernel/patches-4.14.x-rt/0024-0008-tracing-hrtimer-Take-all-clock-bases-and-modes-into-.patch +++ /dev/null @@ -1,55 +0,0 @@ -From: Anna-Maria Gleixner -Date: Wed, 20 Dec 2017 17:12:57 +0100 -Subject: [PATCH 08/29] tracing/hrtimer: Take all clock bases and modes into - account - -So far only CLOCK_MONOTONIC and CLOCK_REALTIME were taken into account as -well as HRTIMER_MODE_ABS/REL in hrtimer_init tracepoint. The query for -detecting timer mode ABS or REL is not valid, since the introduction of -HRTIMER_MODE_PINNED. - -HRTIMER_MODE_PINNED is not evaluated in hrtimer_init() call. But for the -sake of completeness print all given modes. - -Signed-off-by: Anna-Maria Gleixner -Signed-off-by: Sebastian Andrzej Siewior ---- - include/trace/events/timer.h | 20 ++++++++++++++++---- - 1 file changed, 16 insertions(+), 4 deletions(-) - ---- a/include/trace/events/timer.h -+++ b/include/trace/events/timer.h -@@ -136,6 +136,20 @@ DEFINE_EVENT(timer_class, timer_cancel, - TP_ARGS(timer) - ); - -+#define decode_clockid(type) \ -+ __print_symbolic(type, \ -+ { CLOCK_REALTIME, "CLOCK_REALTIME" }, \ -+ { CLOCK_MONOTONIC, "CLOCK_MONOTONIC" }, \ -+ { CLOCK_BOOTTIME, "CLOCK_BOOTTIME" }, \ -+ { CLOCK_TAI, "CLOCK_TAI" }) -+ -+#define decode_hrtimer_mode(mode) \ -+ __print_symbolic(mode, \ -+ { HRTIMER_MODE_ABS, "ABS" }, \ -+ { HRTIMER_MODE_REL, "REL" }, \ -+ { HRTIMER_MODE_ABS_PINNED, "ABS|PINNED" }, \ -+ { HRTIMER_MODE_REL_PINNED, "REL|PINNED" }) -+ - /** - * hrtimer_init - called when the hrtimer is initialized - * @hrtimer: pointer to struct hrtimer -@@ -162,10 +176,8 @@ TRACE_EVENT(hrtimer_init, - ), - - TP_printk("hrtimer=%p clockid=%s mode=%s", __entry->hrtimer, -- __entry->clockid == CLOCK_REALTIME ? -- "CLOCK_REALTIME" : "CLOCK_MONOTONIC", -- __entry->mode == HRTIMER_MODE_ABS ? -- "HRTIMER_MODE_ABS" : "HRTIMER_MODE_REL") -+ decode_clockid(__entry->clockid), -+ decode_hrtimer_mode(__entry->mode)) - ); - - /** diff --git a/kernel/patches-4.14.x-rt/0060-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch b/kernel/patches-4.14.x-rt/0060-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch index 1b2d144ae..6f53aa68a 100644 --- a/kernel/patches-4.14.x-rt/0060-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch +++ b/kernel/patches-4.14.x-rt/0060-NFSv4-replace-seqcount_t-with-a-seqlock_t.patch @@ -57,7 +57,7 @@ Signed-off-by: Sebastian Andrzej Siewior --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c -@@ -2638,7 +2638,7 @@ static int _nfs4_open_and_get_state(stru +@@ -2642,7 +2642,7 @@ static int _nfs4_open_and_get_state(stru unsigned int seq; int ret; @@ -66,7 +66,7 @@ Signed-off-by: Sebastian Andrzej Siewior ret = _nfs4_proc_open(opendata); if (ret != 0) -@@ -2676,7 +2676,7 @@ static int _nfs4_open_and_get_state(stru +@@ -2680,7 +2680,7 @@ static int _nfs4_open_and_get_state(stru if (d_inode(dentry) == state->inode) { nfs_inode_attach_open_context(ctx); @@ -86,7 +86,7 @@ Signed-off-by: Sebastian Andrzej Siewior mutex_init(&sp->so_delegreturn_mutex); return sp; } -@@ -1516,8 +1516,12 @@ static int nfs4_reclaim_open_state(struc +@@ -1519,8 +1519,12 @@ static int nfs4_reclaim_open_state(struc * recovering after a network partition or a reboot from a * server that doesn't support a grace period. */ @@ -100,7 +100,7 @@ Signed-off-by: Sebastian Andrzej Siewior restart: list_for_each_entry(state, &sp->so_states, open_states) { if (!test_and_clear_bit(ops->state_flag_bit, &state->flags)) -@@ -1586,14 +1590,20 @@ static int nfs4_reclaim_open_state(struc +@@ -1589,14 +1593,20 @@ static int nfs4_reclaim_open_state(struc spin_lock(&sp->so_lock); goto restart; } diff --git a/kernel/patches-4.14.x-rt/0073-0002-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch b/kernel/patches-4.14.x-rt/0073-0002-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch index d94896307..3a37c6037 100644 --- a/kernel/patches-4.14.x-rt/0073-0002-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch +++ b/kernel/patches-4.14.x-rt/0073-0002-ring-buffer-Rewrite-trace_recursive_-un-lock-to-be-s.patch @@ -28,7 +28,7 @@ Signed-off-by: Sebastian Andrzej Siewior --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c -@@ -2540,61 +2540,29 @@ rb_wakeups(struct ring_buffer *buffer, s +@@ -2545,61 +2545,29 @@ rb_wakeups(struct ring_buffer *buffer, s * The lock and unlock are done within a preempt disable section. * The current_context per_cpu variable can only be modified * by the current task between lock and unlock. But it can @@ -105,7 +105,7 @@ Signed-off-by: Sebastian Andrzej Siewior return 0; } -@@ -2602,7 +2570,9 @@ trace_recursive_lock(struct ring_buffer_ +@@ -2607,7 +2575,9 @@ trace_recursive_lock(struct ring_buffer_ static __always_inline void trace_recursive_unlock(struct ring_buffer_per_cpu *cpu_buffer) { diff --git a/kernel/patches-4.14.x-rt/0084-0013-ring-buffer-Add-interface-for-setting-absolute-time-.patch b/kernel/patches-4.14.x-rt/0084-0013-ring-buffer-Add-interface-for-setting-absolute-time-.patch index 33c176bc8..d9de2b388 100644 --- a/kernel/patches-4.14.x-rt/0084-0013-ring-buffer-Add-interface-for-setting-absolute-time-.patch +++ b/kernel/patches-4.14.x-rt/0084-0013-ring-buffer-Add-interface-for-setting-absolute-time-.patch @@ -45,7 +45,7 @@ Signed-off-by: Sebastian Andrzej Siewior }; struct ring_buffer_iter { -@@ -1382,6 +1383,16 @@ void ring_buffer_set_clock(struct ring_b +@@ -1387,6 +1388,16 @@ void ring_buffer_set_clock(struct ring_b buffer->clock = clock; } diff --git a/kernel/patches-4.14.x-rt/0085-0014-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch b/kernel/patches-4.14.x-rt/0085-0014-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch index 35ffbb369..28f3aa397 100644 --- a/kernel/patches-4.14.x-rt/0085-0014-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch +++ b/kernel/patches-4.14.x-rt/0085-0014-ring-buffer-Redefine-the-unimplemented-RINGBUF_TYPE_.patch @@ -147,7 +147,7 @@ Signed-off-by: Sebastian Andrzej Siewior /* Flag when events were overwritten */ #define RB_MISSED_EVENTS (1 << 31) /* Missed count stored at end */ -@@ -2223,12 +2249,15 @@ rb_move_tail(struct ring_buffer_per_cpu +@@ -2228,12 +2254,15 @@ rb_move_tail(struct ring_buffer_per_cpu /* Slow path, do not inline */ static noinline struct ring_buffer_event * @@ -167,7 +167,7 @@ Signed-off-by: Sebastian Andrzej Siewior event->time_delta = delta & TS_MASK; event->array[0] = delta >> TS_SHIFT; } else { -@@ -2271,7 +2300,9 @@ rb_update_event(struct ring_buffer_per_c +@@ -2276,7 +2305,9 @@ rb_update_event(struct ring_buffer_per_c * add it to the start of the resevered space. */ if (unlikely(info->add_timestamp)) { @@ -178,7 +178,7 @@ Signed-off-by: Sebastian Andrzej Siewior length -= RB_LEN_TIME_EXTEND; delta = 0; } -@@ -2459,7 +2490,7 @@ static __always_inline void rb_end_commi +@@ -2464,7 +2495,7 @@ static __always_inline void rb_end_commi static inline void rb_event_discard(struct ring_buffer_event *event) { @@ -187,7 +187,7 @@ Signed-off-by: Sebastian Andrzej Siewior event = skip_time_extend(event); /* array[0] holds the actual length for the discarded event */ -@@ -2503,10 +2534,11 @@ rb_update_write_stamp(struct ring_buffer +@@ -2508,10 +2539,11 @@ rb_update_write_stamp(struct ring_buffer cpu_buffer->write_stamp = cpu_buffer->commit_page->page->time_stamp; else if (event->type_len == RINGBUF_TYPE_TIME_EXTEND) { @@ -202,7 +202,7 @@ Signed-off-by: Sebastian Andrzej Siewior } else cpu_buffer->write_stamp += event->time_delta; } -@@ -2659,7 +2691,7 @@ static struct ring_buffer_event * +@@ -2664,7 +2696,7 @@ static struct ring_buffer_event * * If this is the first commit on the page, then it has the same * timestamp as the page itself. */ @@ -211,7 +211,7 @@ Signed-off-by: Sebastian Andrzej Siewior info->delta = 0; /* See if we shot pass the end of this buffer page */ -@@ -2736,8 +2768,11 @@ rb_reserve_next_event(struct ring_buffer +@@ -2741,8 +2773,11 @@ rb_reserve_next_event(struct ring_buffer /* make sure this diff is calculated here */ barrier(); @@ -225,7 +225,7 @@ Signed-off-by: Sebastian Andrzej Siewior info.delta = diff; if (unlikely(test_time_stamp(info.delta))) rb_handle_timestamp(cpu_buffer, &info); -@@ -3419,14 +3454,13 @@ rb_update_read_stamp(struct ring_buffer_ +@@ -3424,14 +3459,13 @@ rb_update_read_stamp(struct ring_buffer_ return; case RINGBUF_TYPE_TIME_EXTEND: @@ -243,7 +243,7 @@ Signed-off-by: Sebastian Andrzej Siewior return; case RINGBUF_TYPE_DATA: -@@ -3450,14 +3484,13 @@ rb_update_iter_read_stamp(struct ring_bu +@@ -3455,14 +3489,13 @@ rb_update_iter_read_stamp(struct ring_bu return; case RINGBUF_TYPE_TIME_EXTEND: @@ -261,7 +261,7 @@ Signed-off-by: Sebastian Andrzej Siewior return; case RINGBUF_TYPE_DATA: -@@ -3681,6 +3714,8 @@ rb_buffer_peek(struct ring_buffer_per_cp +@@ -3686,6 +3719,8 @@ rb_buffer_peek(struct ring_buffer_per_cp struct buffer_page *reader; int nr_loops = 0; @@ -270,7 +270,7 @@ Signed-off-by: Sebastian Andrzej Siewior again: /* * We repeat when a time extend is encountered. -@@ -3717,12 +3752,17 @@ rb_buffer_peek(struct ring_buffer_per_cp +@@ -3722,12 +3757,17 @@ rb_buffer_peek(struct ring_buffer_per_cp goto again; case RINGBUF_TYPE_TIME_STAMP: @@ -290,7 +290,7 @@ Signed-off-by: Sebastian Andrzej Siewior *ts = cpu_buffer->read_stamp + event->time_delta; ring_buffer_normalize_time_stamp(cpu_buffer->buffer, cpu_buffer->cpu, ts); -@@ -3747,6 +3787,9 @@ rb_iter_peek(struct ring_buffer_iter *it +@@ -3752,6 +3792,9 @@ rb_iter_peek(struct ring_buffer_iter *it struct ring_buffer_event *event; int nr_loops = 0; @@ -300,7 +300,7 @@ Signed-off-by: Sebastian Andrzej Siewior cpu_buffer = iter->cpu_buffer; buffer = cpu_buffer->buffer; -@@ -3799,12 +3842,17 @@ rb_iter_peek(struct ring_buffer_iter *it +@@ -3804,12 +3847,17 @@ rb_iter_peek(struct ring_buffer_iter *it goto again; case RINGBUF_TYPE_TIME_STAMP: diff --git a/kernel/patches-4.14.x-rt/0114-0043-ring-buffer-Bring-back-context-level-recursive-check.patch b/kernel/patches-4.14.x-rt/0114-0043-ring-buffer-Bring-back-context-level-recursive-check.patch index c6313fc9f..c0916b3b9 100644 --- a/kernel/patches-4.14.x-rt/0114-0043-ring-buffer-Bring-back-context-level-recursive-check.patch +++ b/kernel/patches-4.14.x-rt/0114-0043-ring-buffer-Bring-back-context-level-recursive-check.patch @@ -39,7 +39,7 @@ Signed-off-by: Sebastian Andrzej Siewior --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c -@@ -2583,29 +2583,59 @@ rb_wakeups(struct ring_buffer *buffer, s +@@ -2588,29 +2588,59 @@ rb_wakeups(struct ring_buffer *buffer, s * The lock and unlock are done within a preempt disable section. * The current_context per_cpu variable can only be modified * by the current task between lock and unlock. But it can @@ -114,7 +114,7 @@ Signed-off-by: Sebastian Andrzej Siewior return 0; } -@@ -2613,9 +2643,7 @@ trace_recursive_lock(struct ring_buffer_ +@@ -2618,9 +2648,7 @@ trace_recursive_lock(struct ring_buffer_ static __always_inline void trace_recursive_unlock(struct ring_buffer_per_cpu *cpu_buffer) { diff --git a/kernel/patches-4.14.x-rt/0115-0044-ring-buffer-Fix-duplicate-results-in-mapping-context.patch b/kernel/patches-4.14.x-rt/0115-0044-ring-buffer-Fix-duplicate-results-in-mapping-context.patch index dd6beb4cc..86acc2fae 100644 --- a/kernel/patches-4.14.x-rt/0115-0044-ring-buffer-Fix-duplicate-results-in-mapping-context.patch +++ b/kernel/patches-4.14.x-rt/0115-0044-ring-buffer-Fix-duplicate-results-in-mapping-context.patch @@ -24,7 +24,7 @@ Signed-off-by: Sebastian Andrzej Siewior --- a/kernel/trace/ring_buffer.c +++ b/kernel/trace/ring_buffer.c -@@ -2628,8 +2628,7 @@ trace_recursive_lock(struct ring_buffer_ +@@ -2633,8 +2633,7 @@ trace_recursive_lock(struct ring_buffer_ bit = RB_CTX_NORMAL; else bit = pc & NMI_MASK ? RB_CTX_NMI : diff --git a/kernel/patches-4.14.x-rt/0116-0045-ring-buffer-Add-nesting-for-adding-events-within-eve.patch b/kernel/patches-4.14.x-rt/0116-0045-ring-buffer-Add-nesting-for-adding-events-within-eve.patch index 7a8592020..1f65c53ab 100644 --- a/kernel/patches-4.14.x-rt/0116-0045-ring-buffer-Add-nesting-for-adding-events-within-eve.patch +++ b/kernel/patches-4.14.x-rt/0116-0045-ring-buffer-Add-nesting-for-adding-events-within-eve.patch @@ -45,7 +45,7 @@ Signed-off-by: Sebastian Andrzej Siewior local_t entries_bytes; local_t entries; local_t overrun; -@@ -2630,10 +2631,10 @@ trace_recursive_lock(struct ring_buffer_ +@@ -2635,10 +2636,10 @@ trace_recursive_lock(struct ring_buffer_ bit = pc & NMI_MASK ? RB_CTX_NMI : pc & HARDIRQ_MASK ? RB_CTX_IRQ : RB_CTX_SOFTIRQ; @@ -58,7 +58,7 @@ Signed-off-by: Sebastian Andrzej Siewior cpu_buffer->current_context = val; return 0; -@@ -2642,7 +2643,57 @@ trace_recursive_lock(struct ring_buffer_ +@@ -2647,7 +2648,57 @@ trace_recursive_lock(struct ring_buffer_ static __always_inline void trace_recursive_unlock(struct ring_buffer_per_cpu *cpu_buffer) { diff --git a/kernel/patches-4.14.x-rt/0124-block-shorten-interrupt-disabled-regions.patch b/kernel/patches-4.14.x-rt/0124-block-shorten-interrupt-disabled-regions.patch index dac2a6d68..32e7506a6 100644 --- a/kernel/patches-4.14.x-rt/0124-block-shorten-interrupt-disabled-regions.patch +++ b/kernel/patches-4.14.x-rt/0124-block-shorten-interrupt-disabled-regions.patch @@ -47,7 +47,7 @@ Link: http://lkml.kernel.org/r/20110622174919.025446432@linutronix.de --- a/block/blk-core.c +++ b/block/blk-core.c -@@ -3305,7 +3305,7 @@ static void queue_unplugged(struct reque +@@ -3307,7 +3307,7 @@ static void queue_unplugged(struct reque blk_run_queue_async(q); else __blk_run_queue(q); @@ -56,7 +56,7 @@ Link: http://lkml.kernel.org/r/20110622174919.025446432@linutronix.de } static void flush_plug_callbacks(struct blk_plug *plug, bool from_schedule) -@@ -3353,7 +3353,6 @@ EXPORT_SYMBOL(blk_check_plugged); +@@ -3355,7 +3355,6 @@ EXPORT_SYMBOL(blk_check_plugged); void blk_flush_plug_list(struct blk_plug *plug, bool from_schedule) { struct request_queue *q; @@ -64,7 +64,7 @@ Link: http://lkml.kernel.org/r/20110622174919.025446432@linutronix.de struct request *rq; LIST_HEAD(list); unsigned int depth; -@@ -3373,11 +3372,6 @@ void blk_flush_plug_list(struct blk_plug +@@ -3375,11 +3374,6 @@ void blk_flush_plug_list(struct blk_plug q = NULL; depth = 0; @@ -76,7 +76,7 @@ Link: http://lkml.kernel.org/r/20110622174919.025446432@linutronix.de while (!list_empty(&list)) { rq = list_entry_rq(list.next); list_del_init(&rq->queuelist); -@@ -3390,7 +3384,7 @@ void blk_flush_plug_list(struct blk_plug +@@ -3392,7 +3386,7 @@ void blk_flush_plug_list(struct blk_plug queue_unplugged(q, depth, from_schedule); q = rq->q; depth = 0; @@ -85,7 +85,7 @@ Link: http://lkml.kernel.org/r/20110622174919.025446432@linutronix.de } /* -@@ -3417,8 +3411,6 @@ void blk_flush_plug_list(struct blk_plug +@@ -3419,8 +3413,6 @@ void blk_flush_plug_list(struct blk_plug */ if (q) queue_unplugged(q, depth, from_schedule); diff --git a/kernel/patches-4.14.x-rt/0132-drivers-random-reduce-preempt-disabled-region.patch b/kernel/patches-4.14.x-rt/0132-drivers-random-reduce-preempt-disabled-region.patch index 7429fea26..292520e56 100644 --- a/kernel/patches-4.14.x-rt/0132-drivers-random-reduce-preempt-disabled-region.patch +++ b/kernel/patches-4.14.x-rt/0132-drivers-random-reduce-preempt-disabled-region.patch @@ -13,7 +13,7 @@ Signed-off-by: Thomas Gleixner --- a/drivers/char/random.c +++ b/drivers/char/random.c -@@ -1016,8 +1016,6 @@ static void add_timer_randomness(struct +@@ -1122,8 +1122,6 @@ static void add_timer_randomness(struct } sample; long delta, delta2, delta3; @@ -22,7 +22,7 @@ Signed-off-by: Thomas Gleixner sample.jiffies = jiffies; sample.cycles = random_get_entropy(); sample.num = num; -@@ -1058,7 +1056,6 @@ static void add_timer_randomness(struct +@@ -1164,7 +1162,6 @@ static void add_timer_randomness(struct */ credit_entropy_bits(r, min_t(int, fls(delta>>1), 11)); } diff --git a/kernel/patches-4.14.x-rt/0196-x86-kvm-require-const-tsc-for-rt.patch b/kernel/patches-4.14.x-rt/0196-x86-kvm-require-const-tsc-for-rt.patch index d22bfee26..d95780c8c 100644 --- a/kernel/patches-4.14.x-rt/0196-x86-kvm-require-const-tsc-for-rt.patch +++ b/kernel/patches-4.14.x-rt/0196-x86-kvm-require-const-tsc-for-rt.patch @@ -14,7 +14,7 @@ Signed-off-by: Thomas Gleixner --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c -@@ -6148,6 +6148,13 @@ int kvm_arch_init(void *opaque) +@@ -6150,6 +6150,13 @@ int kvm_arch_init(void *opaque) goto out; } diff --git a/kernel/patches-4.14.x-rt/0203-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch b/kernel/patches-4.14.x-rt/0203-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch index b27afab69..ad8b530c1 100644 --- a/kernel/patches-4.14.x-rt/0203-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch +++ b/kernel/patches-4.14.x-rt/0203-hrtimer-consolidate-hrtimer_init-hrtimer_init_sleepe.patch @@ -19,7 +19,7 @@ Signed-off-by: Sebastian Andrzej Siewior --- a/block/blk-mq.c +++ b/block/blk-mq.c -@@ -2827,10 +2827,9 @@ static bool blk_mq_poll_hybrid_sleep(str +@@ -2845,10 +2845,9 @@ static bool blk_mq_poll_hybrid_sleep(str kt = nsecs; mode = HRTIMER_MODE_REL; diff --git a/kernel/patches-4.14.x-rt/0205-hrtimer-by-timers-by-default-into-the-softirq-context.patch b/kernel/patches-4.14.x-rt/0205-hrtimer-by-timers-by-default-into-the-softirq-context.patch index 95888a232..63b403f87 100644 --- a/kernel/patches-4.14.x-rt/0205-hrtimer-by-timers-by-default-into-the-softirq-context.patch +++ b/kernel/patches-4.14.x-rt/0205-hrtimer-by-timers-by-default-into-the-softirq-context.patch @@ -68,7 +68,7 @@ Signed-off-by: Sebastian Andrzej Siewior timer->function = perf_mux_hrtimer_handler; } -@@ -8711,7 +8711,7 @@ static void perf_swevent_init_hrtimer(st +@@ -8714,7 +8714,7 @@ static void perf_swevent_init_hrtimer(st if (!is_sampling_event(event)) return; @@ -190,7 +190,7 @@ Signed-off-by: Sebastian Andrzej Siewior } --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c -@@ -1254,7 +1254,7 @@ void tick_setup_sched_timer(void) +@@ -1255,7 +1255,7 @@ void tick_setup_sched_timer(void) /* * Emulate tick processing via per-CPU hrtimers: */ diff --git a/kernel/patches-4.14.x-rt/0206-alarmtimer-Prevent-live-lock-in-alarm_cancel.patch b/kernel/patches-4.14.x-rt/0206-alarmtimer-Prevent-live-lock-in-alarm_cancel.patch index 360b2c0dc..6686e0ce1 100644 --- a/kernel/patches-4.14.x-rt/0206-alarmtimer-Prevent-live-lock-in-alarm_cancel.patch +++ b/kernel/patches-4.14.x-rt/0206-alarmtimer-Prevent-live-lock-in-alarm_cancel.patch @@ -15,7 +15,7 @@ Signed-off-by: Sebastian Andrzej Siewior --- a/kernel/time/alarmtimer.c +++ b/kernel/time/alarmtimer.c -@@ -429,7 +429,7 @@ int alarm_cancel(struct alarm *alarm) +@@ -436,7 +436,7 @@ int alarm_cancel(struct alarm *alarm) int ret = alarm_try_to_cancel(alarm); if (ret >= 0) return ret; diff --git a/kernel/patches-4.14.x-rt/0237-softirq-split-locks.patch b/kernel/patches-4.14.x-rt/0237-softirq-split-locks.patch index c4ded8f55..594e34294 100644 --- a/kernel/patches-4.14.x-rt/0237-softirq-split-locks.patch +++ b/kernel/patches-4.14.x-rt/0237-softirq-split-locks.patch @@ -798,7 +798,7 @@ Signed-off-by: Thomas Gleixner .thread_comm = "ksoftirqd/%u", --- a/kernel/time/tick-sched.c +++ b/kernel/time/tick-sched.c -@@ -910,14 +910,7 @@ static bool can_stop_idle_tick(int cpu, +@@ -911,14 +911,7 @@ static bool can_stop_idle_tick(int cpu, return false; if (unlikely(local_softirq_pending() && cpu_online(cpu))) { diff --git a/kernel/patches-4.14.x-rt/0277-tty-serial-8250-don-t-take-the-trylock-during-oops.patch b/kernel/patches-4.14.x-rt/0277-tty-serial-8250-don-t-take-the-trylock-during-oops.patch index d006506a8..4f3a2d283 100644 --- a/kernel/patches-4.14.x-rt/0277-tty-serial-8250-don-t-take-the-trylock-during-oops.patch +++ b/kernel/patches-4.14.x-rt/0277-tty-serial-8250-don-t-take-the-trylock-during-oops.patch @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior --- a/drivers/tty/serial/8250/8250_port.c +++ b/drivers/tty/serial/8250/8250_port.c -@@ -3250,10 +3250,8 @@ void serial8250_console_write(struct uar +@@ -3224,10 +3224,8 @@ void serial8250_console_write(struct uar serial8250_rpm_get(up); diff --git a/kernel/patches-4.14.x-rt/0287-x86-mce-timer-hrtimer.patch b/kernel/patches-4.14.x-rt/0287-x86-mce-timer-hrtimer.patch index 126ae26e6..5332d9c92 100644 --- a/kernel/patches-4.14.x-rt/0287-x86-mce-timer-hrtimer.patch +++ b/kernel/patches-4.14.x-rt/0287-x86-mce-timer-hrtimer.patch @@ -34,7 +34,7 @@ fold in: #include #include -@@ -1355,7 +1356,7 @@ int memory_failure(unsigned long pfn, in +@@ -1353,7 +1354,7 @@ int memory_failure(unsigned long pfn, in static unsigned long check_interval = INITIAL_CHECK_INTERVAL; static DEFINE_PER_CPU(unsigned long, mce_next_interval); /* in jiffies */ @@ -43,7 +43,7 @@ fold in: static unsigned long mce_adjust_timer_default(unsigned long interval) { -@@ -1364,27 +1365,19 @@ static unsigned long mce_adjust_timer_de +@@ -1362,27 +1363,19 @@ static unsigned long mce_adjust_timer_de static unsigned long (*mce_adjust_timer)(unsigned long interval) = mce_adjust_timer_default; @@ -77,7 +77,7 @@ fold in: iv = __this_cpu_read(mce_next_interval); if (mce_available(this_cpu_ptr(&cpu_info))) { -@@ -1407,7 +1400,11 @@ static void mce_timer_fn(unsigned long d +@@ -1405,7 +1398,11 @@ static void mce_timer_fn(unsigned long d done: __this_cpu_write(mce_next_interval, iv); @@ -90,7 +90,7 @@ fold in: } /* -@@ -1415,7 +1412,7 @@ static void mce_timer_fn(unsigned long d +@@ -1413,7 +1410,7 @@ static void mce_timer_fn(unsigned long d */ void mce_timer_kick(unsigned long interval) { @@ -99,7 +99,7 @@ fold in: unsigned long iv = __this_cpu_read(mce_next_interval); __start_timer(t, interval); -@@ -1430,7 +1427,7 @@ static void mce_timer_delete_all(void) +@@ -1428,7 +1425,7 @@ static void mce_timer_delete_all(void) int cpu; for_each_online_cpu(cpu) @@ -108,7 +108,7 @@ fold in: } /* -@@ -1759,7 +1756,7 @@ static void __mcheck_cpu_clear_vendor(st +@@ -1757,7 +1754,7 @@ static void __mcheck_cpu_clear_vendor(st } } @@ -117,7 +117,7 @@ fold in: { unsigned long iv = check_interval * HZ; -@@ -1772,18 +1769,19 @@ static void mce_start_timer(struct timer +@@ -1770,18 +1767,19 @@ static void mce_start_timer(struct timer static void __mcheck_cpu_setup_timer(void) { @@ -143,7 +143,7 @@ fold in: mce_start_timer(t); } -@@ -2302,7 +2300,7 @@ static int mce_cpu_dead(unsigned int cpu +@@ -2300,7 +2298,7 @@ static int mce_cpu_dead(unsigned int cpu static int mce_cpu_online(unsigned int cpu) { @@ -152,7 +152,7 @@ fold in: int ret; mce_device_create(cpu); -@@ -2319,10 +2317,10 @@ static int mce_cpu_online(unsigned int c +@@ -2317,10 +2315,10 @@ static int mce_cpu_online(unsigned int c static int mce_cpu_pre_down(unsigned int cpu) { diff --git a/kernel/patches-4.14.x-rt/0296-block-mq-drop-preempt-disable.patch b/kernel/patches-4.14.x-rt/0296-block-mq-drop-preempt-disable.patch index 62754f5dc..66ca47768 100644 --- a/kernel/patches-4.14.x-rt/0296-block-mq-drop-preempt-disable.patch +++ b/kernel/patches-4.14.x-rt/0296-block-mq-drop-preempt-disable.patch @@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior } /** -@@ -1201,14 +1201,14 @@ static void __blk_mq_delay_run_hw_queue( +@@ -1219,14 +1219,14 @@ static void __blk_mq_delay_run_hw_queue( return; if (!async && !(hctx->flags & BLK_MQ_F_BLOCKING)) { diff --git a/kernel/patches-4.14.x-rt/0304-rtmutex-annotate-sleeping-lock-context.patch b/kernel/patches-4.14.x-rt/0304-rtmutex-annotate-sleeping-lock-context.patch new file mode 100644 index 000000000..8250c5ead --- /dev/null +++ b/kernel/patches-4.14.x-rt/0304-rtmutex-annotate-sleeping-lock-context.patch @@ -0,0 +1,229 @@ +From: Sebastian Andrzej Siewior +Date: Thu, 3 May 2018 17:16:26 +0200 +Subject: [PATCH] rtmutex: annotate sleeping lock context + +The RCU code complains on schedule() within a rcu_readlock() section. +The valid scenario on -RT is if a sleeping is held. In order to suppress +the warning the mirgrate_disable counter was used to identify the +invocation of schedule() due to lock contention. + +Grygorii Strashko report that during CPU hotplug we might see the +warning via + rt_spin_lock() -> migrate_disable() -> pin_current_cpu() -> __read_rt_lock() + +because the counter is not yet set. +It is also possible to trigger the warning from cpu_chill() +(seen on a kblockd_mod_delayed_work_on() caller). + +To address this RCU warning I annotate the sleeping lock context. The +counter is incremented before migrate_disable() so the warning Grygorii +should not trigger anymore. Additionally I use that counter in +cpu_chill() to avoid the RCU warning from there. + +Reported-by: Grygorii Strashko +Signed-off-by: Sebastian Andrzej Siewior +--- + include/linux/sched.h | 20 ++++++++++++++++++++ + kernel/locking/rtmutex.c | 12 ++++++++++-- + kernel/locking/rwlock-rt.c | 18 ++++++++++++++---- + kernel/rcu/tree_plugin.h | 8 ++++---- + kernel/time/hrtimer.c | 2 ++ + 5 files changed, 50 insertions(+), 10 deletions(-) + +--- a/include/linux/sched.h ++++ b/include/linux/sched.h +@@ -598,6 +598,9 @@ struct task_struct { + int migrate_disable_atomic; + # endif + #endif ++#ifdef CONFIG_PREEMPT_RT_FULL ++ int sleeping_lock; ++#endif + + #ifdef CONFIG_PREEMPT_RCU + int rcu_read_lock_nesting; +@@ -1708,6 +1711,23 @@ static __always_inline bool need_resched + return unlikely(tif_need_resched()); + } + ++#ifdef CONFIG_PREEMPT_RT_FULL ++static inline void sleeping_lock_inc(void) ++{ ++ current->sleeping_lock++; ++} ++ ++static inline void sleeping_lock_dec(void) ++{ ++ current->sleeping_lock--; ++} ++ ++#else ++ ++static inline void sleeping_lock_inc(void) { } ++static inline void sleeping_lock_dec(void) { } ++#endif ++ + /* + * Wrappers for p->thread_info->cpu access. No-op on UP. + */ +--- a/kernel/locking/rtmutex.c ++++ b/kernel/locking/rtmutex.c +@@ -1141,6 +1141,7 @@ void __sched rt_spin_lock_slowunlock(str + + void __lockfunc rt_spin_lock(spinlock_t *lock) + { ++ sleeping_lock_inc(); + migrate_disable(); + spin_acquire(&lock->dep_map, 0, 0, _RET_IP_); + rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock); +@@ -1155,6 +1156,7 @@ void __lockfunc __rt_spin_lock(struct rt + #ifdef CONFIG_DEBUG_LOCK_ALLOC + void __lockfunc rt_spin_lock_nested(spinlock_t *lock, int subclass) + { ++ sleeping_lock_inc(); + migrate_disable(); + spin_acquire(&lock->dep_map, subclass, 0, _RET_IP_); + rt_spin_lock_fastlock(&lock->lock, rt_spin_lock_slowlock); +@@ -1168,6 +1170,7 @@ void __lockfunc rt_spin_unlock(spinlock_ + spin_release(&lock->dep_map, 1, _RET_IP_); + rt_spin_lock_fastunlock(&lock->lock, rt_spin_lock_slowunlock); + migrate_enable(); ++ sleeping_lock_dec(); + } + EXPORT_SYMBOL(rt_spin_unlock); + +@@ -1193,12 +1196,15 @@ int __lockfunc rt_spin_trylock(spinlock_ + { + int ret; + ++ sleeping_lock_inc(); + migrate_disable(); + ret = __rt_mutex_trylock(&lock->lock); +- if (ret) ++ if (ret) { + spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); +- else ++ } else { + migrate_enable(); ++ sleeping_lock_dec(); ++ } + return ret; + } + EXPORT_SYMBOL(rt_spin_trylock); +@@ -1210,6 +1216,7 @@ int __lockfunc rt_spin_trylock_bh(spinlo + local_bh_disable(); + ret = __rt_mutex_trylock(&lock->lock); + if (ret) { ++ sleeping_lock_inc(); + migrate_disable(); + spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); + } else +@@ -1225,6 +1232,7 @@ int __lockfunc rt_spin_trylock_irqsave(s + *flags = 0; + ret = __rt_mutex_trylock(&lock->lock); + if (ret) { ++ sleeping_lock_inc(); + migrate_disable(); + spin_acquire(&lock->dep_map, 0, 1, _RET_IP_); + } +--- a/kernel/locking/rwlock-rt.c ++++ b/kernel/locking/rwlock-rt.c +@@ -305,12 +305,15 @@ int __lockfunc rt_read_trylock(rwlock_t + { + int ret; + ++ sleeping_lock_inc(); + migrate_disable(); + ret = do_read_rt_trylock(rwlock); +- if (ret) ++ if (ret) { + rwlock_acquire_read(&rwlock->dep_map, 0, 1, _RET_IP_); +- else ++ } else { + migrate_enable(); ++ sleeping_lock_dec(); ++ } + return ret; + } + EXPORT_SYMBOL(rt_read_trylock); +@@ -319,18 +322,22 @@ int __lockfunc rt_write_trylock(rwlock_t + { + int ret; + ++ sleeping_lock_inc(); + migrate_disable(); + ret = do_write_rt_trylock(rwlock); +- if (ret) ++ if (ret) { + rwlock_acquire(&rwlock->dep_map, 0, 1, _RET_IP_); +- else ++ } else { + migrate_enable(); ++ sleeping_lock_dec(); ++ } + return ret; + } + EXPORT_SYMBOL(rt_write_trylock); + + void __lockfunc rt_read_lock(rwlock_t *rwlock) + { ++ sleeping_lock_inc(); + migrate_disable(); + rwlock_acquire_read(&rwlock->dep_map, 0, 0, _RET_IP_); + do_read_rt_lock(rwlock); +@@ -339,6 +346,7 @@ EXPORT_SYMBOL(rt_read_lock); + + void __lockfunc rt_write_lock(rwlock_t *rwlock) + { ++ sleeping_lock_inc(); + migrate_disable(); + rwlock_acquire(&rwlock->dep_map, 0, 0, _RET_IP_); + do_write_rt_lock(rwlock); +@@ -350,6 +358,7 @@ void __lockfunc rt_read_unlock(rwlock_t + rwlock_release(&rwlock->dep_map, 1, _RET_IP_); + do_read_rt_unlock(rwlock); + migrate_enable(); ++ sleeping_lock_dec(); + } + EXPORT_SYMBOL(rt_read_unlock); + +@@ -358,6 +367,7 @@ void __lockfunc rt_write_unlock(rwlock_t + rwlock_release(&rwlock->dep_map, 1, _RET_IP_); + do_write_rt_unlock(rwlock); + migrate_enable(); ++ sleeping_lock_dec(); + } + EXPORT_SYMBOL(rt_write_unlock); + +--- a/kernel/rcu/tree_plugin.h ++++ b/kernel/rcu/tree_plugin.h +@@ -324,13 +324,13 @@ static void rcu_preempt_note_context_swi + struct task_struct *t = current; + struct rcu_data *rdp; + struct rcu_node *rnp; +- int mg_counter = 0; ++ int sleeping_l = 0; + + RCU_LOCKDEP_WARN(!irqs_disabled(), "rcu_preempt_note_context_switch() invoked with interrupts enabled!!!\n"); +-#if defined(CONFIG_PREEMPT_RT_BASE) +- mg_counter = t->migrate_disable; ++#if defined(CONFIG_PREEMPT_RT_FULL) ++ sleeping_l = t->sleeping_lock; + #endif +- WARN_ON_ONCE(!preempt && t->rcu_read_lock_nesting > 0 && !mg_counter); ++ WARN_ON_ONCE(!preempt && t->rcu_read_lock_nesting > 0 && !sleeping_l); + if (t->rcu_read_lock_nesting > 0 && + !t->rcu_read_unlock_special.b.blocked) { + +--- a/kernel/time/hrtimer.c ++++ b/kernel/time/hrtimer.c +@@ -1870,7 +1870,9 @@ void cpu_chill(void) + chill_time = ktime_set(0, NSEC_PER_MSEC); + set_current_state(TASK_UNINTERRUPTIBLE); + current->flags |= PF_NOFREEZE; ++ sleeping_lock_inc(); + schedule_hrtimeout(&chill_time, HRTIMER_MODE_REL_HARD); ++ sleeping_lock_dec(); + if (!freeze_flag) + current->flags &= ~PF_NOFREEZE; + } diff --git a/kernel/patches-4.14.x-rt/0304-block-blk-mq-use-swait.patch b/kernel/patches-4.14.x-rt/0305-block-blk-mq-use-swait.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0304-block-blk-mq-use-swait.patch rename to kernel/patches-4.14.x-rt/0305-block-blk-mq-use-swait.patch diff --git a/kernel/patches-4.14.x-rt/0305-Revert-block-blk-mq-Use-swait.patch b/kernel/patches-4.14.x-rt/0306-Revert-block-blk-mq-Use-swait.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0305-Revert-block-blk-mq-Use-swait.patch rename to kernel/patches-4.14.x-rt/0306-Revert-block-blk-mq-Use-swait.patch diff --git a/kernel/patches-4.14.x-rt/0306-block-blk-mq-move-blk_queue_usage_counter_release-in.patch b/kernel/patches-4.14.x-rt/0307-block-blk-mq-move-blk_queue_usage_counter_release-in.patch similarity index 98% rename from kernel/patches-4.14.x-rt/0306-block-blk-mq-move-blk_queue_usage_counter_release-in.patch rename to kernel/patches-4.14.x-rt/0307-block-blk-mq-move-blk_queue_usage_counter_release-in.patch index fd7dc2702..946aad6d0 100644 --- a/kernel/patches-4.14.x-rt/0306-block-blk-mq-move-blk_queue_usage_counter_release-in.patch +++ b/kernel/patches-4.14.x-rt/0307-block-blk-mq-move-blk_queue_usage_counter_release-in.patch @@ -83,7 +83,7 @@ Signed-off-by: Sebastian Andrzej Siewior /* * Init percpu_ref in atomic mode so that it's faster to shutdown. -@@ -3623,6 +3633,8 @@ int __init blk_dev_init(void) +@@ -3625,6 +3635,8 @@ int __init blk_dev_init(void) if (!kblockd_workqueue) panic("Failed to create kblockd\n"); diff --git a/kernel/patches-4.14.x-rt/0307-block-use-cpu-chill.patch b/kernel/patches-4.14.x-rt/0308-block-use-cpu-chill.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0307-block-use-cpu-chill.patch rename to kernel/patches-4.14.x-rt/0308-block-use-cpu-chill.patch diff --git a/kernel/patches-4.14.x-rt/0308-fs-dcache-use-cpu-chill-in-trylock-loops.patch b/kernel/patches-4.14.x-rt/0309-fs-dcache-use-cpu-chill-in-trylock-loops.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0308-fs-dcache-use-cpu-chill-in-trylock-loops.patch rename to kernel/patches-4.14.x-rt/0309-fs-dcache-use-cpu-chill-in-trylock-loops.patch diff --git a/kernel/patches-4.14.x-rt/0309-net-use-cpu-chill.patch b/kernel/patches-4.14.x-rt/0310-net-use-cpu-chill.patch similarity index 92% rename from kernel/patches-4.14.x-rt/0309-net-use-cpu-chill.patch rename to kernel/patches-4.14.x-rt/0310-net-use-cpu-chill.patch index ffe94af5b..a51a4b369 100644 --- a/kernel/patches-4.14.x-rt/0309-net-use-cpu-chill.patch +++ b/kernel/patches-4.14.x-rt/0310-net-use-cpu-chill.patch @@ -23,7 +23,7 @@ Signed-off-by: Thomas Gleixner #include #include #include -@@ -700,7 +701,7 @@ static void prb_retire_rx_blk_timer_expi +@@ -707,7 +708,7 @@ static void prb_retire_rx_blk_timer_expi if (BLOCK_NUM_PKTS(pbd)) { while (atomic_read(&pkc->blk_fill_in_prog)) { /* Waiting for skb_copy_bits to finish... */ @@ -32,7 +32,7 @@ Signed-off-by: Thomas Gleixner } } -@@ -962,7 +963,7 @@ static void prb_retire_current_block(str +@@ -969,7 +970,7 @@ static void prb_retire_current_block(str if (!(status & TP_STATUS_BLK_TMO)) { while (atomic_read(&pkc->blk_fill_in_prog)) { /* Waiting for skb_copy_bits to finish... */ diff --git a/kernel/patches-4.14.x-rt/0310-fs-dcache-use-swait_queue-instead-of-waitqueue.patch b/kernel/patches-4.14.x-rt/0311-fs-dcache-use-swait_queue-instead-of-waitqueue.patch similarity index 97% rename from kernel/patches-4.14.x-rt/0310-fs-dcache-use-swait_queue-instead-of-waitqueue.patch rename to kernel/patches-4.14.x-rt/0311-fs-dcache-use-swait_queue-instead-of-waitqueue.patch index 164e78980..2b36c1d1f 100644 --- a/kernel/patches-4.14.x-rt/0310-fs-dcache-use-swait_queue-instead-of-waitqueue.patch +++ b/kernel/patches-4.14.x-rt/0311-fs-dcache-use-swait_queue-instead-of-waitqueue.patch @@ -91,7 +91,7 @@ Signed-off-by: Sebastian Andrzej Siewior /* --- a/fs/namei.c +++ b/fs/namei.c -@@ -1626,7 +1626,7 @@ static struct dentry *lookup_slow(const +@@ -1627,7 +1627,7 @@ static struct dentry *lookup_slow(const { struct dentry *dentry = ERR_PTR(-ENOENT), *old; struct inode *inode = dir->d_inode; @@ -100,7 +100,7 @@ Signed-off-by: Sebastian Andrzej Siewior inode_lock_shared(inode); /* Don't go there if it's already dead */ -@@ -3099,7 +3099,7 @@ static int lookup_open(struct nameidata +@@ -3100,7 +3100,7 @@ static int lookup_open(struct nameidata struct dentry *dentry; int error, create_error = 0; umode_t mode = op->mode; @@ -151,7 +151,7 @@ Signed-off-by: Sebastian Andrzej Siewior spin_lock(&dentry->d_lock); --- a/fs/proc/base.c +++ b/fs/proc/base.c -@@ -1878,7 +1878,7 @@ bool proc_fill_cache(struct file *file, +@@ -1880,7 +1880,7 @@ bool proc_fill_cache(struct file *file, child = d_hash_and_lookup(dir, &qname); if (!child) { diff --git a/kernel/patches-4.14.x-rt/0311-workqueue-use-rcu.patch b/kernel/patches-4.14.x-rt/0312-workqueue-use-rcu.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0311-workqueue-use-rcu.patch rename to kernel/patches-4.14.x-rt/0312-workqueue-use-rcu.patch diff --git a/kernel/patches-4.14.x-rt/0312-workqueue-use-locallock.patch b/kernel/patches-4.14.x-rt/0313-workqueue-use-locallock.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0312-workqueue-use-locallock.patch rename to kernel/patches-4.14.x-rt/0313-workqueue-use-locallock.patch diff --git a/kernel/patches-4.14.x-rt/0313-work-queue-work-around-irqsafe-timer-optimization.patch b/kernel/patches-4.14.x-rt/0314-work-queue-work-around-irqsafe-timer-optimization.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0313-work-queue-work-around-irqsafe-timer-optimization.patch rename to kernel/patches-4.14.x-rt/0314-work-queue-work-around-irqsafe-timer-optimization.patch diff --git a/kernel/patches-4.14.x-rt/0314-workqueue-distangle-from-rq-lock.patch b/kernel/patches-4.14.x-rt/0315-workqueue-distangle-from-rq-lock.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0314-workqueue-distangle-from-rq-lock.patch rename to kernel/patches-4.14.x-rt/0315-workqueue-distangle-from-rq-lock.patch diff --git a/kernel/patches-4.14.x-rt/0315-percpu_ida-use-locklocks.patch b/kernel/patches-4.14.x-rt/0316-percpu_ida-use-locklocks.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0315-percpu_ida-use-locklocks.patch rename to kernel/patches-4.14.x-rt/0316-percpu_ida-use-locklocks.patch diff --git a/kernel/patches-4.14.x-rt/0316-debugobjects-rt.patch b/kernel/patches-4.14.x-rt/0317-debugobjects-rt.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0316-debugobjects-rt.patch rename to kernel/patches-4.14.x-rt/0317-debugobjects-rt.patch diff --git a/kernel/patches-4.14.x-rt/0317-jump-label-rt.patch b/kernel/patches-4.14.x-rt/0318-jump-label-rt.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0317-jump-label-rt.patch rename to kernel/patches-4.14.x-rt/0318-jump-label-rt.patch diff --git a/kernel/patches-4.14.x-rt/0318-seqlock-prevent-rt-starvation.patch b/kernel/patches-4.14.x-rt/0319-seqlock-prevent-rt-starvation.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0318-seqlock-prevent-rt-starvation.patch rename to kernel/patches-4.14.x-rt/0319-seqlock-prevent-rt-starvation.patch diff --git a/kernel/patches-4.14.x-rt/0319-sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch b/kernel/patches-4.14.x-rt/0320-sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0319-sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch rename to kernel/patches-4.14.x-rt/0320-sunrpc-make-svc_xprt_do_enqueue-use-get_cpu_light.patch diff --git a/kernel/patches-4.14.x-rt/0320-skbufhead-raw-lock.patch b/kernel/patches-4.14.x-rt/0321-skbufhead-raw-lock.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0320-skbufhead-raw-lock.patch rename to kernel/patches-4.14.x-rt/0321-skbufhead-raw-lock.patch diff --git a/kernel/patches-4.14.x-rt/0321-net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch b/kernel/patches-4.14.x-rt/0322-net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0321-net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch rename to kernel/patches-4.14.x-rt/0322-net-core-cpuhotplug-drain-input_pkt_queue-lockless.patch diff --git a/kernel/patches-4.14.x-rt/0322-net-move-xmit_recursion-to-per-task-variable-on-RT.patch b/kernel/patches-4.14.x-rt/0323-net-move-xmit_recursion-to-per-task-variable-on-RT.patch similarity index 98% rename from kernel/patches-4.14.x-rt/0322-net-move-xmit_recursion-to-per-task-variable-on-RT.patch rename to kernel/patches-4.14.x-rt/0323-net-move-xmit_recursion-to-per-task-variable-on-RT.patch index dce308af8..ccd23a288 100644 --- a/kernel/patches-4.14.x-rt/0322-net-move-xmit_recursion-to-per-task-variable-on-RT.patch +++ b/kernel/patches-4.14.x-rt/0323-net-move-xmit_recursion-to-per-task-variable-on-RT.patch @@ -80,7 +80,7 @@ Signed-off-by: Sebastian Andrzej Siewior struct net_device *dev_get_by_index_rcu(struct net *net, int ifindex); --- a/include/linux/sched.h +++ b/include/linux/sched.h -@@ -1113,6 +1113,9 @@ struct task_struct { +@@ -1116,6 +1116,9 @@ struct task_struct { #ifdef CONFIG_DEBUG_ATOMIC_SLEEP unsigned long task_state_change; #endif diff --git a/kernel/patches-4.14.x-rt/0323-net-use-task_struct-instead-of-CPU-number-as-the-que.patch b/kernel/patches-4.14.x-rt/0324-net-use-task_struct-instead-of-CPU-number-as-the-que.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0323-net-use-task_struct-instead-of-CPU-number-as-the-que.patch rename to kernel/patches-4.14.x-rt/0324-net-use-task_struct-instead-of-CPU-number-as-the-que.patch diff --git a/kernel/patches-4.14.x-rt/0324-net-provide-a-way-to-delegate-processing-a-softirq-t.patch b/kernel/patches-4.14.x-rt/0325-net-provide-a-way-to-delegate-processing-a-softirq-t.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0324-net-provide-a-way-to-delegate-processing-a-softirq-t.patch rename to kernel/patches-4.14.x-rt/0325-net-provide-a-way-to-delegate-processing-a-softirq-t.patch diff --git a/kernel/patches-4.14.x-rt/0325-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch b/kernel/patches-4.14.x-rt/0326-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0325-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch rename to kernel/patches-4.14.x-rt/0326-net-dev-always-take-qdisc-s-busylock-in-__dev_xmit_s.patch diff --git a/kernel/patches-4.14.x-rt/0326-net-Qdisc-use-a-seqlock-instead-seqcount.patch b/kernel/patches-4.14.x-rt/0327-net-Qdisc-use-a-seqlock-instead-seqcount.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0326-net-Qdisc-use-a-seqlock-instead-seqcount.patch rename to kernel/patches-4.14.x-rt/0327-net-Qdisc-use-a-seqlock-instead-seqcount.patch diff --git a/kernel/patches-4.14.x-rt/0327-net-add-back-the-missing-serialization-in-ip_send_un.patch b/kernel/patches-4.14.x-rt/0328-net-add-back-the-missing-serialization-in-ip_send_un.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0327-net-add-back-the-missing-serialization-in-ip_send_un.patch rename to kernel/patches-4.14.x-rt/0328-net-add-back-the-missing-serialization-in-ip_send_un.patch diff --git a/kernel/patches-4.14.x-rt/0328-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch b/kernel/patches-4.14.x-rt/0329-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0328-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch rename to kernel/patches-4.14.x-rt/0329-net-take-the-tcp_sk_lock-lock-with-BH-disabled.patch diff --git a/kernel/patches-4.14.x-rt/0329-net-add-a-lock-around-icmp_sk.patch b/kernel/patches-4.14.x-rt/0330-net-add-a-lock-around-icmp_sk.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0329-net-add-a-lock-around-icmp_sk.patch rename to kernel/patches-4.14.x-rt/0330-net-add-a-lock-around-icmp_sk.patch diff --git a/kernel/patches-4.14.x-rt/0330-net-use-trylock-in-icmp_sk.patch b/kernel/patches-4.14.x-rt/0331-net-use-trylock-in-icmp_sk.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0330-net-use-trylock-in-icmp_sk.patch rename to kernel/patches-4.14.x-rt/0331-net-use-trylock-in-icmp_sk.patch diff --git a/kernel/patches-4.14.x-rt/0331-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch b/kernel/patches-4.14.x-rt/0332-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0331-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch rename to kernel/patches-4.14.x-rt/0332-net-Have-__napi_schedule_irqoff-disable-interrupts-o.patch diff --git a/kernel/patches-4.14.x-rt/0332-irqwork-push_most_work_into_softirq_context.patch b/kernel/patches-4.14.x-rt/0333-irqwork-push_most_work_into_softirq_context.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0332-irqwork-push_most_work_into_softirq_context.patch rename to kernel/patches-4.14.x-rt/0333-irqwork-push_most_work_into_softirq_context.patch diff --git a/kernel/patches-4.14.x-rt/0333-irqwork-Move-irq-safe-work-to-irq-context.patch b/kernel/patches-4.14.x-rt/0334-irqwork-Move-irq-safe-work-to-irq-context.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0333-irqwork-Move-irq-safe-work-to-irq-context.patch rename to kernel/patches-4.14.x-rt/0334-irqwork-Move-irq-safe-work-to-irq-context.patch diff --git a/kernel/patches-4.14.x-rt/0334-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch b/kernel/patches-4.14.x-rt/0335-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0334-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch rename to kernel/patches-4.14.x-rt/0335-snd-pcm-fix-snd_pcm_stream_lock-irqs_disabled-splats.patch diff --git a/kernel/patches-4.14.x-rt/0335-printk-rt-aware.patch b/kernel/patches-4.14.x-rt/0336-printk-rt-aware.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0335-printk-rt-aware.patch rename to kernel/patches-4.14.x-rt/0336-printk-rt-aware.patch diff --git a/kernel/patches-4.14.x-rt/0336-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch b/kernel/patches-4.14.x-rt/0337-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0336-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch rename to kernel/patches-4.14.x-rt/0337-kernel-printk-Don-t-try-to-print-from-IRQ-NMI-region.patch diff --git a/kernel/patches-4.14.x-rt/0337-HACK-printk-drop-the-logbuf_lock-more-often.patch b/kernel/patches-4.14.x-rt/0338-HACK-printk-drop-the-logbuf_lock-more-often.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0337-HACK-printk-drop-the-logbuf_lock-more-often.patch rename to kernel/patches-4.14.x-rt/0338-HACK-printk-drop-the-logbuf_lock-more-often.patch diff --git a/kernel/patches-4.14.x-rt/0338-power-use-generic-rwsem-on-rt.patch b/kernel/patches-4.14.x-rt/0339-power-use-generic-rwsem-on-rt.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0338-power-use-generic-rwsem-on-rt.patch rename to kernel/patches-4.14.x-rt/0339-power-use-generic-rwsem-on-rt.patch diff --git a/kernel/patches-4.14.x-rt/0339-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch b/kernel/patches-4.14.x-rt/0340-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0339-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch rename to kernel/patches-4.14.x-rt/0340-powerpc-kvm-Disable-in-kernel-MPIC-emulation-for-PRE.patch diff --git a/kernel/patches-4.14.x-rt/0340-powerpc-ps3-device-init.c-adapt-to-completions-using.patch b/kernel/patches-4.14.x-rt/0341-powerpc-ps3-device-init.c-adapt-to-completions-using.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0340-powerpc-ps3-device-init.c-adapt-to-completions-using.patch rename to kernel/patches-4.14.x-rt/0341-powerpc-ps3-device-init.c-adapt-to-completions-using.patch diff --git a/kernel/patches-4.14.x-rt/0341-arm-at91-tclib-default-to-tclib-timer-for-rt.patch b/kernel/patches-4.14.x-rt/0342-arm-at91-tclib-default-to-tclib-timer-for-rt.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0341-arm-at91-tclib-default-to-tclib-timer-for-rt.patch rename to kernel/patches-4.14.x-rt/0342-arm-at91-tclib-default-to-tclib-timer-for-rt.patch diff --git a/kernel/patches-4.14.x-rt/0342-arm-unwind-use_raw_lock.patch b/kernel/patches-4.14.x-rt/0343-arm-unwind-use_raw_lock.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0342-arm-unwind-use_raw_lock.patch rename to kernel/patches-4.14.x-rt/0343-arm-unwind-use_raw_lock.patch diff --git a/kernel/patches-4.14.x-rt/0343-ARM-enable-irq-in-translation-section-permission-fau.patch b/kernel/patches-4.14.x-rt/0344-ARM-enable-irq-in-translation-section-permission-fau.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0343-ARM-enable-irq-in-translation-section-permission-fau.patch rename to kernel/patches-4.14.x-rt/0344-ARM-enable-irq-in-translation-section-permission-fau.patch diff --git a/kernel/patches-4.14.x-rt/0344-genirq-update-irq_set_irqchip_state-documentation.patch b/kernel/patches-4.14.x-rt/0345-genirq-update-irq_set_irqchip_state-documentation.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0344-genirq-update-irq_set_irqchip_state-documentation.patch rename to kernel/patches-4.14.x-rt/0345-genirq-update-irq_set_irqchip_state-documentation.patch diff --git a/kernel/patches-4.14.x-rt/0345-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch b/kernel/patches-4.14.x-rt/0346-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch similarity index 88% rename from kernel/patches-4.14.x-rt/0345-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch rename to kernel/patches-4.14.x-rt/0346-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch index 07b4b622b..e7dff17b0 100644 --- a/kernel/patches-4.14.x-rt/0345-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch +++ b/kernel/patches-4.14.x-rt/0346-KVM-arm-arm64-downgrade-preempt_disable-d-region-to-.patch @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior --- a/virt/kvm/arm/arm.c +++ b/virt/kvm/arm/arm.c -@@ -646,7 +646,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v +@@ -651,7 +651,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v * involves poking the GIC, which must be done in a * non-preemptible context. */ @@ -31,7 +31,7 @@ Signed-off-by: Sebastian Andrzej Siewior kvm_pmu_flush_hwstate(vcpu); -@@ -683,7 +683,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v +@@ -688,7 +688,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v kvm_pmu_sync_hwstate(vcpu); kvm_timer_sync_hwstate(vcpu); kvm_vgic_sync_hwstate(vcpu); @@ -40,7 +40,7 @@ Signed-off-by: Sebastian Andrzej Siewior continue; } -@@ -738,7 +738,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v +@@ -743,7 +743,7 @@ int kvm_arch_vcpu_ioctl_run(struct kvm_v kvm_vgic_sync_hwstate(vcpu); diff --git a/kernel/patches-4.14.x-rt/0346-arm64-xen--Make-XEN-depend-on-non-rt.patch b/kernel/patches-4.14.x-rt/0347-arm64-xen--Make-XEN-depend-on-non-rt.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0346-arm64-xen--Make-XEN-depend-on-non-rt.patch rename to kernel/patches-4.14.x-rt/0347-arm64-xen--Make-XEN-depend-on-non-rt.patch diff --git a/kernel/patches-4.14.x-rt/0347-kgb-serial-hackaround.patch b/kernel/patches-4.14.x-rt/0348-kgb-serial-hackaround.patch similarity index 97% rename from kernel/patches-4.14.x-rt/0347-kgb-serial-hackaround.patch rename to kernel/patches-4.14.x-rt/0348-kgb-serial-hackaround.patch index 03e339253..e700ffe15 100644 --- a/kernel/patches-4.14.x-rt/0347-kgb-serial-hackaround.patch +++ b/kernel/patches-4.14.x-rt/0348-kgb-serial-hackaround.patch @@ -33,7 +33,7 @@ Jason. #include #include #include -@@ -3252,6 +3253,8 @@ void serial8250_console_write(struct uar +@@ -3226,6 +3227,8 @@ void serial8250_console_write(struct uar if (port->sysrq || oops_in_progress) locked = 0; diff --git a/kernel/patches-4.14.x-rt/0348-sysfs-realtime-entry.patch b/kernel/patches-4.14.x-rt/0349-sysfs-realtime-entry.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0348-sysfs-realtime-entry.patch rename to kernel/patches-4.14.x-rt/0349-sysfs-realtime-entry.patch diff --git a/kernel/patches-4.14.x-rt/0349-power-disable-highmem-on-rt.patch b/kernel/patches-4.14.x-rt/0350-power-disable-highmem-on-rt.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0349-power-disable-highmem-on-rt.patch rename to kernel/patches-4.14.x-rt/0350-power-disable-highmem-on-rt.patch diff --git a/kernel/patches-4.14.x-rt/0350-mips-disable-highmem-on-rt.patch b/kernel/patches-4.14.x-rt/0351-mips-disable-highmem-on-rt.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0350-mips-disable-highmem-on-rt.patch rename to kernel/patches-4.14.x-rt/0351-mips-disable-highmem-on-rt.patch diff --git a/kernel/patches-4.14.x-rt/0351-mm-rt-kmap-atomic-scheduling.patch b/kernel/patches-4.14.x-rt/0352-mm-rt-kmap-atomic-scheduling.patch similarity index 99% rename from kernel/patches-4.14.x-rt/0351-mm-rt-kmap-atomic-scheduling.patch rename to kernel/patches-4.14.x-rt/0352-mm-rt-kmap-atomic-scheduling.patch index a4c4786a4..5e40984ec 100644 --- a/kernel/patches-4.14.x-rt/0351-mm-rt-kmap-atomic-scheduling.patch +++ b/kernel/patches-4.14.x-rt/0352-mm-rt-kmap-atomic-scheduling.patch @@ -229,7 +229,7 @@ Link: http://lkml.kernel.org/r/1311842631.5890.208.camel@twins /* task_struct member predeclarations (sorted alphabetically): */ struct audit_context; -@@ -1110,6 +1111,12 @@ struct task_struct { +@@ -1113,6 +1114,12 @@ struct task_struct { int softirq_nestcnt; unsigned int softirqs_raised; #endif diff --git a/kernel/patches-4.14.x-rt/0352-mm--rt--Fix-generic-kmap_atomic-for-RT.patch b/kernel/patches-4.14.x-rt/0353-mm--rt--Fix-generic-kmap_atomic-for-RT.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0352-mm--rt--Fix-generic-kmap_atomic-for-RT.patch rename to kernel/patches-4.14.x-rt/0353-mm--rt--Fix-generic-kmap_atomic-for-RT.patch diff --git a/kernel/patches-4.14.x-rt/0353-x86-highmem-add-a-already-used-pte-check.patch b/kernel/patches-4.14.x-rt/0354-x86-highmem-add-a-already-used-pte-check.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0353-x86-highmem-add-a-already-used-pte-check.patch rename to kernel/patches-4.14.x-rt/0354-x86-highmem-add-a-already-used-pte-check.patch diff --git a/kernel/patches-4.14.x-rt/0354-arm-highmem-flush-tlb-on-unmap.patch b/kernel/patches-4.14.x-rt/0355-arm-highmem-flush-tlb-on-unmap.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0354-arm-highmem-flush-tlb-on-unmap.patch rename to kernel/patches-4.14.x-rt/0355-arm-highmem-flush-tlb-on-unmap.patch diff --git a/kernel/patches-4.14.x-rt/0355-arm-enable-highmem-for-rt.patch b/kernel/patches-4.14.x-rt/0356-arm-enable-highmem-for-rt.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0355-arm-enable-highmem-for-rt.patch rename to kernel/patches-4.14.x-rt/0356-arm-enable-highmem-for-rt.patch diff --git a/kernel/patches-4.14.x-rt/0356-scsi-fcoe-rt-aware.patch b/kernel/patches-4.14.x-rt/0357-scsi-fcoe-rt-aware.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0356-scsi-fcoe-rt-aware.patch rename to kernel/patches-4.14.x-rt/0357-scsi-fcoe-rt-aware.patch diff --git a/kernel/patches-4.14.x-rt/0357-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch b/kernel/patches-4.14.x-rt/0358-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0357-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch rename to kernel/patches-4.14.x-rt/0358-sas-ata-isci-dont-t-disable-interrupts-in-qc_issue-h.patch diff --git a/kernel/patches-4.14.x-rt/0358-x86-crypto-reduce-preempt-disabled-regions.patch b/kernel/patches-4.14.x-rt/0359-x86-crypto-reduce-preempt-disabled-regions.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0358-x86-crypto-reduce-preempt-disabled-regions.patch rename to kernel/patches-4.14.x-rt/0359-x86-crypto-reduce-preempt-disabled-regions.patch diff --git a/kernel/patches-4.14.x-rt/0359-crypto-Reduce-preempt-disabled-regions-more-algos.patch b/kernel/patches-4.14.x-rt/0360-crypto-Reduce-preempt-disabled-regions-more-algos.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0359-crypto-Reduce-preempt-disabled-regions-more-algos.patch rename to kernel/patches-4.14.x-rt/0360-crypto-Reduce-preempt-disabled-regions-more-algos.patch diff --git a/kernel/patches-4.14.x-rt/0360-crypto-limit-more-FPU-enabled-sections.patch b/kernel/patches-4.14.x-rt/0361-crypto-limit-more-FPU-enabled-sections.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0360-crypto-limit-more-FPU-enabled-sections.patch rename to kernel/patches-4.14.x-rt/0361-crypto-limit-more-FPU-enabled-sections.patch diff --git a/kernel/patches-4.14.x-rt/0361-arm-disable-NEON-in-kernel-mode.patch b/kernel/patches-4.14.x-rt/0362-arm-disable-NEON-in-kernel-mode.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0361-arm-disable-NEON-in-kernel-mode.patch rename to kernel/patches-4.14.x-rt/0362-arm-disable-NEON-in-kernel-mode.patch diff --git a/kernel/patches-4.14.x-rt/0362-dm-make-rt-aware.patch b/kernel/patches-4.14.x-rt/0363-dm-make-rt-aware.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0362-dm-make-rt-aware.patch rename to kernel/patches-4.14.x-rt/0363-dm-make-rt-aware.patch diff --git a/kernel/patches-4.14.x-rt/0363-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch b/kernel/patches-4.14.x-rt/0364-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0363-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch rename to kernel/patches-4.14.x-rt/0364-acpi-rt-Convert-acpi_gbl_hardware-lock-back-to-a-raw.patch diff --git a/kernel/patches-4.14.x-rt/0364-cpumask-disable-offstack-on-rt.patch b/kernel/patches-4.14.x-rt/0365-cpumask-disable-offstack-on-rt.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0364-cpumask-disable-offstack-on-rt.patch rename to kernel/patches-4.14.x-rt/0365-cpumask-disable-offstack-on-rt.patch diff --git a/kernel/patches-4.14.x-rt/0365-random-make-it-work-on-rt.patch b/kernel/patches-4.14.x-rt/0366-random-make-it-work-on-rt.patch similarity index 98% rename from kernel/patches-4.14.x-rt/0365-random-make-it-work-on-rt.patch rename to kernel/patches-4.14.x-rt/0366-random-make-it-work-on-rt.patch index 8bcc2bcdf..30054353f 100644 --- a/kernel/patches-4.14.x-rt/0365-random-make-it-work-on-rt.patch +++ b/kernel/patches-4.14.x-rt/0366-random-make-it-work-on-rt.patch @@ -20,7 +20,7 @@ Signed-off-by: Thomas Gleixner --- a/drivers/char/random.c +++ b/drivers/char/random.c -@@ -1112,28 +1112,27 @@ static __u32 get_reg(struct fast_pool *f +@@ -1218,28 +1218,27 @@ static __u32 get_reg(struct fast_pool *f return *ptr; } diff --git a/kernel/patches-4.14.x-rt/0366-random-avoid-preempt_disable-ed-section.patch b/kernel/patches-4.14.x-rt/0367-random-avoid-preempt_disable-ed-section.patch similarity index 89% rename from kernel/patches-4.14.x-rt/0366-random-avoid-preempt_disable-ed-section.patch rename to kernel/patches-4.14.x-rt/0367-random-avoid-preempt_disable-ed-section.patch index 5a6ac57fc..179a589af 100644 --- a/kernel/patches-4.14.x-rt/0366-random-avoid-preempt_disable-ed-section.patch +++ b/kernel/patches-4.14.x-rt/0367-random-avoid-preempt_disable-ed-section.patch @@ -14,7 +14,7 @@ Signed-off-by: Sebastian Andrzej Siewior --- a/drivers/char/random.c +++ b/drivers/char/random.c -@@ -264,6 +264,7 @@ +@@ -265,6 +265,7 @@ #include #include #include @@ -22,7 +22,7 @@ Signed-off-by: Sebastian Andrzej Siewior #include #include -@@ -2086,6 +2087,7 @@ static rwlock_t batched_entropy_reset_lo +@@ -2188,6 +2189,7 @@ static rwlock_t batched_entropy_reset_lo * at any point prior. */ static DEFINE_PER_CPU(struct batched_entropy, batched_entropy_u64); @@ -30,7 +30,7 @@ Signed-off-by: Sebastian Andrzej Siewior u64 get_random_u64(void) { u64 ret; -@@ -2106,7 +2108,7 @@ u64 get_random_u64(void) +@@ -2208,7 +2210,7 @@ u64 get_random_u64(void) warn_unseeded_randomness(&previous); use_lock = READ_ONCE(crng_init) < 2; @@ -39,7 +39,7 @@ Signed-off-by: Sebastian Andrzej Siewior if (use_lock) read_lock_irqsave(&batched_entropy_reset_lock, flags); if (batch->position % ARRAY_SIZE(batch->entropy_u64) == 0) { -@@ -2116,12 +2118,13 @@ u64 get_random_u64(void) +@@ -2218,12 +2220,13 @@ u64 get_random_u64(void) ret = batch->entropy_u64[batch->position++]; if (use_lock) read_unlock_irqrestore(&batched_entropy_reset_lock, flags); @@ -54,7 +54,7 @@ Signed-off-by: Sebastian Andrzej Siewior u32 get_random_u32(void) { u32 ret; -@@ -2136,7 +2139,7 @@ u32 get_random_u32(void) +@@ -2238,7 +2241,7 @@ u32 get_random_u32(void) warn_unseeded_randomness(&previous); use_lock = READ_ONCE(crng_init) < 2; @@ -63,7 +63,7 @@ Signed-off-by: Sebastian Andrzej Siewior if (use_lock) read_lock_irqsave(&batched_entropy_reset_lock, flags); if (batch->position % ARRAY_SIZE(batch->entropy_u32) == 0) { -@@ -2146,7 +2149,7 @@ u32 get_random_u32(void) +@@ -2248,7 +2251,7 @@ u32 get_random_u32(void) ret = batch->entropy_u32[batch->position++]; if (use_lock) read_unlock_irqrestore(&batched_entropy_reset_lock, flags); diff --git a/kernel/patches-4.14.x-rt/0367-char-random-don-t-print-that-the-init-is-done.patch b/kernel/patches-4.14.x-rt/0368-char-random-don-t-print-that-the-init-is-done.patch similarity index 89% rename from kernel/patches-4.14.x-rt/0367-char-random-don-t-print-that-the-init-is-done.patch rename to kernel/patches-4.14.x-rt/0368-char-random-don-t-print-that-the-init-is-done.patch index 483ed2461..4382eaeea 100644 --- a/kernel/patches-4.14.x-rt/0367-char-random-don-t-print-that-the-init-is-done.patch +++ b/kernel/patches-4.14.x-rt/0368-char-random-don-t-print-that-the-init-is-done.patch @@ -141,12 +141,12 @@ also could skip it. Signed-off-by: Sebastian Andrzej Siewior --- - drivers/char/random.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) + drivers/char/random.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) --- a/drivers/char/random.c +++ b/drivers/char/random.c -@@ -808,7 +808,7 @@ static int crng_fast_load(const char *cp +@@ -857,7 +857,7 @@ static int crng_fast_load(const char *cp invalidate_batched_entropy(); crng_init = 1; wake_up_interruptible(&crng_init_wait); @@ -155,12 +155,26 @@ Signed-off-by: Sebastian Andrzej Siewior } return 1; } -@@ -847,7 +847,7 @@ static void crng_reseed(struct crng_stat +@@ -942,17 +942,21 @@ static void crng_reseed(struct crng_stat crng_init = 2; process_random_ready_list(); wake_up_interruptible(&crng_init_wait); - pr_notice("random: crng init done\n"); + /* pr_notice("random: crng init done\n"); */ + if (unseeded_warning.missed) { ++#if 0 + pr_notice("random: %d get_random_xx warning(s) missed " + "due to ratelimiting\n", + unseeded_warning.missed); ++#endif + unseeded_warning.missed = 0; + } + if (urandom_warning.missed) { ++#if 0 + pr_notice("random: %d urandom warning(s) missed " + "due to ratelimiting\n", + urandom_warning.missed); ++#endif + urandom_warning.missed = 0; + } } - } - diff --git a/kernel/patches-4.14.x-rt/0368-cpu-hotplug--Implement-CPU-pinning.patch b/kernel/patches-4.14.x-rt/0369-cpu-hotplug--Implement-CPU-pinning.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0368-cpu-hotplug--Implement-CPU-pinning.patch rename to kernel/patches-4.14.x-rt/0369-cpu-hotplug--Implement-CPU-pinning.patch diff --git a/kernel/patches-4.14.x-rt/0369-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch b/kernel/patches-4.14.x-rt/0370-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0369-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch rename to kernel/patches-4.14.x-rt/0370-hotplug-duct-tape-RT-rwlock-usage-for-non-RT.patch diff --git a/kernel/patches-4.14.x-rt/0370-scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch b/kernel/patches-4.14.x-rt/0371-scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0370-scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch rename to kernel/patches-4.14.x-rt/0371-scsi-qla2xxx-fix-bug-sleeping-function-called-from-invalid-context.patch diff --git a/kernel/patches-4.14.x-rt/0371-upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch b/kernel/patches-4.14.x-rt/0372-upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0371-upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch rename to kernel/patches-4.14.x-rt/0372-upstream-net-rt-remove-preemption-disabling-in-netif_rx.patch diff --git a/kernel/patches-4.14.x-rt/0372-net-another-local-irq-disable-alloc-atomic-headache.patch b/kernel/patches-4.14.x-rt/0373-net-another-local-irq-disable-alloc-atomic-headache.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0372-net-another-local-irq-disable-alloc-atomic-headache.patch rename to kernel/patches-4.14.x-rt/0373-net-another-local-irq-disable-alloc-atomic-headache.patch diff --git a/kernel/patches-4.14.x-rt/0373-net-core-protect-users-of-napi_alloc_cache-against-r.patch b/kernel/patches-4.14.x-rt/0374-net-core-protect-users-of-napi_alloc_cache-against-r.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0373-net-core-protect-users-of-napi_alloc_cache-against-r.patch rename to kernel/patches-4.14.x-rt/0374-net-core-protect-users-of-napi_alloc_cache-against-r.patch diff --git a/kernel/patches-4.14.x-rt/0374-net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch b/kernel/patches-4.14.x-rt/0375-net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch similarity index 91% rename from kernel/patches-4.14.x-rt/0374-net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch rename to kernel/patches-4.14.x-rt/0375-net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch index beab1edb3..d39c9aff7 100644 --- a/kernel/patches-4.14.x-rt/0374-net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch +++ b/kernel/patches-4.14.x-rt/0375-net-fix-iptable-xt-write-recseq-begin-rt-fallout.patch @@ -24,7 +24,7 @@ Signed-off-by: Thomas Gleixner #include /* Test a struct->invflags and a boolean for inequality */ -@@ -340,6 +341,8 @@ void xt_free_table_info(struct xt_table_ +@@ -341,6 +342,8 @@ void xt_free_table_info(struct xt_table_ */ DECLARE_PER_CPU(seqcount_t, xt_recseq); @@ -33,7 +33,7 @@ Signed-off-by: Thomas Gleixner /* xt_tee_enabled - true if x_tables needs to handle reentrancy * * Enabled if current ip(6)tables ruleset has at least one -j TEE rule. -@@ -360,6 +363,9 @@ static inline unsigned int xt_write_recs +@@ -361,6 +364,9 @@ static inline unsigned int xt_write_recs { unsigned int addend; @@ -43,7 +43,7 @@ Signed-off-by: Thomas Gleixner /* * Low order bit of sequence is set if we already * called xt_write_recseq_begin(). -@@ -390,6 +396,7 @@ static inline void xt_write_recseq_end(u +@@ -391,6 +397,7 @@ static inline void xt_write_recseq_end(u /* this is kind of a write_seqcount_end(), but addend is 0 or 1 */ smp_wmb(); __this_cpu_add(xt_recseq.sequence, addend); diff --git a/kernel/patches-4.14.x-rt/0375-net-make-devnet_rename_seq-a-mutex.patch b/kernel/patches-4.14.x-rt/0376-net-make-devnet_rename_seq-a-mutex.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0375-net-make-devnet_rename_seq-a-mutex.patch rename to kernel/patches-4.14.x-rt/0376-net-make-devnet_rename_seq-a-mutex.patch diff --git a/kernel/patches-4.14.x-rt/0376-peterz-srcu-crypto-chain.patch b/kernel/patches-4.14.x-rt/0377-peterz-srcu-crypto-chain.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0376-peterz-srcu-crypto-chain.patch rename to kernel/patches-4.14.x-rt/0377-peterz-srcu-crypto-chain.patch diff --git a/kernel/patches-4.14.x-rt/0377-lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch b/kernel/patches-4.14.x-rt/0378-lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0377-lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch rename to kernel/patches-4.14.x-rt/0378-lockdep-selftest-only-do-hardirq-context-test-for-raw-spinlock.patch diff --git a/kernel/patches-4.14.x-rt/0378-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch b/kernel/patches-4.14.x-rt/0379-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0378-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch rename to kernel/patches-4.14.x-rt/0379-lockdep-selftest-fix-warnings-due-to-missing-PREEMPT.patch diff --git a/kernel/patches-4.14.x-rt/0379-srcu-use-cpu_online-instead-custom-check.patch b/kernel/patches-4.14.x-rt/0380-srcu-use-cpu_online-instead-custom-check.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0379-srcu-use-cpu_online-instead-custom-check.patch rename to kernel/patches-4.14.x-rt/0380-srcu-use-cpu_online-instead-custom-check.patch diff --git a/kernel/patches-4.14.x-rt/0380-srcu-Prohibit-call_srcu-use-under-raw-spinlocks.patch b/kernel/patches-4.14.x-rt/0381-srcu-Prohibit-call_srcu-use-under-raw-spinlocks.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0380-srcu-Prohibit-call_srcu-use-under-raw-spinlocks.patch rename to kernel/patches-4.14.x-rt/0381-srcu-Prohibit-call_srcu-use-under-raw-spinlocks.patch diff --git a/kernel/patches-4.14.x-rt/0381-srcu-replace-local_irqsave-with-a-locallock.patch b/kernel/patches-4.14.x-rt/0382-srcu-replace-local_irqsave-with-a-locallock.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0381-srcu-replace-local_irqsave-with-a-locallock.patch rename to kernel/patches-4.14.x-rt/0382-srcu-replace-local_irqsave-with-a-locallock.patch diff --git a/kernel/patches-4.14.x-rt/0382-rcu-disable-rcu-fast-no-hz-on-rt.patch b/kernel/patches-4.14.x-rt/0383-rcu-disable-rcu-fast-no-hz-on-rt.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0382-rcu-disable-rcu-fast-no-hz-on-rt.patch rename to kernel/patches-4.14.x-rt/0383-rcu-disable-rcu-fast-no-hz-on-rt.patch diff --git a/kernel/patches-4.14.x-rt/0383-rcu-Eliminate-softirq-processing-from-rcutree.patch b/kernel/patches-4.14.x-rt/0384-rcu-Eliminate-softirq-processing-from-rcutree.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0383-rcu-Eliminate-softirq-processing-from-rcutree.patch rename to kernel/patches-4.14.x-rt/0384-rcu-Eliminate-softirq-processing-from-rcutree.patch diff --git a/kernel/patches-4.14.x-rt/0384-rcu-make-RCU_BOOST-default-on-RT.patch b/kernel/patches-4.14.x-rt/0385-rcu-make-RCU_BOOST-default-on-RT.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0384-rcu-make-RCU_BOOST-default-on-RT.patch rename to kernel/patches-4.14.x-rt/0385-rcu-make-RCU_BOOST-default-on-RT.patch diff --git a/kernel/patches-4.14.x-rt/0385-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch b/kernel/patches-4.14.x-rt/0386-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0385-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch rename to kernel/patches-4.14.x-rt/0386-rcu-enable-rcu_normal_after_boot-by-default-for-RT.patch diff --git a/kernel/patches-4.14.x-rt/0386-preempt-lazy-support.patch b/kernel/patches-4.14.x-rt/0387-preempt-lazy-support.patch similarity index 99% rename from kernel/patches-4.14.x-rt/0386-preempt-lazy-support.patch rename to kernel/patches-4.14.x-rt/0387-preempt-lazy-support.patch index ec91b73dd..a6e1a6f90 100644 --- a/kernel/patches-4.14.x-rt/0386-preempt-lazy-support.patch +++ b/kernel/patches-4.14.x-rt/0387-preempt-lazy-support.patch @@ -140,7 +140,7 @@ Signed-off-by: Thomas Gleixner --- a/include/linux/sched.h +++ b/include/linux/sched.h -@@ -1610,6 +1610,44 @@ static inline int test_tsk_need_resched( +@@ -1613,6 +1613,44 @@ static inline int test_tsk_need_resched( return unlikely(test_tsk_thread_flag(tsk,TIF_NEED_RESCHED)); } diff --git a/kernel/patches-4.14.x-rt/0387-ftrace-Fix-trace-header-alignment.patch b/kernel/patches-4.14.x-rt/0388-ftrace-Fix-trace-header-alignment.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0387-ftrace-Fix-trace-header-alignment.patch rename to kernel/patches-4.14.x-rt/0388-ftrace-Fix-trace-header-alignment.patch diff --git a/kernel/patches-4.14.x-rt/0388-x86-preempt-lazy.patch b/kernel/patches-4.14.x-rt/0389-x86-preempt-lazy.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0388-x86-preempt-lazy.patch rename to kernel/patches-4.14.x-rt/0389-x86-preempt-lazy.patch diff --git a/kernel/patches-4.14.x-rt/0389-arm-preempt-lazy-support.patch b/kernel/patches-4.14.x-rt/0390-arm-preempt-lazy-support.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0389-arm-preempt-lazy-support.patch rename to kernel/patches-4.14.x-rt/0390-arm-preempt-lazy-support.patch diff --git a/kernel/patches-4.14.x-rt/0390-powerpc-preempt-lazy-support.patch b/kernel/patches-4.14.x-rt/0391-powerpc-preempt-lazy-support.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0390-powerpc-preempt-lazy-support.patch rename to kernel/patches-4.14.x-rt/0391-powerpc-preempt-lazy-support.patch diff --git a/kernel/patches-4.14.x-rt/0391-arch-arm64-Add-lazy-preempt-support.patch b/kernel/patches-4.14.x-rt/0392-arch-arm64-Add-lazy-preempt-support.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0391-arch-arm64-Add-lazy-preempt-support.patch rename to kernel/patches-4.14.x-rt/0392-arch-arm64-Add-lazy-preempt-support.patch diff --git a/kernel/patches-4.14.x-rt/0392-leds-trigger-disable-CPU-trigger-on-RT.patch b/kernel/patches-4.14.x-rt/0393-leds-trigger-disable-CPU-trigger-on-RT.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0392-leds-trigger-disable-CPU-trigger-on-RT.patch rename to kernel/patches-4.14.x-rt/0393-leds-trigger-disable-CPU-trigger-on-RT.patch diff --git a/kernel/patches-4.14.x-rt/0393-mmci-remove-bogus-irq-save.patch b/kernel/patches-4.14.x-rt/0394-mmci-remove-bogus-irq-save.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0393-mmci-remove-bogus-irq-save.patch rename to kernel/patches-4.14.x-rt/0394-mmci-remove-bogus-irq-save.patch diff --git a/kernel/patches-4.14.x-rt/0394-cpufreq-drop-K8-s-driver-from-beeing-selected.patch b/kernel/patches-4.14.x-rt/0395-cpufreq-drop-K8-s-driver-from-beeing-selected.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0394-cpufreq-drop-K8-s-driver-from-beeing-selected.patch rename to kernel/patches-4.14.x-rt/0395-cpufreq-drop-K8-s-driver-from-beeing-selected.patch diff --git a/kernel/patches-4.14.x-rt/0395-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch b/kernel/patches-4.14.x-rt/0396-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0395-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch rename to kernel/patches-4.14.x-rt/0396-connector-cn_proc-Protect-send_msg-with-a-local-lock.patch diff --git a/kernel/patches-4.14.x-rt/0396-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch b/kernel/patches-4.14.x-rt/0397-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0396-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch rename to kernel/patches-4.14.x-rt/0397-drivers-block-zram-Replace-bit-spinlocks-with-rtmute.patch diff --git a/kernel/patches-4.14.x-rt/0397-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch b/kernel/patches-4.14.x-rt/0398-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0397-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch rename to kernel/patches-4.14.x-rt/0398-drivers-zram-Don-t-disable-preemption-in-zcomp_strea.patch diff --git a/kernel/patches-4.14.x-rt/0398-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch b/kernel/patches-4.14.x-rt/0399-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0398-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch rename to kernel/patches-4.14.x-rt/0399-drivers-zram-fix-zcomp_stream_get-smp_processor_id-u.patch diff --git a/kernel/patches-4.14.x-rt/0399-tpm_tis-fix-stall-after-iowrite-s.patch b/kernel/patches-4.14.x-rt/0400-tpm_tis-fix-stall-after-iowrite-s.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0399-tpm_tis-fix-stall-after-iowrite-s.patch rename to kernel/patches-4.14.x-rt/0400-tpm_tis-fix-stall-after-iowrite-s.patch diff --git a/kernel/patches-4.14.x-rt/0400-pci-switchtec-Don-t-use-completion-s-wait-queue.patch b/kernel/patches-4.14.x-rt/0401-pci-switchtec-Don-t-use-completion-s-wait-queue.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0400-pci-switchtec-Don-t-use-completion-s-wait-queue.patch rename to kernel/patches-4.14.x-rt/0401-pci-switchtec-Don-t-use-completion-s-wait-queue.patch diff --git a/kernel/patches-4.14.x-rt/0401-drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch b/kernel/patches-4.14.x-rt/0402-drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0401-drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch rename to kernel/patches-4.14.x-rt/0402-drmradeoni915_Use_preempt_disableenable_rt()_where_recommended.patch diff --git a/kernel/patches-4.14.x-rt/0402-drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch b/kernel/patches-4.14.x-rt/0403-drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch similarity index 100% rename from kernel/patches-4.14.x-rt/0402-drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch rename to kernel/patches-4.14.x-rt/0403-drmi915_Use_local_lockunlock_irq()_in_intel_pipe_update_startend().patch diff --git a/kernel/patches-4.14.x-rt/0403-cgroups-use-simple-wait-in-css_release.patch b/kernel/patches-4.14.x-rt/0404-cgroups-use-simple-wait-in-css_release.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0403-cgroups-use-simple-wait-in-css_release.patch rename to kernel/patches-4.14.x-rt/0404-cgroups-use-simple-wait-in-css_release.patch diff --git a/kernel/patches-4.14.x-rt/0404-cgroups-scheduling-while-atomic-in-cgroup-code.patch b/kernel/patches-4.14.x-rt/0405-cgroups-scheduling-while-atomic-in-cgroup-code.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0404-cgroups-scheduling-while-atomic-in-cgroup-code.patch rename to kernel/patches-4.14.x-rt/0405-cgroups-scheduling-while-atomic-in-cgroup-code.patch diff --git a/kernel/patches-4.14.x-rt/0405-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch b/kernel/patches-4.14.x-rt/0406-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0405-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch rename to kernel/patches-4.14.x-rt/0406-Revert-memcontrol-Prevent-scheduling-while-atomic-in.patch diff --git a/kernel/patches-4.14.x-rt/0406-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch b/kernel/patches-4.14.x-rt/0407-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0406-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch rename to kernel/patches-4.14.x-rt/0407-cpuset-Convert-callback_lock-to-raw_spinlock_t.patch diff --git a/kernel/patches-4.14.x-rt/0407-move_sched_delayed_work_to_helper.patch b/kernel/patches-4.14.x-rt/0408-move_sched_delayed_work_to_helper.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0407-move_sched_delayed_work_to_helper.patch rename to kernel/patches-4.14.x-rt/0408-move_sched_delayed_work_to_helper.patch diff --git a/kernel/patches-4.14.x-rt/0408-Revert-rt-ntp-Move-call-to-schedule_delayed_work-to-.patch b/kernel/patches-4.14.x-rt/0409-Revert-rt-ntp-Move-call-to-schedule_delayed_work-to-.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0408-Revert-rt-ntp-Move-call-to-schedule_delayed_work-to-.patch rename to kernel/patches-4.14.x-rt/0409-Revert-rt-ntp-Move-call-to-schedule_delayed_work-to-.patch diff --git a/kernel/patches-4.14.x-rt/0409-md-disable-bcache.patch b/kernel/patches-4.14.x-rt/0410-md-disable-bcache.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0409-md-disable-bcache.patch rename to kernel/patches-4.14.x-rt/0410-md-disable-bcache.patch diff --git a/kernel/patches-4.14.x-rt/0410-apparmor-use-a-locallock-instead-preempt_disable.patch b/kernel/patches-4.14.x-rt/0411-apparmor-use-a-locallock-instead-preempt_disable.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0410-apparmor-use-a-locallock-instead-preempt_disable.patch rename to kernel/patches-4.14.x-rt/0411-apparmor-use-a-locallock-instead-preempt_disable.patch diff --git a/kernel/patches-4.14.x-rt/0411-workqueue-prevent-deadlock-stall.patch b/kernel/patches-4.14.x-rt/0412-workqueue-prevent-deadlock-stall.patch similarity index 100% rename from kernel/patches-4.14.x-rt/0411-workqueue-prevent-deadlock-stall.patch rename to kernel/patches-4.14.x-rt/0412-workqueue-prevent-deadlock-stall.patch diff --git a/kernel/patches-4.14.x-rt/0412-localversion.patch b/kernel/patches-4.14.x-rt/0413-localversion.patch similarity index 97% rename from kernel/patches-4.14.x-rt/0412-localversion.patch rename to kernel/patches-4.14.x-rt/0413-localversion.patch index 71c13974c..20f03714e 100644 --- a/kernel/patches-4.14.x-rt/0412-localversion.patch +++ b/kernel/patches-4.14.x-rt/0413-localversion.patch @@ -10,4 +10,4 @@ Signed-off-by: Thomas Gleixner --- /dev/null +++ b/localversion-rt @@ -0,0 +1 @@ -+-rt27 ++-rt29