diff options
author | V3n3RiX <venerix@redcorelinux.org> | 2019-01-05 21:06:28 +0000 |
---|---|---|
committer | V3n3RiX <venerix@redcorelinux.org> | 2019-01-05 21:06:28 +0000 |
commit | 5a86e6c1088164717ba4ee15bd1a1c10783e6f65 (patch) | |
tree | 7b45374f7a0ad5a3b3ace5e2e53cdc01d914cec3 | |
parent | 961e47eb129d348579bf2dd6e261f158f705d838 (diff) |
sys-kernel/linux-{image,sources}-redcore-lts : version bump to 4.14.90
10 files changed, 304 insertions, 314 deletions
diff --git a/sys-kernel/linux-image-redcore-lts/Manifest b/sys-kernel/linux-image-redcore-lts/Manifest index 48f87643..ce5c5ca8 100644 --- a/sys-kernel/linux-image-redcore-lts/Manifest +++ b/sys-kernel/linux-image-redcore-lts/Manifest @@ -1 +1 @@ -DIST linux-4.14.75.tar.xz 100992748 BLAKE2B febb717f667f380b4c39a06c0bb522181dc7f16fd21e86794589cef8b4de1b064c216e5e51aa6b4bfb2deead6263b76ecce3bfc480126bdf9840d17c9ba590b9 SHA512 d6d75a89fd0aed92d3dae4e651273a5b2fec242e49ba6fd71cf642c32e346fb6be083b3c9d1f77fc6ded9531d9f1efd82041f28b12f71eaf2c53d16c071e6703 +DIST linux-4.14.90.tar.xz 101040436 BLAKE2B 09a86e08150b3c01734078e3525a4cef16ee390ea7ba464152d4c886caafe078009a3fae265f626541240a542d7bc43944a102caa2ed067a002d5b687dde6f84 SHA512 df744c138d48f3a711a9abe9908da4cc115091c090f8a9cb13259677572a995361de42710052d6654a28dec0b104ca5c3e9a54dea98a961ec91217cd72dbe58e diff --git a/sys-kernel/linux-image-redcore-lts/files/0001-MuQSS-version-0.162-CPU-scheduler-linux-hardened.patch b/sys-kernel/linux-image-redcore-lts/files/0001-MuQSS-version-0.162-CPU-scheduler-linux-hardened.patch index 8f2c8783..a81dbeac 100644 --- a/sys-kernel/linux-image-redcore-lts/files/0001-MuQSS-version-0.162-CPU-scheduler-linux-hardened.patch +++ b/sys-kernel/linux-image-redcore-lts/files/0001-MuQSS-version-0.162-CPU-scheduler-linux-hardened.patch @@ -1,6 +1,6 @@ diff -Nur a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c ---- a/arch/powerpc/platforms/cell/spufs/sched.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/arch/powerpc/platforms/cell/spufs/sched.c 2018-11-03 16:06:32.704528679 +0000 +--- a/arch/powerpc/platforms/cell/spufs/sched.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/arch/powerpc/platforms/cell/spufs/sched.c 2019-01-05 20:22:51.089998199 +0000 @@ -65,11 +65,6 @@ static struct timer_list spuloadavg_timer; @@ -14,16 +14,11 @@ diff -Nur a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/c * tick for every 10 CPU scheduler ticks. */ diff -Nur a/arch/x86/Kconfig b/arch/x86/Kconfig ---- a/arch/x86/Kconfig 2018-11-03 16:00:51.897619785 +0000 -+++ b/arch/x86/Kconfig 2018-11-03 16:06:32.705528711 +0000 -@@ -963,10 +963,26 @@ - depends on SMP - ---help--- - SMT scheduler support improves the CPU scheduler's decision making -- when dealing with Intel Pentium 4 chips with HyperThreading at a -+ when dealing with Intel P4/Core 2 chips with HyperThreading at a - cost of slightly increased overhead in some places. If unsure say - N here. +--- a/arch/x86/Kconfig 2019-01-05 20:17:13.829237906 +0000 ++++ b/arch/x86/Kconfig 2019-01-05 20:30:14.244135060 +0000 +@@ -957,6 +957,20 @@ + config SCHED_SMT + def_bool y if SMP +config SMT_NICE + bool "SMT (Hyperthreading) aware nice priority and policy support" @@ -37,16 +32,14 @@ diff -Nur a/arch/x86/Kconfig b/arch/x86/Kconfig + its hyperthread siblings, maintaining appropriate distribution of + CPU according to nice levels and scheduling policies at the expense + of slightly increased overhead. -+ + If unsure say Y here. + -+ config SCHED_MC def_bool y prompt "Multi-core scheduler support" diff -Nur a/Documentation/scheduler/sched-BFS.txt b/Documentation/scheduler/sched-BFS.txt --- a/Documentation/scheduler/sched-BFS.txt 1970-01-01 01:00:00.000000000 +0100 -+++ b/Documentation/scheduler/sched-BFS.txt 2018-11-03 16:06:32.702528615 +0000 ++++ b/Documentation/scheduler/sched-BFS.txt 2019-01-05 20:22:51.089998199 +0000 @@ -0,0 +1,351 @@ +BFS - The Brain Fuck Scheduler by Con Kolivas. + @@ -401,7 +394,7 @@ diff -Nur a/Documentation/scheduler/sched-BFS.txt b/Documentation/scheduler/sche +Con Kolivas <kernel@kolivas.org> Fri Aug 27 2010 diff -Nur a/Documentation/scheduler/sched-MuQSS.txt b/Documentation/scheduler/sched-MuQSS.txt --- a/Documentation/scheduler/sched-MuQSS.txt 1970-01-01 01:00:00.000000000 +0100 -+++ b/Documentation/scheduler/sched-MuQSS.txt 2018-11-03 16:06:32.702528615 +0000 ++++ b/Documentation/scheduler/sched-MuQSS.txt 2019-01-05 20:22:51.089998199 +0000 @@ -0,0 +1,347 @@ +MuQSS - The Multiple Queue Skiplist Scheduler by Con Kolivas. + @@ -751,8 +744,8 @@ diff -Nur a/Documentation/scheduler/sched-MuQSS.txt b/Documentation/scheduler/sc + +Con Kolivas <kernel@kolivas.org> Sat, 29th October 2016 diff -Nur a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt ---- a/Documentation/sysctl/kernel.txt 2018-11-03 16:00:51.893619657 +0000 -+++ b/Documentation/sysctl/kernel.txt 2018-11-03 16:06:32.703528647 +0000 +--- a/Documentation/sysctl/kernel.txt 2019-01-05 20:17:13.829237906 +0000 ++++ b/Documentation/sysctl/kernel.txt 2019-01-05 20:22:51.089998199 +0000 @@ -39,6 +39,7 @@ - hung_task_timeout_secs - hung_task_warnings @@ -830,8 +823,8 @@ diff -Nur a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt + +============================================================== diff -Nur a/fs/proc/base.c b/fs/proc/base.c ---- a/fs/proc/base.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/fs/proc/base.c 2018-11-03 16:06:32.706528743 +0000 +--- a/fs/proc/base.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/fs/proc/base.c 2019-01-05 20:22:51.089998199 +0000 @@ -481,7 +481,7 @@ seq_printf(m, "0 0 0\n"); else @@ -842,8 +835,8 @@ diff -Nur a/fs/proc/base.c b/fs/proc/base.c task->sched_info.pcount); diff -Nur a/include/linux/init_task.h b/include/linux/init_task.h ---- a/include/linux/init_task.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/init_task.h 2018-11-03 16:06:32.706528743 +0000 +--- a/include/linux/init_task.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/init_task.h 2019-01-05 20:22:51.089998199 +0000 @@ -172,8 +172,6 @@ # define INIT_VTIME(tsk) #endif @@ -944,8 +937,8 @@ diff -Nur a/include/linux/init_task.h b/include/linux/init_task.h /* Attach to the init_task data structure for proper alignment */ #define __init_task_data __attribute__((__section__(".data..init_task"))) diff -Nur a/include/linux/ioprio.h b/include/linux/ioprio.h ---- a/include/linux/ioprio.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/ioprio.h 2018-11-03 16:06:32.706528743 +0000 +--- a/include/linux/ioprio.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/ioprio.h 2019-01-05 20:22:51.089998199 +0000 @@ -52,6 +52,8 @@ */ static inline int task_nice_ioprio(struct task_struct *task) @@ -956,8 +949,8 @@ diff -Nur a/include/linux/ioprio.h b/include/linux/ioprio.h } diff -Nur a/include/linux/sched/nohz.h b/include/linux/sched/nohz.h ---- a/include/linux/sched/nohz.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/sched/nohz.h 2018-11-03 16:06:32.707528775 +0000 +--- a/include/linux/sched/nohz.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/sched/nohz.h 2019-01-05 20:22:51.089998199 +0000 @@ -6,7 +6,7 @@ * This is the interface between the scheduler and nohz/dynticks: */ @@ -977,8 +970,8 @@ diff -Nur a/include/linux/sched/nohz.h b/include/linux/sched/nohz.h void calc_load_nohz_stop(void); #else diff -Nur a/include/linux/sched/prio.h b/include/linux/sched/prio.h ---- a/include/linux/sched/prio.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/sched/prio.h 2018-11-03 16:06:32.707528775 +0000 +--- a/include/linux/sched/prio.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/sched/prio.h 2019-01-05 20:22:51.089998199 +0000 @@ -20,8 +20,20 @@ */ @@ -1001,8 +994,8 @@ diff -Nur a/include/linux/sched/prio.h b/include/linux/sched/prio.h #define DEFAULT_PRIO (MAX_RT_PRIO + NICE_WIDTH / 2) diff -Nur a/include/linux/sched/task.h b/include/linux/sched/task.h ---- a/include/linux/sched/task.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/sched/task.h 2018-11-03 16:06:32.707528775 +0000 +--- a/include/linux/sched/task.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/sched/task.h 2019-01-05 20:22:51.089998199 +0000 @@ -80,7 +80,7 @@ extern void free_task(struct task_struct *tsk); @@ -1013,8 +1006,8 @@ diff -Nur a/include/linux/sched/task.h b/include/linux/sched/task.h #else #define sched_exec() {} diff -Nur a/include/linux/sched.h b/include/linux/sched.h ---- a/include/linux/sched.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/sched.h 2018-11-03 16:06:32.707528775 +0000 +--- a/include/linux/sched.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/sched.h 2019-01-05 20:22:51.089998199 +0000 @@ -27,6 +27,9 @@ #include <linux/signal_types.h> #include <linux/mm_types_task.h> @@ -1118,7 +1111,7 @@ diff -Nur a/include/linux/sched.h b/include/linux/sched.h return task->pids[PIDTYPE_PID].pid; diff -Nur a/include/linux/skip_list.h b/include/linux/skip_list.h --- a/include/linux/skip_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/include/linux/skip_list.h 2018-11-03 16:06:32.708528807 +0000 ++++ b/include/linux/skip_list.h 2019-01-05 20:22:51.089998199 +0000 @@ -0,0 +1,33 @@ +#ifndef _LINUX_SKIP_LISTS_H +#define _LINUX_SKIP_LISTS_H @@ -1154,8 +1147,8 @@ diff -Nur a/include/linux/skip_list.h b/include/linux/skip_list.h +} +#endif /* _LINUX_SKIP_LISTS_H */ diff -Nur a/include/uapi/linux/sched.h b/include/uapi/linux/sched.h ---- a/include/uapi/linux/sched.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/uapi/linux/sched.h 2018-11-03 16:06:32.708528807 +0000 +--- a/include/uapi/linux/sched.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/uapi/linux/sched.h 2019-01-05 20:22:51.089998199 +0000 @@ -37,9 +37,16 @@ #define SCHED_FIFO 1 #define SCHED_RR 2 @@ -1175,8 +1168,8 @@ diff -Nur a/include/uapi/linux/sched.h b/include/uapi/linux/sched.h /* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */ #define SCHED_RESET_ON_FORK 0x40000000 diff -Nur a/init/Kconfig b/init/Kconfig ---- a/init/Kconfig 2018-11-03 16:00:51.921620552 +0000 -+++ b/init/Kconfig 2018-11-03 16:06:32.709528839 +0000 +--- a/init/Kconfig 2019-01-05 20:17:13.849238543 +0000 ++++ b/init/Kconfig 2019-01-05 20:22:51.089998199 +0000 @@ -38,6 +38,18 @@ menu "General setup" @@ -1237,8 +1230,8 @@ diff -Nur a/init/Kconfig b/init/Kconfig select CGROUP_SCHED select FAIR_GROUP_SCHED diff -Nur a/init/main.c b/init/main.c ---- a/init/main.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/init/main.c 2018-11-03 16:06:32.709528839 +0000 +--- a/init/main.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/init/main.c 2019-01-05 20:22:51.089998199 +0000 @@ -841,7 +841,6 @@ return ret; } @@ -1257,8 +1250,8 @@ diff -Nur a/init/main.c b/init/main.c ret = run_init_process(ramdisk_execute_command); if (!ret) diff -Nur a/kernel/delayacct.c b/kernel/delayacct.c ---- a/kernel/delayacct.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/delayacct.c 2018-11-03 16:06:32.710528871 +0000 +--- a/kernel/delayacct.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/delayacct.c 2019-01-05 20:22:51.089998199 +0000 @@ -115,7 +115,7 @@ */ t1 = tsk->sched_info.pcount; @@ -1269,8 +1262,8 @@ diff -Nur a/kernel/delayacct.c b/kernel/delayacct.c d->cpu_count += t1; diff -Nur a/kernel/exit.c b/kernel/exit.c ---- a/kernel/exit.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/exit.c 2018-11-03 16:06:32.710528871 +0000 +--- a/kernel/exit.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/exit.c 2019-01-05 20:22:51.089998199 +0000 @@ -129,7 +129,7 @@ sig->curr_target = next_thread(tsk); } @@ -1290,8 +1283,8 @@ diff -Nur a/kernel/exit.c b/kernel/exit.c __unhash_process(tsk, group_dead); write_sequnlock(&sig->stats_lock); diff -Nur a/kernel/kthread.c b/kernel/kthread.c ---- a/kernel/kthread.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/kthread.c 2018-11-03 16:06:32.711528903 +0000 +--- a/kernel/kthread.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/kthread.c 2019-01-05 20:22:51.099998516 +0000 @@ -410,6 +410,34 @@ } EXPORT_SYMBOL(kthread_bind); @@ -1337,8 +1330,8 @@ diff -Nur a/kernel/kthread.c b/kernel/kthread.c set_bit(KTHREAD_IS_PER_CPU, &to_kthread(p)->flags); to_kthread(p)->cpu = cpu; diff -Nur a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c ---- a/kernel/livepatch/transition.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/livepatch/transition.c 2018-11-03 16:06:32.711528903 +0000 +--- a/kernel/livepatch/transition.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/livepatch/transition.c 2019-01-05 20:22:51.099998516 +0000 @@ -277,6 +277,12 @@ return 0; } @@ -1362,8 +1355,8 @@ diff -Nur a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c bool success = false; char err_buf[STACK_ERR_BUF_SIZE]; diff -Nur a/kernel/Makefile b/kernel/Makefile ---- a/kernel/Makefile 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/Makefile 2018-11-03 16:06:32.709528839 +0000 +--- a/kernel/Makefile 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/Makefile 2019-01-05 20:22:51.099998516 +0000 @@ -10,7 +10,7 @@ extable.o params.o \ kthread.o sys_ni.o nsproxy.o \ @@ -1374,8 +1367,8 @@ diff -Nur a/kernel/Makefile b/kernel/Makefile obj-$(CONFIG_MODULES) += kmod.o obj-$(CONFIG_MULTIUSER) += groups.o diff -Nur a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig ---- a/kernel/rcu/Kconfig 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/rcu/Kconfig 2018-11-03 16:06:32.711528903 +0000 +--- a/kernel/rcu/Kconfig 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/rcu/Kconfig 2019-01-05 20:22:51.099998516 +0000 @@ -93,7 +93,7 @@ config CONTEXT_TRACKING_FORCE bool "Force context tracking" @@ -1386,8 +1379,8 @@ diff -Nur a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig The major pre-requirement for full dynticks to work is to support the context tracking subsystem. But there are also diff -Nur a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c ---- a/kernel/sched/cpufreq_schedutil.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/sched/cpufreq_schedutil.c 2018-11-03 16:06:32.716529064 +0000 +--- a/kernel/sched/cpufreq_schedutil.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/sched/cpufreq_schedutil.c 2019-01-05 20:22:51.099998516 +0000 @@ -176,6 +176,17 @@ return cpufreq_driver_resolve_freq(policy, freq); } @@ -1415,8 +1408,8 @@ diff -Nur a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c static void sugov_set_iowait_boost(struct sugov_cpu *sg_cpu, u64 time, unsigned int flags) diff -Nur a/kernel/sched/cputime.c b/kernel/sched/cputime.c ---- a/kernel/sched/cputime.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/sched/cputime.c 2018-11-03 16:06:32.716529064 +0000 +--- a/kernel/sched/cputime.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/sched/cputime.c 2019-01-05 20:22:51.099998516 +0000 @@ -270,26 +270,6 @@ return accounted; } @@ -1454,8 +1447,8 @@ diff -Nur a/kernel/sched/cputime.c b/kernel/sched/cputime.c task_cputime(p, &cputime.utime, &cputime.stime); diff -Nur a/kernel/sched/idle.c b/kernel/sched/idle.c ---- a/kernel/sched/idle.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/sched/idle.c 2018-11-03 16:06:32.716529064 +0000 +--- a/kernel/sched/idle.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/sched/idle.c 2019-01-05 20:22:51.099998516 +0000 @@ -209,6 +209,9 @@ */ static void do_idle(void) @@ -1496,8 +1489,8 @@ diff -Nur a/kernel/sched/idle.c b/kernel/sched/idle.c /* diff -Nur a/kernel/sched/Makefile b/kernel/sched/Makefile ---- a/kernel/sched/Makefile 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/sched/Makefile 2018-11-03 16:06:32.711528903 +0000 +--- a/kernel/sched/Makefile 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/sched/Makefile 2019-01-05 20:22:51.099998516 +0000 @@ -16,14 +16,20 @@ CFLAGS_core.o := $(PROFILING) -fno-omit-frame-pointer endif @@ -1525,7 +1518,7 @@ diff -Nur a/kernel/sched/Makefile b/kernel/sched/Makefile obj-$(CONFIG_MEMBARRIER) += membarrier.o diff -Nur a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c --- a/kernel/sched/MuQSS.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/kernel/sched/MuQSS.c 2018-11-03 16:06:32.715529032 +0000 ++++ b/kernel/sched/MuQSS.c 2019-01-05 20:22:51.099998516 +0000 @@ -0,0 +1,6923 @@ +// SPDX-License-Identifier: GPL-2.0 +/* @@ -8452,7 +8445,7 @@ diff -Nur a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c +#endif /* CONFIG_CGROUP_SCHED */ diff -Nur a/kernel/sched/MuQSS.h b/kernel/sched/MuQSS.h --- a/kernel/sched/MuQSS.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/kernel/sched/MuQSS.h 2018-11-03 16:06:32.715529032 +0000 ++++ b/kernel/sched/MuQSS.h 2019-01-05 20:22:51.099998516 +0000 @@ -0,0 +1,725 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#include <linux/sched.h> @@ -9180,8 +9173,8 @@ diff -Nur a/kernel/sched/MuQSS.h b/kernel/sched/MuQSS.h + +#endif /* MUQSS_SCHED_H */ diff -Nur a/kernel/sched/sched.h b/kernel/sched/sched.h ---- a/kernel/sched/sched.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/sched/sched.h 2018-11-03 16:06:32.717529096 +0000 +--- a/kernel/sched/sched.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/sched/sched.h 2019-01-05 20:22:51.099998516 +0000 @@ -1,5 +1,8 @@ /* SPDX-License-Identifier: GPL-2.0 */ @@ -9223,7 +9216,7 @@ diff -Nur a/kernel/sched/sched.h b/kernel/sched/sched.h +#endif /* CONFIG_SCHED_MUQSS */ diff -Nur a/kernel/skip_list.c b/kernel/skip_list.c --- a/kernel/skip_list.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/kernel/skip_list.c 2018-11-03 16:06:32.717529096 +0000 ++++ b/kernel/skip_list.c 2019-01-05 20:22:51.099998516 +0000 @@ -0,0 +1,148 @@ +/* + Copyright (C) 2011,2016 Con Kolivas. @@ -9374,16 +9367,12 @@ diff -Nur a/kernel/skip_list.c b/kernel/skip_list.c + l->entries--; +} diff -Nur a/kernel/sysctl.c b/kernel/sysctl.c ---- a/kernel/sysctl.c 2018-11-03 16:00:51.933620936 +0000 -+++ b/kernel/sysctl.c 2018-11-03 16:12:48.444570622 +0000 -@@ -133,8 +133,14 @@ - static int __maybe_unused two __read_only = 2; - static int __maybe_unused four __read_only = 4; +--- a/kernel/sysctl.c 2019-01-05 20:17:13.859238862 +0000 ++++ b/kernel/sysctl.c 2019-01-05 20:22:51.099998516 +0000 +@@ -135,6 +135,12 @@ static unsigned long one_ul __read_only = 1; --static int one_hundred __read_only = 100; --static int one_thousand __read_only = 1000; -+static int one_hundred __read_only = 100; -+static int one_thousand __read_only = 1000; + static int one_hundred __read_only = 100; + static int one_thousand __read_only = 1000; +#ifdef CONFIG_SCHED_MUQSS +extern int rr_interval; +extern int sched_interactive; @@ -9464,8 +9453,8 @@ diff -Nur a/kernel/sysctl.c b/kernel/sysctl.c { .procname = "spin_retry", diff -Nur a/kernel/time/clockevents.c b/kernel/time/clockevents.c ---- a/kernel/time/clockevents.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/time/clockevents.c 2018-11-03 16:06:32.719529160 +0000 +--- a/kernel/time/clockevents.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/time/clockevents.c 2019-01-05 20:22:51.099998516 +0000 @@ -198,8 +198,13 @@ #ifdef CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST @@ -9481,8 +9470,8 @@ diff -Nur a/kernel/time/clockevents.c b/kernel/time/clockevents.c /** * clockevents_increase_min_delta - raise minimum delta of a clock event device diff -Nur a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c ---- a/kernel/time/posix-cpu-timers.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/time/posix-cpu-timers.c 2018-11-03 16:06:32.719529160 +0000 +--- a/kernel/time/posix-cpu-timers.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/time/posix-cpu-timers.c 2019-01-05 20:22:51.109998835 +0000 @@ -818,7 +818,7 @@ tsk_expires->virt_exp = expires; @@ -9520,8 +9509,8 @@ diff -Nur a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c return 1; } diff -Nur a/kernel/time/timer.c b/kernel/time/timer.c ---- a/kernel/time/timer.c 2018-11-03 16:00:51.934620967 +0000 -+++ b/kernel/time/timer.c 2018-11-03 16:06:32.720529192 +0000 +--- a/kernel/time/timer.c 2019-01-05 20:17:13.859238862 +0000 ++++ b/kernel/time/timer.c 2019-01-05 20:22:51.109998835 +0000 @@ -1434,7 +1434,7 @@ * Check, if the next hrtimer event is before the next timer wheel * event: @@ -9551,8 +9540,8 @@ diff -Nur a/kernel/time/timer.c b/kernel/time/timer.c /** diff -Nur a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c ---- a/kernel/trace/trace_selftest.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/trace/trace_selftest.c 2018-11-03 16:06:32.720529192 +0000 +--- a/kernel/trace/trace_selftest.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/trace/trace_selftest.c 2019-01-05 20:22:51.109998835 +0000 @@ -1041,10 +1041,15 @@ { /* Make this a -deadline thread */ diff --git a/sys-kernel/linux-image-redcore-lts/files/linux-hardened.patch b/sys-kernel/linux-image-redcore-lts/files/linux-hardened.patch index b5bfc225..d07e831b 100644 --- a/sys-kernel/linux-image-redcore-lts/files/linux-hardened.patch +++ b/sys-kernel/linux-image-redcore-lts/files/linux-hardened.patch @@ -1,5 +1,5 @@ diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index 9841bad6f271..99aab439ba8e 100644 +index 5f3d58142600..c5566972d058 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -490,16 +490,6 @@ @@ -19,7 +19,7 @@ index 9841bad6f271..99aab439ba8e 100644 cio_ignore= [S390] See Documentation/s390/CommonIO for details. clk_ignore_unused -@@ -2977,6 +2967,11 @@ +@@ -2981,6 +2971,11 @@ the specified number of seconds. This is to be used if your oopses keep scrolling off the screen. @@ -71,10 +71,10 @@ index 694968c7523c..002d86416ef8 100644 The value in this file affects behavior of handling NMI. When the diff --git a/Makefile b/Makefile -index 025156791e90..c45debf0a8e2 100644 +index 280c7193e246..c869bc294766 100644 --- a/Makefile +++ b/Makefile -@@ -706,6 +706,9 @@ endif +@@ -714,6 +714,9 @@ endif KBUILD_CFLAGS += $(stackp-flag) ifeq ($(cc-name),clang) @@ -85,10 +85,10 @@ index 025156791e90..c45debf0a8e2 100644 KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier) KBUILD_CFLAGS += $(call cc-disable-warning, gnu) diff --git a/arch/Kconfig b/arch/Kconfig -index 4e01862f58e4..111da81b4277 100644 +index 77b3e21c4844..3dff252446ac 100644 --- a/arch/Kconfig +++ b/arch/Kconfig -@@ -443,6 +443,11 @@ config GCC_PLUGIN_LATENT_ENTROPY +@@ -446,6 +446,11 @@ config GCC_PLUGIN_LATENT_ENTROPY is some slowdown of the boot process (about 0.5%) and fork and irq processing. @@ -100,7 +100,7 @@ index 4e01862f58e4..111da81b4277 100644 Note that entropy extracted this way is not cryptographically secure! -@@ -536,7 +541,7 @@ config CC_STACKPROTECTOR +@@ -539,7 +544,7 @@ config CC_STACKPROTECTOR choice prompt "Stack Protector buffer overflow detection" depends on HAVE_CC_STACKPROTECTOR @@ -109,7 +109,7 @@ index 4e01862f58e4..111da81b4277 100644 help This option turns on the "stack-protector" GCC feature. This feature puts, at the beginning of functions, a canary value on -@@ -738,7 +743,7 @@ config ARCH_MMAP_RND_BITS +@@ -741,7 +746,7 @@ config ARCH_MMAP_RND_BITS int "Number of bits to use for ASLR of mmap base address" if EXPERT range ARCH_MMAP_RND_BITS_MIN ARCH_MMAP_RND_BITS_MAX default ARCH_MMAP_RND_BITS_DEFAULT if ARCH_MMAP_RND_BITS_DEFAULT @@ -118,7 +118,7 @@ index 4e01862f58e4..111da81b4277 100644 depends on HAVE_ARCH_MMAP_RND_BITS help This value can be used to select the number of bits to use to -@@ -772,7 +777,7 @@ config ARCH_MMAP_RND_COMPAT_BITS +@@ -775,7 +780,7 @@ config ARCH_MMAP_RND_COMPAT_BITS int "Number of bits to use for ASLR of mmap base address for compatible applications" if EXPERT range ARCH_MMAP_RND_COMPAT_BITS_MIN ARCH_MMAP_RND_COMPAT_BITS_MAX default ARCH_MMAP_RND_COMPAT_BITS_DEFAULT if ARCH_MMAP_RND_COMPAT_BITS_DEFAULT @@ -127,7 +127,7 @@ index 4e01862f58e4..111da81b4277 100644 depends on HAVE_ARCH_MMAP_RND_COMPAT_BITS help This value can be used to select the number of bits to use to -@@ -955,6 +960,7 @@ config ARCH_HAS_REFCOUNT +@@ -958,6 +963,7 @@ config ARCH_HAS_REFCOUNT config REFCOUNT_FULL bool "Perform full reference count validation at the expense of speed" @@ -136,10 +136,10 @@ index 4e01862f58e4..111da81b4277 100644 Enabling this switches the refcounting infrastructure from a fast unchecked atomic_t implementation to a fully state checked diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 1bbb89d37f57..e3776376cafa 100644 +index c30cd78b6918..ba32a283f027 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig -@@ -927,6 +927,7 @@ endif +@@ -926,6 +926,7 @@ endif config ARM64_SW_TTBR0_PAN bool "Emulate Privileged Access Never using TTBR0_EL1 switching" @@ -147,7 +147,7 @@ index 1bbb89d37f57..e3776376cafa 100644 help Enabling this option prevents the kernel from accessing user-space memory directly by pointing TTBR0_EL1 to a reserved -@@ -1053,6 +1054,7 @@ config RANDOMIZE_BASE +@@ -1052,6 +1053,7 @@ config RANDOMIZE_BASE bool "Randomize the address of the kernel image" select ARM64_MODULE_PLTS if MODULES select RELOCATABLE @@ -224,10 +224,10 @@ index 9e773732520c..91359f45b5fc 100644 /* diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 1c63a4b5320d..54f70e88db20 100644 +index 4f393eb9745f..1a31f8fc82ed 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig -@@ -1154,8 +1154,7 @@ config VM86 +@@ -1145,8 +1145,7 @@ config VM86 default X86_LEGACY_VM86 config X86_16BIT @@ -237,7 +237,7 @@ index 1c63a4b5320d..54f70e88db20 100644 depends on MODIFY_LDT_SYSCALL ---help--- This option is required by programs like Wine to run 16-bit -@@ -2229,7 +2228,7 @@ config COMPAT_VDSO +@@ -2220,7 +2219,7 @@ config COMPAT_VDSO choice prompt "vsyscall table for legacy applications" depends on X86_64 @@ -246,7 +246,7 @@ index 1c63a4b5320d..54f70e88db20 100644 help Legacy user code that does not know how to find the vDSO expects to be able to issue three syscalls by calling fixed addresses in -@@ -2319,8 +2318,7 @@ config CMDLINE_OVERRIDE +@@ -2310,8 +2309,7 @@ config CMDLINE_OVERRIDE be set to 'N' under normal conditions. config MODIFY_LDT_SYSCALL @@ -388,10 +388,10 @@ index 3a091cea36c5..0931c05a3348 100644 -extern unsigned long align_vdso_addr(unsigned long); #endif /* _ASM_X86_ELF_H */ diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h -index 875ca99b82ee..77edc169f7a2 100644 +index e31040333f0c..14f3f214c9d1 100644 --- a/arch/x86/include/asm/tlbflush.h +++ b/arch/x86/include/asm/tlbflush.h -@@ -258,6 +258,7 @@ static inline void cr4_set_bits(unsigned long mask) +@@ -302,6 +302,7 @@ static inline void cr4_set_bits(unsigned long mask) unsigned long cr4; cr4 = this_cpu_read(cpu_tlbstate.cr4); @@ -399,7 +399,7 @@ index 875ca99b82ee..77edc169f7a2 100644 if ((cr4 | mask) != cr4) { cr4 |= mask; this_cpu_write(cpu_tlbstate.cr4, cr4); -@@ -271,6 +272,7 @@ static inline void cr4_clear_bits(unsigned long mask) +@@ -315,6 +316,7 @@ static inline void cr4_clear_bits(unsigned long mask) unsigned long cr4; cr4 = this_cpu_read(cpu_tlbstate.cr4); @@ -407,7 +407,7 @@ index 875ca99b82ee..77edc169f7a2 100644 if ((cr4 & ~mask) != cr4) { cr4 &= ~mask; this_cpu_write(cpu_tlbstate.cr4, cr4); -@@ -283,6 +285,7 @@ static inline void cr4_toggle_bits(unsigned long mask) +@@ -327,6 +329,7 @@ static inline void cr4_toggle_bits(unsigned long mask) unsigned long cr4; cr4 = this_cpu_read(cpu_tlbstate.cr4); @@ -415,7 +415,7 @@ index 875ca99b82ee..77edc169f7a2 100644 cr4 ^= mask; this_cpu_write(cpu_tlbstate.cr4, cr4); __write_cr4(cr4); -@@ -391,6 +394,7 @@ static inline void __native_flush_tlb_global(void) +@@ -435,6 +438,7 @@ static inline void __native_flush_tlb_global(void) raw_local_irq_save(flags); cr4 = this_cpu_read(cpu_tlbstate.cr4); @@ -424,10 +424,10 @@ index 875ca99b82ee..77edc169f7a2 100644 native_write_cr4(cr4 ^ X86_CR4_PGE); /* write old PGE again and flush TLBs */ diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c -index dd02ee4fa8cd..f991b4f69f21 100644 +index 51e49f6fe8e1..7ee813033624 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c -@@ -1658,7 +1658,6 @@ void cpu_init(void) +@@ -1669,7 +1669,6 @@ void cpu_init(void) wrmsrl(MSR_KERNEL_GS_BASE, 0); barrier(); @@ -436,7 +436,7 @@ index dd02ee4fa8cd..f991b4f69f21 100644 /* diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c -index 988a98f34c66..dc36d2d9078a 100644 +index a98d1cdd6299..7426eb5d1c03 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -40,6 +40,8 @@ @@ -446,9 +446,9 @@ index 988a98f34c66..dc36d2d9078a 100644 +#include <asm/elf.h> +#include <linux/sizes.h> - /* - * per-CPU TSS segments. Threads are completely 'soft' on Linux, -@@ -719,7 +721,10 @@ unsigned long arch_align_stack(unsigned long sp) + #include "process.h" + +@@ -782,7 +784,10 @@ unsigned long arch_align_stack(unsigned long sp) unsigned long arch_randomize_brk(struct mm_struct *mm) { @@ -582,10 +582,10 @@ index 01e2b353a2b9..9aeddca4a29f 100644 struct list_head *cpu_list, local_list; diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c -index 6938bd86ff1c..89e202988379 100644 +index 04f406d7e973..60d8c59fa824 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c -@@ -5147,7 +5147,7 @@ void ata_qc_free(struct ata_queued_cmd *qc) +@@ -5148,7 +5148,7 @@ void ata_qc_free(struct ata_queued_cmd *qc) struct ata_port *ap; unsigned int tag; @@ -594,7 +594,7 @@ index 6938bd86ff1c..89e202988379 100644 ap = qc->ap; qc->flags = 0; -@@ -5164,7 +5164,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc) +@@ -5165,7 +5165,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc) struct ata_port *ap; struct ata_link *link; @@ -779,7 +779,7 @@ index b811442c5ce6..4f62a63cbcb1 100644 A pseudo terminal (PTY) is a software device consisting of two halves: a master and a slave. The slave device behaves identical to diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c -index 562d31073f9a..2184b9b5485f 100644 +index 83376caa571b..4aa47ca17268 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -171,6 +171,7 @@ static void free_tty_struct(struct tty_struct *tty) @@ -790,7 +790,7 @@ index 562d31073f9a..2184b9b5485f 100644 kfree(tty); } -@@ -2154,11 +2155,19 @@ static int tty_fasync(int fd, struct file *filp, int on) +@@ -2159,11 +2160,19 @@ static int tty_fasync(int fd, struct file *filp, int on) * FIXME: may race normal receive processing */ @@ -810,7 +810,7 @@ index 562d31073f9a..2184b9b5485f 100644 if ((current->signal->tty != tty) && !capable(CAP_SYS_ADMIN)) return -EPERM; if (get_user(ch, p)) -@@ -2841,6 +2850,7 @@ struct tty_struct *alloc_tty_struct(struct tty_driver *driver, int idx) +@@ -2846,6 +2855,7 @@ struct tty_struct *alloc_tty_struct(struct tty_driver *driver, int idx) tty->index = idx; tty_line_name(driver, idx, tty->name); tty->dev = tty_get_device(tty); @@ -819,7 +819,7 @@ index 562d31073f9a..2184b9b5485f 100644 return tty; } diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index a9db0887edca..95464d2471c2 100644 +index a073cb5be013..e9dfece7b7ce 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -38,6 +38,8 @@ @@ -831,7 +831,7 @@ index a9db0887edca..95464d2471c2 100644 /* Protect struct usb_device->state and ->children members * Note: Both are also protected by ->dev.sem, except that ->state can * change to USB_STATE_NOTATTACHED even when the semaphore isn't held. */ -@@ -4816,6 +4818,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus, +@@ -4818,6 +4820,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus, goto done; return; } @@ -866,17 +866,21 @@ index 0da4d748b4e6..69fcee853363 100644 err: up_write(&mm->mmap_sem); diff --git a/fs/namei.c b/fs/namei.c -index 0b46b858cd42..3ae8e72341da 100644 +index d1e467b7b9de..0d96ad71b700 100644 --- a/fs/namei.c +++ b/fs/namei.c -@@ -902,8 +902,8 @@ static inline void put_link(struct nameidata *nd) +@@ -902,10 +902,10 @@ static inline void put_link(struct nameidata *nd) path_put(&last->link); } -int sysctl_protected_symlinks __read_mostly = 0; -int sysctl_protected_hardlinks __read_mostly = 0; +-int sysctl_protected_fifos __read_mostly; +-int sysctl_protected_regular __read_mostly; +int sysctl_protected_symlinks __read_mostly = 1; +int sysctl_protected_hardlinks __read_mostly = 1; ++int sysctl_protected_fifos __read_mostly = 2; ++int sysctl_protected_regular __read_mostly = 2; /** * may_follow_link - Check symlink following for unsafe situations @@ -989,10 +993,10 @@ index f640dcbc880c..2b4f5d651f19 100644 { return true; diff --git a/include/linux/fs.h b/include/linux/fs.h -index cc613f20e5a6..7606596d6c2e 100644 +index f6a577edec67..fa3a6caeca6c 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -3392,4 +3392,15 @@ static inline bool dir_relax_shared(struct inode *inode) +@@ -3383,4 +3383,15 @@ static inline bool dir_relax_shared(struct inode *inode) extern bool path_noexec(const struct path *path); extern void inode_nohighmem(struct inode *inode); @@ -1102,7 +1106,7 @@ index df32d2508290..c992d130b94d 100644 const struct kobj_ns_type_operations *kobj_child_ns_ops(struct kobject *parent); const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj); diff --git a/include/linux/mm.h b/include/linux/mm.h -index a26cf767407e..e0a700be00e3 100644 +index 58f2263de4de..e90dc5d98c7f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -525,7 +525,7 @@ static inline int is_vmalloc_or_module_addr(const void *x) @@ -1206,10 +1210,10 @@ index ae5ed6492d54..fd0786124504 100644 #ifndef CONFIG_SLOB if (__builtin_constant_p(size) && diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h -index 2038ab531616..a88f322c8c8b 100644 +index f8ced87a2efe..cd61c8d2aa6e 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h -@@ -120,6 +120,11 @@ struct kmem_cache { +@@ -121,6 +121,11 @@ struct kmem_cache { unsigned long random; #endif @@ -1522,7 +1526,7 @@ index d203a5d6b726..2a6c3e2c57a6 100644 static int bpf_jit_blind_insn(const struct bpf_insn *from, const struct bpf_insn *aux, diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c -index 4e933219fec6..0f37db32a2b1 100644 +index 5c9deed4524e..6d90aabecfc7 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -37,7 +37,7 @@ static DEFINE_SPINLOCK(prog_idr_lock); @@ -1552,7 +1556,7 @@ index 1e1c0236f55b..452062fe45ce 100644 /** diff --git a/kernel/events/core.c b/kernel/events/core.c -index 7c394ddf1ce6..9069886d38da 100644 +index 991af683ef9e..66f66b648707 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -397,8 +397,13 @@ static cpumask_var_t perf_online_mask; @@ -1569,7 +1573,7 @@ index 7c394ddf1ce6..9069886d38da 100644 /* Minimum for 512 kiB + 1 user control page */ int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */ -@@ -9977,6 +9982,9 @@ SYSCALL_DEFINE5(perf_event_open, +@@ -9984,6 +9989,9 @@ SYSCALL_DEFINE5(perf_event_open, if (flags & ~PERF_FLAG_ALL) return -EINVAL; @@ -1580,7 +1584,7 @@ index 7c394ddf1ce6..9069886d38da 100644 if (err) return err; diff --git a/kernel/fork.c b/kernel/fork.c -index 91907a3701ce..8021b98c69e1 100644 +index 6a219fea4926..013703c020f6 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -102,6 +102,11 @@ @@ -1595,7 +1599,7 @@ index 91907a3701ce..8021b98c69e1 100644 /* * Minimum number of threads to boot the kernel -@@ -1553,6 +1558,10 @@ static __latent_entropy struct task_struct *copy_process( +@@ -1555,6 +1560,10 @@ static __latent_entropy struct task_struct *copy_process( if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) return ERR_PTR(-EINVAL); @@ -1606,7 +1610,7 @@ index 91907a3701ce..8021b98c69e1 100644 /* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. -@@ -2346,6 +2355,12 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) +@@ -2348,6 +2357,12 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) if (unshare_flags & CLONE_NEWNS) unshare_flags |= CLONE_FS; @@ -1655,10 +1659,10 @@ index a64eee0db39e..4d7de378fe4c 100644 __rcu_process_callbacks(&rcu_sched_ctrlblk); __rcu_process_callbacks(&rcu_bh_ctrlblk); diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c -index 3e3650e94ae6..7ecd7a5d04b3 100644 +index 710ce1d6b982..4013b634e820 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c -@@ -2918,7 +2918,7 @@ __rcu_process_callbacks(struct rcu_state *rsp) +@@ -2927,7 +2927,7 @@ __rcu_process_callbacks(struct rcu_state *rsp) /* * Do RCU core processing for the current CPU. */ @@ -1668,10 +1672,10 @@ index 3e3650e94ae6..7ecd7a5d04b3 100644 struct rcu_state *rsp; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 0cc7098c6dfd..3e69eaf4ddee 100644 +index 7240bb4a4090..9adcec5bcbd9 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c -@@ -8987,7 +8987,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { } +@@ -9005,7 +9005,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { } * run_rebalance_domains is triggered when needed from the scheduler tick. * Also triggered for nohz idle balancing (with nohz_balancing_kick set). */ @@ -1730,7 +1734,7 @@ index a4c87cf27f9d..efb97a8dc568 100644 struct tasklet_struct *list; diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index 069550540a39..822783a174aa 100644 +index d330b1ce3b94..050278b12928 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -66,6 +66,7 @@ @@ -1903,10 +1907,10 @@ index 069550540a39..822783a174aa 100644 { .procname = "ngroups_max", diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index 9fe525f410bf..6a85b0e1292e 100644 +index f17c76a1a05f..50f079d11488 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c -@@ -1624,7 +1624,7 @@ static inline void __run_timers(struct timer_base *base) +@@ -1640,7 +1640,7 @@ static inline void __run_timers(struct timer_base *base) /* * This function runs timers and the timer-tq in bottom half context. */ @@ -1916,7 +1920,7 @@ index 9fe525f410bf..6a85b0e1292e 100644 struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c -index c490f1e4313b..dd03bd39d7bf 100644 +index ed80a88980f0..ff6d27d06af0 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c @@ -24,6 +24,9 @@ @@ -1997,7 +2001,7 @@ index 86a709954f5a..6f15787fcb1b 100644 struct list_head *list = this_cpu_ptr(&blk_cpu_iopoll); int rearm = 0, budget = irq_poll_budget; diff --git a/lib/kobject.c b/lib/kobject.c -index 34f847252c02..4fda329de614 100644 +index bbbb067de8ec..fec2f780cf9b 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -956,9 +956,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add); @@ -2071,7 +2075,7 @@ index 2398776195d2..a8ffa2223ad1 100644 goto set_brk; diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 59ccf455fcbd..929c2dae4954 100644 +index a2f365f40433..5e726e59de20 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -67,6 +67,7 @@ @@ -2211,7 +2215,7 @@ index 485d9fbb8802..436461588804 100644 /* * Else we can use all the padding etc for the allocation diff --git a/mm/slab_common.c b/mm/slab_common.c -index 91d271b90600..f4af25f18af2 100644 +index f6764cf162b8..015c8e4df318 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -26,10 +26,10 @@ @@ -2246,7 +2250,7 @@ index 91d271b90600..f4af25f18af2 100644 4, /* 16 */ 5, /* 24 */ diff --git a/mm/slub.c b/mm/slub.c -index 10e54c4acd19..23fa3d3be997 100644 +index 220d42e592ef..3decf87b1cf2 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -125,6 +125,16 @@ static inline int kmem_cache_debug(struct kmem_cache *s) @@ -2543,10 +2547,10 @@ index a77d68f2c1b6..d1f1d75f4d1f 100644 } diff --git a/net/core/dev.c b/net/core/dev.c -index 6ca771f2f25b..6da2c9c3e6a5 100644 +index 4337450a5fdb..5a3c7d217719 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4095,7 +4095,7 @@ int netif_rx_ni(struct sk_buff *skb) +@@ -4117,7 +4117,7 @@ int netif_rx_ni(struct sk_buff *skb) } EXPORT_SYMBOL(netif_rx_ni); @@ -2555,7 +2559,7 @@ index 6ca771f2f25b..6da2c9c3e6a5 100644 { struct softnet_data *sd = this_cpu_ptr(&softnet_data); -@@ -5609,7 +5609,7 @@ static int napi_poll(struct napi_struct *n, struct list_head *repoll) +@@ -5635,7 +5635,7 @@ static int napi_poll(struct napi_struct *n, struct list_head *repoll) return work; } @@ -2577,7 +2581,7 @@ index f48fe6fc7e8c..d78c52835c08 100644 Normal TCP/IP networking is open to an attack known as "SYN flooding". This denial-of-service attack prevents legitimate remote diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c -index 54deaa1066cf..211f97bd5ee3 100644 +index 957f6041dd79..7be404c9fb47 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -37,6 +37,7 @@ static int vmlinux_section_warnings = 1; diff --git a/sys-kernel/linux-image-redcore-lts/files/redcore-lts-amd64.config b/sys-kernel/linux-image-redcore-lts/files/redcore-lts-amd64.config index f41bc39d..23e35863 100644 --- a/sys-kernel/linux-image-redcore-lts/files/redcore-lts-amd64.config +++ b/sys-kernel/linux-image-redcore-lts/files/redcore-lts-amd64.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.14.75-redcore-lts Kernel Configuration +# Linux/x86 4.14.90-redcore-lts Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -62,12 +62,12 @@ CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y -CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set -# CONFIG_KERNEL_LZ4 is not set +CONFIG_KERNEL_LZ4=y CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y @@ -8332,8 +8332,8 @@ CONFIG_ROMFS_ON_BLOCK=y CONFIG_ROMFS_ON_MTD=y CONFIG_PSTORE=y # CONFIG_PSTORE_ZLIB_COMPRESS is not set -CONFIG_PSTORE_LZO_COMPRESS=y -# CONFIG_PSTORE_LZ4_COMPRESS is not set +# CONFIG_PSTORE_LZO_COMPRESS is not set +CONFIG_PSTORE_LZ4_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_PMSG=y CONFIG_PSTORE_RAM=m @@ -8394,7 +8394,6 @@ CONFIG_CIFS_STATS2=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_XATTR=y -CONFIG_CIFS_POSIX=y CONFIG_CIFS_ACL=y # CONFIG_CIFS_DEBUG is not set CONFIG_CIFS_DFS_UPCALL=y @@ -9029,7 +9028,7 @@ CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y -CONFIG_LZ4_COMPRESS=m +CONFIG_LZ4_COMPRESS=y CONFIG_LZ4HC_COMPRESS=m CONFIG_LZ4_DECOMPRESS=y CONFIG_ZSTD_COMPRESS=m diff --git a/sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-4.14.75.ebuild b/sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-4.14.90.ebuild index a50b0ce0..dd28a93c 100644 --- a/sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-4.14.75.ebuild +++ b/sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-4.14.90.ebuild @@ -19,6 +19,7 @@ IUSE="+cryptsetup +dmraid +dracut +dkms +mdadm" RESTRICT="binchecks strip mirror" DEPEND=" + app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc @@ -140,19 +141,23 @@ _kernel_modules_delete() { } pkg_postinst() { - if use dracut; then - _dracut_initrd_create + if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then + if use dracut; then + _dracut_initrd_create + fi + _grub2_update_grubcfg fi - _grub2_update_grubcfg } pkg_postrm() { - if use dracut; then - _dracut_initrd_delete + if [ $(stat -c %d:%i /) == $(stat -c %d:%i /proc/1/root/.) ]; then + if use dracut; then + _dracut_initrd_delete + fi + _grub2_update_grubcfg fi if use dkms; then _dkms_modules_delete fi _kernel_modules_delete - _grub2_update_grubcfg } diff --git a/sys-kernel/linux-sources-redcore-lts/Manifest b/sys-kernel/linux-sources-redcore-lts/Manifest index 48f87643..ce5c5ca8 100644 --- a/sys-kernel/linux-sources-redcore-lts/Manifest +++ b/sys-kernel/linux-sources-redcore-lts/Manifest @@ -1 +1 @@ -DIST linux-4.14.75.tar.xz 100992748 BLAKE2B febb717f667f380b4c39a06c0bb522181dc7f16fd21e86794589cef8b4de1b064c216e5e51aa6b4bfb2deead6263b76ecce3bfc480126bdf9840d17c9ba590b9 SHA512 d6d75a89fd0aed92d3dae4e651273a5b2fec242e49ba6fd71cf642c32e346fb6be083b3c9d1f77fc6ded9531d9f1efd82041f28b12f71eaf2c53d16c071e6703 +DIST linux-4.14.90.tar.xz 101040436 BLAKE2B 09a86e08150b3c01734078e3525a4cef16ee390ea7ba464152d4c886caafe078009a3fae265f626541240a542d7bc43944a102caa2ed067a002d5b687dde6f84 SHA512 df744c138d48f3a711a9abe9908da4cc115091c090f8a9cb13259677572a995361de42710052d6654a28dec0b104ca5c3e9a54dea98a961ec91217cd72dbe58e diff --git a/sys-kernel/linux-sources-redcore-lts/files/0001-MuQSS-version-0.162-CPU-scheduler-linux-hardened.patch b/sys-kernel/linux-sources-redcore-lts/files/0001-MuQSS-version-0.162-CPU-scheduler-linux-hardened.patch index 8f2c8783..a81dbeac 100644 --- a/sys-kernel/linux-sources-redcore-lts/files/0001-MuQSS-version-0.162-CPU-scheduler-linux-hardened.patch +++ b/sys-kernel/linux-sources-redcore-lts/files/0001-MuQSS-version-0.162-CPU-scheduler-linux-hardened.patch @@ -1,6 +1,6 @@ diff -Nur a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c ---- a/arch/powerpc/platforms/cell/spufs/sched.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/arch/powerpc/platforms/cell/spufs/sched.c 2018-11-03 16:06:32.704528679 +0000 +--- a/arch/powerpc/platforms/cell/spufs/sched.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/arch/powerpc/platforms/cell/spufs/sched.c 2019-01-05 20:22:51.089998199 +0000 @@ -65,11 +65,6 @@ static struct timer_list spuloadavg_timer; @@ -14,16 +14,11 @@ diff -Nur a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/c * tick for every 10 CPU scheduler ticks. */ diff -Nur a/arch/x86/Kconfig b/arch/x86/Kconfig ---- a/arch/x86/Kconfig 2018-11-03 16:00:51.897619785 +0000 -+++ b/arch/x86/Kconfig 2018-11-03 16:06:32.705528711 +0000 -@@ -963,10 +963,26 @@ - depends on SMP - ---help--- - SMT scheduler support improves the CPU scheduler's decision making -- when dealing with Intel Pentium 4 chips with HyperThreading at a -+ when dealing with Intel P4/Core 2 chips with HyperThreading at a - cost of slightly increased overhead in some places. If unsure say - N here. +--- a/arch/x86/Kconfig 2019-01-05 20:17:13.829237906 +0000 ++++ b/arch/x86/Kconfig 2019-01-05 20:30:14.244135060 +0000 +@@ -957,6 +957,20 @@ + config SCHED_SMT + def_bool y if SMP +config SMT_NICE + bool "SMT (Hyperthreading) aware nice priority and policy support" @@ -37,16 +32,14 @@ diff -Nur a/arch/x86/Kconfig b/arch/x86/Kconfig + its hyperthread siblings, maintaining appropriate distribution of + CPU according to nice levels and scheduling policies at the expense + of slightly increased overhead. -+ + If unsure say Y here. + -+ config SCHED_MC def_bool y prompt "Multi-core scheduler support" diff -Nur a/Documentation/scheduler/sched-BFS.txt b/Documentation/scheduler/sched-BFS.txt --- a/Documentation/scheduler/sched-BFS.txt 1970-01-01 01:00:00.000000000 +0100 -+++ b/Documentation/scheduler/sched-BFS.txt 2018-11-03 16:06:32.702528615 +0000 ++++ b/Documentation/scheduler/sched-BFS.txt 2019-01-05 20:22:51.089998199 +0000 @@ -0,0 +1,351 @@ +BFS - The Brain Fuck Scheduler by Con Kolivas. + @@ -401,7 +394,7 @@ diff -Nur a/Documentation/scheduler/sched-BFS.txt b/Documentation/scheduler/sche +Con Kolivas <kernel@kolivas.org> Fri Aug 27 2010 diff -Nur a/Documentation/scheduler/sched-MuQSS.txt b/Documentation/scheduler/sched-MuQSS.txt --- a/Documentation/scheduler/sched-MuQSS.txt 1970-01-01 01:00:00.000000000 +0100 -+++ b/Documentation/scheduler/sched-MuQSS.txt 2018-11-03 16:06:32.702528615 +0000 ++++ b/Documentation/scheduler/sched-MuQSS.txt 2019-01-05 20:22:51.089998199 +0000 @@ -0,0 +1,347 @@ +MuQSS - The Multiple Queue Skiplist Scheduler by Con Kolivas. + @@ -751,8 +744,8 @@ diff -Nur a/Documentation/scheduler/sched-MuQSS.txt b/Documentation/scheduler/sc + +Con Kolivas <kernel@kolivas.org> Sat, 29th October 2016 diff -Nur a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt ---- a/Documentation/sysctl/kernel.txt 2018-11-03 16:00:51.893619657 +0000 -+++ b/Documentation/sysctl/kernel.txt 2018-11-03 16:06:32.703528647 +0000 +--- a/Documentation/sysctl/kernel.txt 2019-01-05 20:17:13.829237906 +0000 ++++ b/Documentation/sysctl/kernel.txt 2019-01-05 20:22:51.089998199 +0000 @@ -39,6 +39,7 @@ - hung_task_timeout_secs - hung_task_warnings @@ -830,8 +823,8 @@ diff -Nur a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt + +============================================================== diff -Nur a/fs/proc/base.c b/fs/proc/base.c ---- a/fs/proc/base.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/fs/proc/base.c 2018-11-03 16:06:32.706528743 +0000 +--- a/fs/proc/base.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/fs/proc/base.c 2019-01-05 20:22:51.089998199 +0000 @@ -481,7 +481,7 @@ seq_printf(m, "0 0 0\n"); else @@ -842,8 +835,8 @@ diff -Nur a/fs/proc/base.c b/fs/proc/base.c task->sched_info.pcount); diff -Nur a/include/linux/init_task.h b/include/linux/init_task.h ---- a/include/linux/init_task.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/init_task.h 2018-11-03 16:06:32.706528743 +0000 +--- a/include/linux/init_task.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/init_task.h 2019-01-05 20:22:51.089998199 +0000 @@ -172,8 +172,6 @@ # define INIT_VTIME(tsk) #endif @@ -944,8 +937,8 @@ diff -Nur a/include/linux/init_task.h b/include/linux/init_task.h /* Attach to the init_task data structure for proper alignment */ #define __init_task_data __attribute__((__section__(".data..init_task"))) diff -Nur a/include/linux/ioprio.h b/include/linux/ioprio.h ---- a/include/linux/ioprio.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/ioprio.h 2018-11-03 16:06:32.706528743 +0000 +--- a/include/linux/ioprio.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/ioprio.h 2019-01-05 20:22:51.089998199 +0000 @@ -52,6 +52,8 @@ */ static inline int task_nice_ioprio(struct task_struct *task) @@ -956,8 +949,8 @@ diff -Nur a/include/linux/ioprio.h b/include/linux/ioprio.h } diff -Nur a/include/linux/sched/nohz.h b/include/linux/sched/nohz.h ---- a/include/linux/sched/nohz.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/sched/nohz.h 2018-11-03 16:06:32.707528775 +0000 +--- a/include/linux/sched/nohz.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/sched/nohz.h 2019-01-05 20:22:51.089998199 +0000 @@ -6,7 +6,7 @@ * This is the interface between the scheduler and nohz/dynticks: */ @@ -977,8 +970,8 @@ diff -Nur a/include/linux/sched/nohz.h b/include/linux/sched/nohz.h void calc_load_nohz_stop(void); #else diff -Nur a/include/linux/sched/prio.h b/include/linux/sched/prio.h ---- a/include/linux/sched/prio.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/sched/prio.h 2018-11-03 16:06:32.707528775 +0000 +--- a/include/linux/sched/prio.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/sched/prio.h 2019-01-05 20:22:51.089998199 +0000 @@ -20,8 +20,20 @@ */ @@ -1001,8 +994,8 @@ diff -Nur a/include/linux/sched/prio.h b/include/linux/sched/prio.h #define DEFAULT_PRIO (MAX_RT_PRIO + NICE_WIDTH / 2) diff -Nur a/include/linux/sched/task.h b/include/linux/sched/task.h ---- a/include/linux/sched/task.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/sched/task.h 2018-11-03 16:06:32.707528775 +0000 +--- a/include/linux/sched/task.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/sched/task.h 2019-01-05 20:22:51.089998199 +0000 @@ -80,7 +80,7 @@ extern void free_task(struct task_struct *tsk); @@ -1013,8 +1006,8 @@ diff -Nur a/include/linux/sched/task.h b/include/linux/sched/task.h #else #define sched_exec() {} diff -Nur a/include/linux/sched.h b/include/linux/sched.h ---- a/include/linux/sched.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/linux/sched.h 2018-11-03 16:06:32.707528775 +0000 +--- a/include/linux/sched.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/linux/sched.h 2019-01-05 20:22:51.089998199 +0000 @@ -27,6 +27,9 @@ #include <linux/signal_types.h> #include <linux/mm_types_task.h> @@ -1118,7 +1111,7 @@ diff -Nur a/include/linux/sched.h b/include/linux/sched.h return task->pids[PIDTYPE_PID].pid; diff -Nur a/include/linux/skip_list.h b/include/linux/skip_list.h --- a/include/linux/skip_list.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/include/linux/skip_list.h 2018-11-03 16:06:32.708528807 +0000 ++++ b/include/linux/skip_list.h 2019-01-05 20:22:51.089998199 +0000 @@ -0,0 +1,33 @@ +#ifndef _LINUX_SKIP_LISTS_H +#define _LINUX_SKIP_LISTS_H @@ -1154,8 +1147,8 @@ diff -Nur a/include/linux/skip_list.h b/include/linux/skip_list.h +} +#endif /* _LINUX_SKIP_LISTS_H */ diff -Nur a/include/uapi/linux/sched.h b/include/uapi/linux/sched.h ---- a/include/uapi/linux/sched.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/include/uapi/linux/sched.h 2018-11-03 16:06:32.708528807 +0000 +--- a/include/uapi/linux/sched.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/include/uapi/linux/sched.h 2019-01-05 20:22:51.089998199 +0000 @@ -37,9 +37,16 @@ #define SCHED_FIFO 1 #define SCHED_RR 2 @@ -1175,8 +1168,8 @@ diff -Nur a/include/uapi/linux/sched.h b/include/uapi/linux/sched.h /* Can be ORed in to make sure the process is reverted back to SCHED_NORMAL on fork */ #define SCHED_RESET_ON_FORK 0x40000000 diff -Nur a/init/Kconfig b/init/Kconfig ---- a/init/Kconfig 2018-11-03 16:00:51.921620552 +0000 -+++ b/init/Kconfig 2018-11-03 16:06:32.709528839 +0000 +--- a/init/Kconfig 2019-01-05 20:17:13.849238543 +0000 ++++ b/init/Kconfig 2019-01-05 20:22:51.089998199 +0000 @@ -38,6 +38,18 @@ menu "General setup" @@ -1237,8 +1230,8 @@ diff -Nur a/init/Kconfig b/init/Kconfig select CGROUP_SCHED select FAIR_GROUP_SCHED diff -Nur a/init/main.c b/init/main.c ---- a/init/main.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/init/main.c 2018-11-03 16:06:32.709528839 +0000 +--- a/init/main.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/init/main.c 2019-01-05 20:22:51.089998199 +0000 @@ -841,7 +841,6 @@ return ret; } @@ -1257,8 +1250,8 @@ diff -Nur a/init/main.c b/init/main.c ret = run_init_process(ramdisk_execute_command); if (!ret) diff -Nur a/kernel/delayacct.c b/kernel/delayacct.c ---- a/kernel/delayacct.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/delayacct.c 2018-11-03 16:06:32.710528871 +0000 +--- a/kernel/delayacct.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/delayacct.c 2019-01-05 20:22:51.089998199 +0000 @@ -115,7 +115,7 @@ */ t1 = tsk->sched_info.pcount; @@ -1269,8 +1262,8 @@ diff -Nur a/kernel/delayacct.c b/kernel/delayacct.c d->cpu_count += t1; diff -Nur a/kernel/exit.c b/kernel/exit.c ---- a/kernel/exit.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/exit.c 2018-11-03 16:06:32.710528871 +0000 +--- a/kernel/exit.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/exit.c 2019-01-05 20:22:51.089998199 +0000 @@ -129,7 +129,7 @@ sig->curr_target = next_thread(tsk); } @@ -1290,8 +1283,8 @@ diff -Nur a/kernel/exit.c b/kernel/exit.c __unhash_process(tsk, group_dead); write_sequnlock(&sig->stats_lock); diff -Nur a/kernel/kthread.c b/kernel/kthread.c ---- a/kernel/kthread.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/kthread.c 2018-11-03 16:06:32.711528903 +0000 +--- a/kernel/kthread.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/kthread.c 2019-01-05 20:22:51.099998516 +0000 @@ -410,6 +410,34 @@ } EXPORT_SYMBOL(kthread_bind); @@ -1337,8 +1330,8 @@ diff -Nur a/kernel/kthread.c b/kernel/kthread.c set_bit(KTHREAD_IS_PER_CPU, &to_kthread(p)->flags); to_kthread(p)->cpu = cpu; diff -Nur a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c ---- a/kernel/livepatch/transition.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/livepatch/transition.c 2018-11-03 16:06:32.711528903 +0000 +--- a/kernel/livepatch/transition.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/livepatch/transition.c 2019-01-05 20:22:51.099998516 +0000 @@ -277,6 +277,12 @@ return 0; } @@ -1362,8 +1355,8 @@ diff -Nur a/kernel/livepatch/transition.c b/kernel/livepatch/transition.c bool success = false; char err_buf[STACK_ERR_BUF_SIZE]; diff -Nur a/kernel/Makefile b/kernel/Makefile ---- a/kernel/Makefile 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/Makefile 2018-11-03 16:06:32.709528839 +0000 +--- a/kernel/Makefile 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/Makefile 2019-01-05 20:22:51.099998516 +0000 @@ -10,7 +10,7 @@ extable.o params.o \ kthread.o sys_ni.o nsproxy.o \ @@ -1374,8 +1367,8 @@ diff -Nur a/kernel/Makefile b/kernel/Makefile obj-$(CONFIG_MODULES) += kmod.o obj-$(CONFIG_MULTIUSER) += groups.o diff -Nur a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig ---- a/kernel/rcu/Kconfig 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/rcu/Kconfig 2018-11-03 16:06:32.711528903 +0000 +--- a/kernel/rcu/Kconfig 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/rcu/Kconfig 2019-01-05 20:22:51.099998516 +0000 @@ -93,7 +93,7 @@ config CONTEXT_TRACKING_FORCE bool "Force context tracking" @@ -1386,8 +1379,8 @@ diff -Nur a/kernel/rcu/Kconfig b/kernel/rcu/Kconfig The major pre-requirement for full dynticks to work is to support the context tracking subsystem. But there are also diff -Nur a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c ---- a/kernel/sched/cpufreq_schedutil.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/sched/cpufreq_schedutil.c 2018-11-03 16:06:32.716529064 +0000 +--- a/kernel/sched/cpufreq_schedutil.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/sched/cpufreq_schedutil.c 2019-01-05 20:22:51.099998516 +0000 @@ -176,6 +176,17 @@ return cpufreq_driver_resolve_freq(policy, freq); } @@ -1415,8 +1408,8 @@ diff -Nur a/kernel/sched/cpufreq_schedutil.c b/kernel/sched/cpufreq_schedutil.c static void sugov_set_iowait_boost(struct sugov_cpu *sg_cpu, u64 time, unsigned int flags) diff -Nur a/kernel/sched/cputime.c b/kernel/sched/cputime.c ---- a/kernel/sched/cputime.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/sched/cputime.c 2018-11-03 16:06:32.716529064 +0000 +--- a/kernel/sched/cputime.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/sched/cputime.c 2019-01-05 20:22:51.099998516 +0000 @@ -270,26 +270,6 @@ return accounted; } @@ -1454,8 +1447,8 @@ diff -Nur a/kernel/sched/cputime.c b/kernel/sched/cputime.c task_cputime(p, &cputime.utime, &cputime.stime); diff -Nur a/kernel/sched/idle.c b/kernel/sched/idle.c ---- a/kernel/sched/idle.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/sched/idle.c 2018-11-03 16:06:32.716529064 +0000 +--- a/kernel/sched/idle.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/sched/idle.c 2019-01-05 20:22:51.099998516 +0000 @@ -209,6 +209,9 @@ */ static void do_idle(void) @@ -1496,8 +1489,8 @@ diff -Nur a/kernel/sched/idle.c b/kernel/sched/idle.c /* diff -Nur a/kernel/sched/Makefile b/kernel/sched/Makefile ---- a/kernel/sched/Makefile 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/sched/Makefile 2018-11-03 16:06:32.711528903 +0000 +--- a/kernel/sched/Makefile 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/sched/Makefile 2019-01-05 20:22:51.099998516 +0000 @@ -16,14 +16,20 @@ CFLAGS_core.o := $(PROFILING) -fno-omit-frame-pointer endif @@ -1525,7 +1518,7 @@ diff -Nur a/kernel/sched/Makefile b/kernel/sched/Makefile obj-$(CONFIG_MEMBARRIER) += membarrier.o diff -Nur a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c --- a/kernel/sched/MuQSS.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/kernel/sched/MuQSS.c 2018-11-03 16:06:32.715529032 +0000 ++++ b/kernel/sched/MuQSS.c 2019-01-05 20:22:51.099998516 +0000 @@ -0,0 +1,6923 @@ +// SPDX-License-Identifier: GPL-2.0 +/* @@ -8452,7 +8445,7 @@ diff -Nur a/kernel/sched/MuQSS.c b/kernel/sched/MuQSS.c +#endif /* CONFIG_CGROUP_SCHED */ diff -Nur a/kernel/sched/MuQSS.h b/kernel/sched/MuQSS.h --- a/kernel/sched/MuQSS.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/kernel/sched/MuQSS.h 2018-11-03 16:06:32.715529032 +0000 ++++ b/kernel/sched/MuQSS.h 2019-01-05 20:22:51.099998516 +0000 @@ -0,0 +1,725 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +#include <linux/sched.h> @@ -9180,8 +9173,8 @@ diff -Nur a/kernel/sched/MuQSS.h b/kernel/sched/MuQSS.h + +#endif /* MUQSS_SCHED_H */ diff -Nur a/kernel/sched/sched.h b/kernel/sched/sched.h ---- a/kernel/sched/sched.h 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/sched/sched.h 2018-11-03 16:06:32.717529096 +0000 +--- a/kernel/sched/sched.h 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/sched/sched.h 2019-01-05 20:22:51.099998516 +0000 @@ -1,5 +1,8 @@ /* SPDX-License-Identifier: GPL-2.0 */ @@ -9223,7 +9216,7 @@ diff -Nur a/kernel/sched/sched.h b/kernel/sched/sched.h +#endif /* CONFIG_SCHED_MUQSS */ diff -Nur a/kernel/skip_list.c b/kernel/skip_list.c --- a/kernel/skip_list.c 1970-01-01 01:00:00.000000000 +0100 -+++ b/kernel/skip_list.c 2018-11-03 16:06:32.717529096 +0000 ++++ b/kernel/skip_list.c 2019-01-05 20:22:51.099998516 +0000 @@ -0,0 +1,148 @@ +/* + Copyright (C) 2011,2016 Con Kolivas. @@ -9374,16 +9367,12 @@ diff -Nur a/kernel/skip_list.c b/kernel/skip_list.c + l->entries--; +} diff -Nur a/kernel/sysctl.c b/kernel/sysctl.c ---- a/kernel/sysctl.c 2018-11-03 16:00:51.933620936 +0000 -+++ b/kernel/sysctl.c 2018-11-03 16:12:48.444570622 +0000 -@@ -133,8 +133,14 @@ - static int __maybe_unused two __read_only = 2; - static int __maybe_unused four __read_only = 4; +--- a/kernel/sysctl.c 2019-01-05 20:17:13.859238862 +0000 ++++ b/kernel/sysctl.c 2019-01-05 20:22:51.099998516 +0000 +@@ -135,6 +135,12 @@ static unsigned long one_ul __read_only = 1; --static int one_hundred __read_only = 100; --static int one_thousand __read_only = 1000; -+static int one_hundred __read_only = 100; -+static int one_thousand __read_only = 1000; + static int one_hundred __read_only = 100; + static int one_thousand __read_only = 1000; +#ifdef CONFIG_SCHED_MUQSS +extern int rr_interval; +extern int sched_interactive; @@ -9464,8 +9453,8 @@ diff -Nur a/kernel/sysctl.c b/kernel/sysctl.c { .procname = "spin_retry", diff -Nur a/kernel/time/clockevents.c b/kernel/time/clockevents.c ---- a/kernel/time/clockevents.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/time/clockevents.c 2018-11-03 16:06:32.719529160 +0000 +--- a/kernel/time/clockevents.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/time/clockevents.c 2019-01-05 20:22:51.099998516 +0000 @@ -198,8 +198,13 @@ #ifdef CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST @@ -9481,8 +9470,8 @@ diff -Nur a/kernel/time/clockevents.c b/kernel/time/clockevents.c /** * clockevents_increase_min_delta - raise minimum delta of a clock event device diff -Nur a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c ---- a/kernel/time/posix-cpu-timers.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/time/posix-cpu-timers.c 2018-11-03 16:06:32.719529160 +0000 +--- a/kernel/time/posix-cpu-timers.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/time/posix-cpu-timers.c 2019-01-05 20:22:51.109998835 +0000 @@ -818,7 +818,7 @@ tsk_expires->virt_exp = expires; @@ -9520,8 +9509,8 @@ diff -Nur a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c return 1; } diff -Nur a/kernel/time/timer.c b/kernel/time/timer.c ---- a/kernel/time/timer.c 2018-11-03 16:00:51.934620967 +0000 -+++ b/kernel/time/timer.c 2018-11-03 16:06:32.720529192 +0000 +--- a/kernel/time/timer.c 2019-01-05 20:17:13.859238862 +0000 ++++ b/kernel/time/timer.c 2019-01-05 20:22:51.109998835 +0000 @@ -1434,7 +1434,7 @@ * Check, if the next hrtimer event is before the next timer wheel * event: @@ -9551,8 +9540,8 @@ diff -Nur a/kernel/time/timer.c b/kernel/time/timer.c /** diff -Nur a/kernel/trace/trace_selftest.c b/kernel/trace/trace_selftest.c ---- a/kernel/trace/trace_selftest.c 2018-10-10 07:54:28.000000000 +0100 -+++ b/kernel/trace/trace_selftest.c 2018-11-03 16:06:32.720529192 +0000 +--- a/kernel/trace/trace_selftest.c 2018-12-21 13:13:19.000000000 +0000 ++++ b/kernel/trace/trace_selftest.c 2019-01-05 20:22:51.109998835 +0000 @@ -1041,10 +1041,15 @@ { /* Make this a -deadline thread */ diff --git a/sys-kernel/linux-sources-redcore-lts/files/linux-hardened.patch b/sys-kernel/linux-sources-redcore-lts/files/linux-hardened.patch index b5bfc225..d07e831b 100644 --- a/sys-kernel/linux-sources-redcore-lts/files/linux-hardened.patch +++ b/sys-kernel/linux-sources-redcore-lts/files/linux-hardened.patch @@ -1,5 +1,5 @@ diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index 9841bad6f271..99aab439ba8e 100644 +index 5f3d58142600..c5566972d058 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -490,16 +490,6 @@ @@ -19,7 +19,7 @@ index 9841bad6f271..99aab439ba8e 100644 cio_ignore= [S390] See Documentation/s390/CommonIO for details. clk_ignore_unused -@@ -2977,6 +2967,11 @@ +@@ -2981,6 +2971,11 @@ the specified number of seconds. This is to be used if your oopses keep scrolling off the screen. @@ -71,10 +71,10 @@ index 694968c7523c..002d86416ef8 100644 The value in this file affects behavior of handling NMI. When the diff --git a/Makefile b/Makefile -index 025156791e90..c45debf0a8e2 100644 +index 280c7193e246..c869bc294766 100644 --- a/Makefile +++ b/Makefile -@@ -706,6 +706,9 @@ endif +@@ -714,6 +714,9 @@ endif KBUILD_CFLAGS += $(stackp-flag) ifeq ($(cc-name),clang) @@ -85,10 +85,10 @@ index 025156791e90..c45debf0a8e2 100644 KBUILD_CFLAGS += $(call cc-disable-warning, format-invalid-specifier) KBUILD_CFLAGS += $(call cc-disable-warning, gnu) diff --git a/arch/Kconfig b/arch/Kconfig -index 4e01862f58e4..111da81b4277 100644 +index 77b3e21c4844..3dff252446ac 100644 --- a/arch/Kconfig +++ b/arch/Kconfig -@@ -443,6 +443,11 @@ config GCC_PLUGIN_LATENT_ENTROPY +@@ -446,6 +446,11 @@ config GCC_PLUGIN_LATENT_ENTROPY is some slowdown of the boot process (about 0.5%) and fork and irq processing. @@ -100,7 +100,7 @@ index 4e01862f58e4..111da81b4277 100644 Note that entropy extracted this way is not cryptographically secure! -@@ -536,7 +541,7 @@ config CC_STACKPROTECTOR +@@ -539,7 +544,7 @@ config CC_STACKPROTECTOR choice prompt "Stack Protector buffer overflow detection" depends on HAVE_CC_STACKPROTECTOR @@ -109,7 +109,7 @@ index 4e01862f58e4..111da81b4277 100644 help This option turns on the "stack-protector" GCC feature. This feature puts, at the beginning of functions, a canary value on -@@ -738,7 +743,7 @@ config ARCH_MMAP_RND_BITS +@@ -741,7 +746,7 @@ config ARCH_MMAP_RND_BITS int "Number of bits to use for ASLR of mmap base address" if EXPERT range ARCH_MMAP_RND_BITS_MIN ARCH_MMAP_RND_BITS_MAX default ARCH_MMAP_RND_BITS_DEFAULT if ARCH_MMAP_RND_BITS_DEFAULT @@ -118,7 +118,7 @@ index 4e01862f58e4..111da81b4277 100644 depends on HAVE_ARCH_MMAP_RND_BITS help This value can be used to select the number of bits to use to -@@ -772,7 +777,7 @@ config ARCH_MMAP_RND_COMPAT_BITS +@@ -775,7 +780,7 @@ config ARCH_MMAP_RND_COMPAT_BITS int "Number of bits to use for ASLR of mmap base address for compatible applications" if EXPERT range ARCH_MMAP_RND_COMPAT_BITS_MIN ARCH_MMAP_RND_COMPAT_BITS_MAX default ARCH_MMAP_RND_COMPAT_BITS_DEFAULT if ARCH_MMAP_RND_COMPAT_BITS_DEFAULT @@ -127,7 +127,7 @@ index 4e01862f58e4..111da81b4277 100644 depends on HAVE_ARCH_MMAP_RND_COMPAT_BITS help This value can be used to select the number of bits to use to -@@ -955,6 +960,7 @@ config ARCH_HAS_REFCOUNT +@@ -958,6 +963,7 @@ config ARCH_HAS_REFCOUNT config REFCOUNT_FULL bool "Perform full reference count validation at the expense of speed" @@ -136,10 +136,10 @@ index 4e01862f58e4..111da81b4277 100644 Enabling this switches the refcounting infrastructure from a fast unchecked atomic_t implementation to a fully state checked diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig -index 1bbb89d37f57..e3776376cafa 100644 +index c30cd78b6918..ba32a283f027 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig -@@ -927,6 +927,7 @@ endif +@@ -926,6 +926,7 @@ endif config ARM64_SW_TTBR0_PAN bool "Emulate Privileged Access Never using TTBR0_EL1 switching" @@ -147,7 +147,7 @@ index 1bbb89d37f57..e3776376cafa 100644 help Enabling this option prevents the kernel from accessing user-space memory directly by pointing TTBR0_EL1 to a reserved -@@ -1053,6 +1054,7 @@ config RANDOMIZE_BASE +@@ -1052,6 +1053,7 @@ config RANDOMIZE_BASE bool "Randomize the address of the kernel image" select ARM64_MODULE_PLTS if MODULES select RELOCATABLE @@ -224,10 +224,10 @@ index 9e773732520c..91359f45b5fc 100644 /* diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig -index 1c63a4b5320d..54f70e88db20 100644 +index 4f393eb9745f..1a31f8fc82ed 100644 --- a/arch/x86/Kconfig +++ b/arch/x86/Kconfig -@@ -1154,8 +1154,7 @@ config VM86 +@@ -1145,8 +1145,7 @@ config VM86 default X86_LEGACY_VM86 config X86_16BIT @@ -237,7 +237,7 @@ index 1c63a4b5320d..54f70e88db20 100644 depends on MODIFY_LDT_SYSCALL ---help--- This option is required by programs like Wine to run 16-bit -@@ -2229,7 +2228,7 @@ config COMPAT_VDSO +@@ -2220,7 +2219,7 @@ config COMPAT_VDSO choice prompt "vsyscall table for legacy applications" depends on X86_64 @@ -246,7 +246,7 @@ index 1c63a4b5320d..54f70e88db20 100644 help Legacy user code that does not know how to find the vDSO expects to be able to issue three syscalls by calling fixed addresses in -@@ -2319,8 +2318,7 @@ config CMDLINE_OVERRIDE +@@ -2310,8 +2309,7 @@ config CMDLINE_OVERRIDE be set to 'N' under normal conditions. config MODIFY_LDT_SYSCALL @@ -388,10 +388,10 @@ index 3a091cea36c5..0931c05a3348 100644 -extern unsigned long align_vdso_addr(unsigned long); #endif /* _ASM_X86_ELF_H */ diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h -index 875ca99b82ee..77edc169f7a2 100644 +index e31040333f0c..14f3f214c9d1 100644 --- a/arch/x86/include/asm/tlbflush.h +++ b/arch/x86/include/asm/tlbflush.h -@@ -258,6 +258,7 @@ static inline void cr4_set_bits(unsigned long mask) +@@ -302,6 +302,7 @@ static inline void cr4_set_bits(unsigned long mask) unsigned long cr4; cr4 = this_cpu_read(cpu_tlbstate.cr4); @@ -399,7 +399,7 @@ index 875ca99b82ee..77edc169f7a2 100644 if ((cr4 | mask) != cr4) { cr4 |= mask; this_cpu_write(cpu_tlbstate.cr4, cr4); -@@ -271,6 +272,7 @@ static inline void cr4_clear_bits(unsigned long mask) +@@ -315,6 +316,7 @@ static inline void cr4_clear_bits(unsigned long mask) unsigned long cr4; cr4 = this_cpu_read(cpu_tlbstate.cr4); @@ -407,7 +407,7 @@ index 875ca99b82ee..77edc169f7a2 100644 if ((cr4 & ~mask) != cr4) { cr4 &= ~mask; this_cpu_write(cpu_tlbstate.cr4, cr4); -@@ -283,6 +285,7 @@ static inline void cr4_toggle_bits(unsigned long mask) +@@ -327,6 +329,7 @@ static inline void cr4_toggle_bits(unsigned long mask) unsigned long cr4; cr4 = this_cpu_read(cpu_tlbstate.cr4); @@ -415,7 +415,7 @@ index 875ca99b82ee..77edc169f7a2 100644 cr4 ^= mask; this_cpu_write(cpu_tlbstate.cr4, cr4); __write_cr4(cr4); -@@ -391,6 +394,7 @@ static inline void __native_flush_tlb_global(void) +@@ -435,6 +438,7 @@ static inline void __native_flush_tlb_global(void) raw_local_irq_save(flags); cr4 = this_cpu_read(cpu_tlbstate.cr4); @@ -424,10 +424,10 @@ index 875ca99b82ee..77edc169f7a2 100644 native_write_cr4(cr4 ^ X86_CR4_PGE); /* write old PGE again and flush TLBs */ diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c -index dd02ee4fa8cd..f991b4f69f21 100644 +index 51e49f6fe8e1..7ee813033624 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c -@@ -1658,7 +1658,6 @@ void cpu_init(void) +@@ -1669,7 +1669,6 @@ void cpu_init(void) wrmsrl(MSR_KERNEL_GS_BASE, 0); barrier(); @@ -436,7 +436,7 @@ index dd02ee4fa8cd..f991b4f69f21 100644 /* diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c -index 988a98f34c66..dc36d2d9078a 100644 +index a98d1cdd6299..7426eb5d1c03 100644 --- a/arch/x86/kernel/process.c +++ b/arch/x86/kernel/process.c @@ -40,6 +40,8 @@ @@ -446,9 +446,9 @@ index 988a98f34c66..dc36d2d9078a 100644 +#include <asm/elf.h> +#include <linux/sizes.h> - /* - * per-CPU TSS segments. Threads are completely 'soft' on Linux, -@@ -719,7 +721,10 @@ unsigned long arch_align_stack(unsigned long sp) + #include "process.h" + +@@ -782,7 +784,10 @@ unsigned long arch_align_stack(unsigned long sp) unsigned long arch_randomize_brk(struct mm_struct *mm) { @@ -582,10 +582,10 @@ index 01e2b353a2b9..9aeddca4a29f 100644 struct list_head *cpu_list, local_list; diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c -index 6938bd86ff1c..89e202988379 100644 +index 04f406d7e973..60d8c59fa824 100644 --- a/drivers/ata/libata-core.c +++ b/drivers/ata/libata-core.c -@@ -5147,7 +5147,7 @@ void ata_qc_free(struct ata_queued_cmd *qc) +@@ -5148,7 +5148,7 @@ void ata_qc_free(struct ata_queued_cmd *qc) struct ata_port *ap; unsigned int tag; @@ -594,7 +594,7 @@ index 6938bd86ff1c..89e202988379 100644 ap = qc->ap; qc->flags = 0; -@@ -5164,7 +5164,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc) +@@ -5165,7 +5165,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc) struct ata_port *ap; struct ata_link *link; @@ -779,7 +779,7 @@ index b811442c5ce6..4f62a63cbcb1 100644 A pseudo terminal (PTY) is a software device consisting of two halves: a master and a slave. The slave device behaves identical to diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c -index 562d31073f9a..2184b9b5485f 100644 +index 83376caa571b..4aa47ca17268 100644 --- a/drivers/tty/tty_io.c +++ b/drivers/tty/tty_io.c @@ -171,6 +171,7 @@ static void free_tty_struct(struct tty_struct *tty) @@ -790,7 +790,7 @@ index 562d31073f9a..2184b9b5485f 100644 kfree(tty); } -@@ -2154,11 +2155,19 @@ static int tty_fasync(int fd, struct file *filp, int on) +@@ -2159,11 +2160,19 @@ static int tty_fasync(int fd, struct file *filp, int on) * FIXME: may race normal receive processing */ @@ -810,7 +810,7 @@ index 562d31073f9a..2184b9b5485f 100644 if ((current->signal->tty != tty) && !capable(CAP_SYS_ADMIN)) return -EPERM; if (get_user(ch, p)) -@@ -2841,6 +2850,7 @@ struct tty_struct *alloc_tty_struct(struct tty_driver *driver, int idx) +@@ -2846,6 +2855,7 @@ struct tty_struct *alloc_tty_struct(struct tty_driver *driver, int idx) tty->index = idx; tty_line_name(driver, idx, tty->name); tty->dev = tty_get_device(tty); @@ -819,7 +819,7 @@ index 562d31073f9a..2184b9b5485f 100644 return tty; } diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c -index a9db0887edca..95464d2471c2 100644 +index a073cb5be013..e9dfece7b7ce 100644 --- a/drivers/usb/core/hub.c +++ b/drivers/usb/core/hub.c @@ -38,6 +38,8 @@ @@ -831,7 +831,7 @@ index a9db0887edca..95464d2471c2 100644 /* Protect struct usb_device->state and ->children members * Note: Both are also protected by ->dev.sem, except that ->state can * change to USB_STATE_NOTATTACHED even when the semaphore isn't held. */ -@@ -4816,6 +4818,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus, +@@ -4818,6 +4820,12 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus, goto done; return; } @@ -866,17 +866,21 @@ index 0da4d748b4e6..69fcee853363 100644 err: up_write(&mm->mmap_sem); diff --git a/fs/namei.c b/fs/namei.c -index 0b46b858cd42..3ae8e72341da 100644 +index d1e467b7b9de..0d96ad71b700 100644 --- a/fs/namei.c +++ b/fs/namei.c -@@ -902,8 +902,8 @@ static inline void put_link(struct nameidata *nd) +@@ -902,10 +902,10 @@ static inline void put_link(struct nameidata *nd) path_put(&last->link); } -int sysctl_protected_symlinks __read_mostly = 0; -int sysctl_protected_hardlinks __read_mostly = 0; +-int sysctl_protected_fifos __read_mostly; +-int sysctl_protected_regular __read_mostly; +int sysctl_protected_symlinks __read_mostly = 1; +int sysctl_protected_hardlinks __read_mostly = 1; ++int sysctl_protected_fifos __read_mostly = 2; ++int sysctl_protected_regular __read_mostly = 2; /** * may_follow_link - Check symlink following for unsafe situations @@ -989,10 +993,10 @@ index f640dcbc880c..2b4f5d651f19 100644 { return true; diff --git a/include/linux/fs.h b/include/linux/fs.h -index cc613f20e5a6..7606596d6c2e 100644 +index f6a577edec67..fa3a6caeca6c 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h -@@ -3392,4 +3392,15 @@ static inline bool dir_relax_shared(struct inode *inode) +@@ -3383,4 +3383,15 @@ static inline bool dir_relax_shared(struct inode *inode) extern bool path_noexec(const struct path *path); extern void inode_nohighmem(struct inode *inode); @@ -1102,7 +1106,7 @@ index df32d2508290..c992d130b94d 100644 const struct kobj_ns_type_operations *kobj_child_ns_ops(struct kobject *parent); const struct kobj_ns_type_operations *kobj_ns_ops(struct kobject *kobj); diff --git a/include/linux/mm.h b/include/linux/mm.h -index a26cf767407e..e0a700be00e3 100644 +index 58f2263de4de..e90dc5d98c7f 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -525,7 +525,7 @@ static inline int is_vmalloc_or_module_addr(const void *x) @@ -1206,10 +1210,10 @@ index ae5ed6492d54..fd0786124504 100644 #ifndef CONFIG_SLOB if (__builtin_constant_p(size) && diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h -index 2038ab531616..a88f322c8c8b 100644 +index f8ced87a2efe..cd61c8d2aa6e 100644 --- a/include/linux/slub_def.h +++ b/include/linux/slub_def.h -@@ -120,6 +120,11 @@ struct kmem_cache { +@@ -121,6 +121,11 @@ struct kmem_cache { unsigned long random; #endif @@ -1522,7 +1526,7 @@ index d203a5d6b726..2a6c3e2c57a6 100644 static int bpf_jit_blind_insn(const struct bpf_insn *from, const struct bpf_insn *aux, diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c -index 4e933219fec6..0f37db32a2b1 100644 +index 5c9deed4524e..6d90aabecfc7 100644 --- a/kernel/bpf/syscall.c +++ b/kernel/bpf/syscall.c @@ -37,7 +37,7 @@ static DEFINE_SPINLOCK(prog_idr_lock); @@ -1552,7 +1556,7 @@ index 1e1c0236f55b..452062fe45ce 100644 /** diff --git a/kernel/events/core.c b/kernel/events/core.c -index 7c394ddf1ce6..9069886d38da 100644 +index 991af683ef9e..66f66b648707 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -397,8 +397,13 @@ static cpumask_var_t perf_online_mask; @@ -1569,7 +1573,7 @@ index 7c394ddf1ce6..9069886d38da 100644 /* Minimum for 512 kiB + 1 user control page */ int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */ -@@ -9977,6 +9982,9 @@ SYSCALL_DEFINE5(perf_event_open, +@@ -9984,6 +9989,9 @@ SYSCALL_DEFINE5(perf_event_open, if (flags & ~PERF_FLAG_ALL) return -EINVAL; @@ -1580,7 +1584,7 @@ index 7c394ddf1ce6..9069886d38da 100644 if (err) return err; diff --git a/kernel/fork.c b/kernel/fork.c -index 91907a3701ce..8021b98c69e1 100644 +index 6a219fea4926..013703c020f6 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -102,6 +102,11 @@ @@ -1595,7 +1599,7 @@ index 91907a3701ce..8021b98c69e1 100644 /* * Minimum number of threads to boot the kernel -@@ -1553,6 +1558,10 @@ static __latent_entropy struct task_struct *copy_process( +@@ -1555,6 +1560,10 @@ static __latent_entropy struct task_struct *copy_process( if ((clone_flags & (CLONE_NEWUSER|CLONE_FS)) == (CLONE_NEWUSER|CLONE_FS)) return ERR_PTR(-EINVAL); @@ -1606,7 +1610,7 @@ index 91907a3701ce..8021b98c69e1 100644 /* * Thread groups must share signals as well, and detached threads * can only be started up within the thread group. -@@ -2346,6 +2355,12 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) +@@ -2348,6 +2357,12 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags) if (unshare_flags & CLONE_NEWNS) unshare_flags |= CLONE_FS; @@ -1655,10 +1659,10 @@ index a64eee0db39e..4d7de378fe4c 100644 __rcu_process_callbacks(&rcu_sched_ctrlblk); __rcu_process_callbacks(&rcu_bh_ctrlblk); diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c -index 3e3650e94ae6..7ecd7a5d04b3 100644 +index 710ce1d6b982..4013b634e820 100644 --- a/kernel/rcu/tree.c +++ b/kernel/rcu/tree.c -@@ -2918,7 +2918,7 @@ __rcu_process_callbacks(struct rcu_state *rsp) +@@ -2927,7 +2927,7 @@ __rcu_process_callbacks(struct rcu_state *rsp) /* * Do RCU core processing for the current CPU. */ @@ -1668,10 +1672,10 @@ index 3e3650e94ae6..7ecd7a5d04b3 100644 struct rcu_state *rsp; diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c -index 0cc7098c6dfd..3e69eaf4ddee 100644 +index 7240bb4a4090..9adcec5bcbd9 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c -@@ -8987,7 +8987,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { } +@@ -9005,7 +9005,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { } * run_rebalance_domains is triggered when needed from the scheduler tick. * Also triggered for nohz idle balancing (with nohz_balancing_kick set). */ @@ -1730,7 +1734,7 @@ index a4c87cf27f9d..efb97a8dc568 100644 struct tasklet_struct *list; diff --git a/kernel/sysctl.c b/kernel/sysctl.c -index 069550540a39..822783a174aa 100644 +index d330b1ce3b94..050278b12928 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -66,6 +66,7 @@ @@ -1903,10 +1907,10 @@ index 069550540a39..822783a174aa 100644 { .procname = "ngroups_max", diff --git a/kernel/time/timer.c b/kernel/time/timer.c -index 9fe525f410bf..6a85b0e1292e 100644 +index f17c76a1a05f..50f079d11488 100644 --- a/kernel/time/timer.c +++ b/kernel/time/timer.c -@@ -1624,7 +1624,7 @@ static inline void __run_timers(struct timer_base *base) +@@ -1640,7 +1640,7 @@ static inline void __run_timers(struct timer_base *base) /* * This function runs timers and the timer-tq in bottom half context. */ @@ -1916,7 +1920,7 @@ index 9fe525f410bf..6a85b0e1292e 100644 struct timer_base *base = this_cpu_ptr(&timer_bases[BASE_STD]); diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c -index c490f1e4313b..dd03bd39d7bf 100644 +index ed80a88980f0..ff6d27d06af0 100644 --- a/kernel/user_namespace.c +++ b/kernel/user_namespace.c @@ -24,6 +24,9 @@ @@ -1997,7 +2001,7 @@ index 86a709954f5a..6f15787fcb1b 100644 struct list_head *list = this_cpu_ptr(&blk_cpu_iopoll); int rearm = 0, budget = irq_poll_budget; diff --git a/lib/kobject.c b/lib/kobject.c -index 34f847252c02..4fda329de614 100644 +index bbbb067de8ec..fec2f780cf9b 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -956,9 +956,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add); @@ -2071,7 +2075,7 @@ index 2398776195d2..a8ffa2223ad1 100644 goto set_brk; diff --git a/mm/page_alloc.c b/mm/page_alloc.c -index 59ccf455fcbd..929c2dae4954 100644 +index a2f365f40433..5e726e59de20 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -67,6 +67,7 @@ @@ -2211,7 +2215,7 @@ index 485d9fbb8802..436461588804 100644 /* * Else we can use all the padding etc for the allocation diff --git a/mm/slab_common.c b/mm/slab_common.c -index 91d271b90600..f4af25f18af2 100644 +index f6764cf162b8..015c8e4df318 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -26,10 +26,10 @@ @@ -2246,7 +2250,7 @@ index 91d271b90600..f4af25f18af2 100644 4, /* 16 */ 5, /* 24 */ diff --git a/mm/slub.c b/mm/slub.c -index 10e54c4acd19..23fa3d3be997 100644 +index 220d42e592ef..3decf87b1cf2 100644 --- a/mm/slub.c +++ b/mm/slub.c @@ -125,6 +125,16 @@ static inline int kmem_cache_debug(struct kmem_cache *s) @@ -2543,10 +2547,10 @@ index a77d68f2c1b6..d1f1d75f4d1f 100644 } diff --git a/net/core/dev.c b/net/core/dev.c -index 6ca771f2f25b..6da2c9c3e6a5 100644 +index 4337450a5fdb..5a3c7d217719 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -4095,7 +4095,7 @@ int netif_rx_ni(struct sk_buff *skb) +@@ -4117,7 +4117,7 @@ int netif_rx_ni(struct sk_buff *skb) } EXPORT_SYMBOL(netif_rx_ni); @@ -2555,7 +2559,7 @@ index 6ca771f2f25b..6da2c9c3e6a5 100644 { struct softnet_data *sd = this_cpu_ptr(&softnet_data); -@@ -5609,7 +5609,7 @@ static int napi_poll(struct napi_struct *n, struct list_head *repoll) +@@ -5635,7 +5635,7 @@ static int napi_poll(struct napi_struct *n, struct list_head *repoll) return work; } @@ -2577,7 +2581,7 @@ index f48fe6fc7e8c..d78c52835c08 100644 Normal TCP/IP networking is open to an attack known as "SYN flooding". This denial-of-service attack prevents legitimate remote diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c -index 54deaa1066cf..211f97bd5ee3 100644 +index 957f6041dd79..7be404c9fb47 100644 --- a/scripts/mod/modpost.c +++ b/scripts/mod/modpost.c @@ -37,6 +37,7 @@ static int vmlinux_section_warnings = 1; diff --git a/sys-kernel/linux-sources-redcore-lts/files/redcore-lts-amd64.config b/sys-kernel/linux-sources-redcore-lts/files/redcore-lts-amd64.config index f41bc39d..23e35863 100644 --- a/sys-kernel/linux-sources-redcore-lts/files/redcore-lts-amd64.config +++ b/sys-kernel/linux-sources-redcore-lts/files/redcore-lts-amd64.config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/x86 4.14.75-redcore-lts Kernel Configuration +# Linux/x86 4.14.90-redcore-lts Kernel Configuration # CONFIG_64BIT=y CONFIG_X86_64=y @@ -62,12 +62,12 @@ CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_HAVE_KERNEL_LZ4=y -CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set -# CONFIG_KERNEL_LZ4 is not set +CONFIG_KERNEL_LZ4=y CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y @@ -8332,8 +8332,8 @@ CONFIG_ROMFS_ON_BLOCK=y CONFIG_ROMFS_ON_MTD=y CONFIG_PSTORE=y # CONFIG_PSTORE_ZLIB_COMPRESS is not set -CONFIG_PSTORE_LZO_COMPRESS=y -# CONFIG_PSTORE_LZ4_COMPRESS is not set +# CONFIG_PSTORE_LZO_COMPRESS is not set +CONFIG_PSTORE_LZ4_COMPRESS=y # CONFIG_PSTORE_CONSOLE is not set CONFIG_PSTORE_PMSG=y CONFIG_PSTORE_RAM=m @@ -8394,7 +8394,6 @@ CONFIG_CIFS_STATS2=y CONFIG_CIFS_WEAK_PW_HASH=y CONFIG_CIFS_UPCALL=y CONFIG_CIFS_XATTR=y -CONFIG_CIFS_POSIX=y CONFIG_CIFS_ACL=y # CONFIG_CIFS_DEBUG is not set CONFIG_CIFS_DFS_UPCALL=y @@ -9029,7 +9028,7 @@ CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y -CONFIG_LZ4_COMPRESS=m +CONFIG_LZ4_COMPRESS=y CONFIG_LZ4HC_COMPRESS=m CONFIG_LZ4_DECOMPRESS=y CONFIG_ZSTD_COMPRESS=m diff --git a/sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-4.14.75.ebuild b/sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-4.14.90.ebuild index 1125acdd..f51c3cfa 100644 --- a/sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-4.14.75.ebuild +++ b/sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-4.14.90.ebuild @@ -19,6 +19,7 @@ IUSE="" RESTRICT="strip mirror" DEPEND=" + app-arch/lz4 app-arch/xz-utils sys-devel/autoconf sys-devel/bc |