summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2019-01-05 21:06:28 +0000
committerV3n3RiX <venerix@redcorelinux.org>2019-01-05 21:06:28 +0000
commit5a86e6c1088164717ba4ee15bd1a1c10783e6f65 (patch)
tree7b45374f7a0ad5a3b3ace5e2e53cdc01d914cec3
parent961e47eb129d348579bf2dd6e261f158f705d838 (diff)
sys-kernel/linux-{image,sources}-redcore-lts : version bump to 4.14.90
-rw-r--r--sys-kernel/linux-image-redcore-lts/Manifest2
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/0001-MuQSS-version-0.162-CPU-scheduler-linux-hardened.patch151
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/linux-hardened.patch134
-rw-r--r--sys-kernel/linux-image-redcore-lts/files/redcore-lts-amd64.config13
-rw-r--r--sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-4.14.90.ebuild (renamed from sys-kernel/linux-image-redcore-lts/linux-image-redcore-lts-4.14.75.ebuild)17
-rw-r--r--sys-kernel/linux-sources-redcore-lts/Manifest2
-rw-r--r--sys-kernel/linux-sources-redcore-lts/files/0001-MuQSS-version-0.162-CPU-scheduler-linux-hardened.patch151
-rw-r--r--sys-kernel/linux-sources-redcore-lts/files/linux-hardened.patch134
-rw-r--r--sys-kernel/linux-sources-redcore-lts/files/redcore-lts-amd64.config13
-rw-r--r--sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-4.14.90.ebuild (renamed from sys-kernel/linux-sources-redcore-lts/linux-sources-redcore-lts-4.14.75.ebuild)1
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