kernel-release-clang 5.6.14-1 (armv7hnl) 2020-11850
9999

Status published
Submitter benbullard79 [@T] cox.net
Platform rolling
Repository main
URL https://abf.openmandriva.org/build_lists/778065
Packages
kernel-release-clang-5.6.14-1.armv7hnl.source
kernel-release-clang-server-clang-5.6.14-1.armv7hnl.binary
Build Date 2020-05-26 23:10:09 +0000 UTC
Last Updated 2020-06-03 01:00:52.64779916 +0000 UTC
$ git diff --patch-with-stat --summary 92596fa0e5640a055eb9d3333161fa2d363dd38d..beb6fd024e154851b9a1109f58d6edff03e92e46

 .abf.yml                                           |   2 +-
 ...Kconfig-option-to-skip-raid6-benchmarking.patch |  14 +-
 0121-use-lfence-instead-of-rep-and-nop.patch       |  25 ++++
 ...accept-in-LIFO-order-for-cache-efficiency.patch |  89 ++++++++++++
 0123-locking-rwsem-spin-faster.patch               |  35 +++++
 0124-ata-libahci-ignore-staggered-spin-up.patch    |  42 ++++++
 0131-overload-on-wakeup.patch                      |  61 ++++++++
 common.config                                      |   3 +
 kernel-release-clang.spec                          |  25 +---
 uksm-5.6.patch                                     |   2 +-
 vbox-kernel-5.6.patch                              | 154 ---------------------
 virtualbox-kernel-5.3.patch                        |  61 --------
 x86_64-common.config                               |   1 +
 13 files changed, 272 insertions(+), 242 deletions(-)
 create mode 100644 0121-use-lfence-instead-of-rep-and-nop.patch
 create mode 100644 0122-do-accept-in-LIFO-order-for-cache-efficiency.patch
 create mode 100644 0123-locking-rwsem-spin-faster.patch
 create mode 100644 0124-ata-libahci-ignore-staggered-spin-up.patch
 create mode 100644 0131-overload-on-wakeup.patch
 delete mode 100644 vbox-kernel-5.6.patch
 delete mode 100644 virtualbox-kernel-5.3.patch

diff --git a/.abf.yml b/.abf.yml
index 7094d50..40c896f 100644
--- a/.abf.yml
+++ b/.abf.yml
@@ -3,4 +3,4 @@ sources:
   linux-5.6.tar.xz: 3957d9d71454c26048ce4c71774d21386ac72be6
   saa716x-driver.tar.xz: f9b6ef1cd6f1f71f53d9a8aadfba2cf6b5c3d7b6
   extra-wifi-drivers-20200301.tar.zst: 3390c738c7d91250714ce0f88d26371e93bc40b8
-  patch-5.6.6.xz: 46530795bd45ac3ebd9ab44a3aad4a74ead4ed48
+  patch-5.6.14.xz: ea85a8983c18058f314890743d534843670813a0
diff --git a/0109-raid6-add-Kconfig-option-to-skip-raid6-benchmarking.patch b/0109-raid6-add-Kconfig-option-to-skip-raid6-benchmarking.patch
index efe5e9d..600f5bb 100644
--- a/0109-raid6-add-Kconfig-option-to-skip-raid6-benchmarking.patch
+++ b/0109-raid6-add-Kconfig-option-to-skip-raid6-benchmarking.patch
@@ -18,7 +18,7 @@ Signed-off-by: Jim Kukunas <james.t.kukunas@linux.intel.com>
  create mode 100644 lib/raid6/Kconfig
 
 diff --git a/lib/Kconfig b/lib/Kconfig
-index 90623a0e1942..7678577daaf4 100644
+index bc7e563..ae9a695 100644
 --- a/lib/Kconfig
 +++ b/lib/Kconfig
 @@ -8,8 +8,7 @@ config BINARY_PRINTF
@@ -33,7 +33,7 @@ index 90623a0e1942..7678577daaf4 100644
  	bool "Automatically choose fastest RAID6 PQ functions"
 diff --git a/lib/raid6/Kconfig b/lib/raid6/Kconfig
 new file mode 100644
-index 000000000000..d881d6be89bb
+index 0000000..d881d6b
 --- /dev/null
 +++ b/lib/raid6/Kconfig
 @@ -0,0 +1,38 @@
@@ -76,12 +76,12 @@ index 000000000000..d881d6be89bb
 +
 +endmenu
 diff --git a/lib/raid6/algos.c b/lib/raid6/algos.c
-index 17417eee0866..8af3d7c737c1 100644
+index bf1b476..098fdad 100644
 --- a/lib/raid6/algos.c
 +++ b/lib/raid6/algos.c
-@@ -124,6 +124,63 @@ const struct raid6_recov_calls *const raid6_recov_algos[] = {
- #define time_before(x, y) ((x) < (y))
- #endif
+@@ -127,6 +127,63 @@ const struct raid6_recov_calls *const raid6_recov_algos[] = {
+ #define RAID6_TEST_DISKS	8
+ #define RAID6_TEST_DISKS_ORDER	3
  
 +#ifdef CONFIG_RAID6_FORCE_ALGO
 +/* TODO don't compile in algos that will never be used */
@@ -143,7 +143,7 @@ index 17417eee0866..8af3d7c737c1 100644
  static inline const struct raid6_recov_calls *raid6_choose_recov(void)
  {
  	const struct raid6_recov_calls *const *algo;
-@@ -260,6 +317,7 @@ int __init raid6_select_algo(void)
+@@ -277,6 +334,7 @@ int __init raid6_select_algo(void)
  
  	return gen_best && rec_best ? 0 : -EINVAL;
  }
diff --git a/0121-use-lfence-instead-of-rep-and-nop.patch b/0121-use-lfence-instead-of-rep-and-nop.patch
new file mode 100644
index 0000000..9027bca
--- /dev/null
+++ b/0121-use-lfence-instead-of-rep-and-nop.patch
@@ -0,0 +1,25 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Arjan van de Ven <arjan@linux.intel.com>
+Date: Sat, 8 Dec 2018 18:21:32 +0000
+Subject: [PATCH] use lfence instead of rep and nop
+
+---
+ arch/x86/include/asm/processor.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
+index 09705cc..2e4e588 100644
+--- a/arch/x86/include/asm/processor.h
++++ b/arch/x86/include/asm/processor.h
+@@ -680,7 +680,7 @@ static inline unsigned int cpuid_edx(unsigned int op)
+ /* REP NOP (PAUSE) is a good thing to insert into busy-wait loops. */
+ static __always_inline void rep_nop(void)
+ {
+-	asm volatile("rep; nop" ::: "memory");
++	asm volatile("lfence" ::: "memory");
+ }
+ 
+ static __always_inline void cpu_relax(void)
+-- 
+https://clearlinux.org
+
diff --git a/0122-do-accept-in-LIFO-order-for-cache-efficiency.patch b/0122-do-accept-in-LIFO-order-for-cache-efficiency.patch
new file mode 100644
index 0000000..69e4ca2
--- /dev/null
+++ b/0122-do-accept-in-LIFO-order-for-cache-efficiency.patch
@@ -0,0 +1,89 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Arjan van de Ven <arjan@linux.intel.com>
+Date: Thu, 13 Dec 2018 01:00:49 +0000
+Subject: [PATCH] do accept() in LIFO order for cache efficiency
+
+---
+ include/linux/wait.h            |  2 ++
+ kernel/sched/wait.c             | 24 ++++++++++++++++++++++++
+ net/ipv4/inet_connection_sock.c |  2 +-
+ 3 files changed, 27 insertions(+), 1 deletion(-)
+
+diff --git a/include/linux/wait.h b/include/linux/wait.h
+index 3283c8d..2cc18fd 100644
+--- a/include/linux/wait.h
++++ b/include/linux/wait.h
+@@ -162,6 +162,7 @@ static inline bool wq_has_sleeper(struct wait_queue_head *wq_head)
+ 
+ extern void add_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
+ extern void add_wait_queue_exclusive(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
++extern void add_wait_queue_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
+ extern void remove_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
+ 
+ static inline void __add_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
+@@ -1125,6 +1126,7 @@ do {										\
+  */
+ void prepare_to_wait(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
+ void prepare_to_wait_exclusive(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
++void prepare_to_wait_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
+ long prepare_to_wait_event(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state);
+ void finish_wait(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
+ long wait_woken(struct wait_queue_entry *wq_entry, unsigned mode, long timeout);
+diff --git a/kernel/sched/wait.c b/kernel/sched/wait.c
+index ba059fb..5f26ae9 100644
+--- a/kernel/sched/wait.c
++++ b/kernel/sched/wait.c
+@@ -37,6 +37,17 @@ void add_wait_queue_exclusive(struct wait_queue_head *wq_head, struct wait_queue
+ }
+ EXPORT_SYMBOL(add_wait_queue_exclusive);
+ 
++void add_wait_queue_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
++{
++	unsigned long flags;
++
++	wq_entry->flags |= WQ_FLAG_EXCLUSIVE;
++	spin_lock_irqsave(&wq_head->lock, flags);
++	__add_wait_queue(wq_head, wq_entry);
++	spin_unlock_irqrestore(&wq_head->lock, flags);
++}
++EXPORT_SYMBOL(add_wait_queue_exclusive_lifo);
++
+ void remove_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry)
+ {
+ 	unsigned long flags;
+@@ -263,6 +274,19 @@ prepare_to_wait_exclusive(struct wait_queue_head *wq_head, struct wait_queue_ent
+ }
+ EXPORT_SYMBOL(prepare_to_wait_exclusive);
+ 
++void prepare_to_wait_exclusive_lifo(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry, int state)
++{
++	unsigned long flags;
++
++	wq_entry->flags |= WQ_FLAG_EXCLUSIVE;
++	spin_lock_irqsave(&wq_head->lock, flags);
++	if (list_empty(&wq_entry->entry))
++		__add_wait_queue(wq_head, wq_entry);
++	set_current_state(state);
++	spin_unlock_irqrestore(&wq_head->lock, flags);
++}
++EXPORT_SYMBOL(prepare_to_wait_exclusive_lifo);
++
+ void init_wait_entry(struct wait_queue_entry *wq_entry, int flags)
+ {
+ 	wq_entry->flags = flags;
+diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
+index d545fb9..03b7b40 100644
+--- a/net/ipv4/inet_connection_sock.c
++++ b/net/ipv4/inet_connection_sock.c
+@@ -407,7 +407,7 @@ static int inet_csk_wait_for_connect(struct sock *sk, long timeo)
+ 	 * having to remove and re-insert us on the wait queue.
+ 	 */
+ 	for (;;) {
+-		prepare_to_wait_exclusive(sk_sleep(sk), &wait,
++		prepare_to_wait_exclusive_lifo(sk_sleep(sk), &wait,
+ 					  TASK_INTERRUPTIBLE);
+ 		release_sock(sk);
+ 		if (reqsk_queue_empty(&icsk->icsk_accept_queue))
+-- 
+https://clearlinux.org
+
diff --git a/0123-locking-rwsem-spin-faster.patch b/0123-locking-rwsem-spin-faster.patch
new file mode 100644
index 0000000..79f8bf7
--- /dev/null
+++ b/0123-locking-rwsem-spin-faster.patch
@@ -0,0 +1,35 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Arjan van de Ven <arjan@linux.intel.com>
+Date: Sun, 18 Feb 2018 23:35:41 +0000
+Subject: [PATCH] locking: rwsem: spin faster
+
+tweak rwsem owner spinning a bit
+---
+ kernel/locking/rwsem.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/kernel/locking/rwsem.c b/kernel/locking/rwsem.c
+index 0d9b6be..a2aad28 100644
+--- a/kernel/locking/rwsem.c
++++ b/kernel/locking/rwsem.c
+@@ -720,6 +720,7 @@ rwsem_spin_on_owner(struct rw_semaphore *sem, unsigned long nonspinnable)
+ 	struct task_struct *new, *owner;
+ 	unsigned long flags, new_flags;
+ 	enum owner_state state;
++	int i = 0;
+ 
+ 	owner = rwsem_owner_flags(sem, &flags);
+ 	state = rwsem_owner_state(owner, flags, nonspinnable);
+@@ -753,7 +754,8 @@ rwsem_spin_on_owner(struct rw_semaphore *sem, unsigned long nonspinnable)
+ 			break;
+ 		}
+ 
+-		cpu_relax();
++		if (i++ > 1000)
++			cpu_relax();
+ 	}
+ 	rcu_read_unlock();
+ 
+-- 
+https://clearlinux.org
+
diff --git a/0124-ata-libahci-ignore-staggered-spin-up.patch b/0124-ata-libahci-ignore-staggered-spin-up.patch
new file mode 100644
index 0000000..71cc94a
--- /dev/null
+++ b/0124-ata-libahci-ignore-staggered-spin-up.patch
@@ -0,0 +1,42 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Joe Konno <joe.konno@intel.com>
+Date: Tue, 25 Jun 2019 10:35:54 -0700
+Subject: [PATCH] ata: libahci: ignore staggered spin-up
+
+Change libahci to ignore firmware's staggered spin-up flag. End-users
+who wish to honor firmware's SSS flag can add the following kernel
+parameter to a new file at /etc/kernel/cmdline.d/ignore_sss.conf:
+    libahci.ignore_sss=0
+
+And then run
+    sudo clr-boot-manager update
+
+Signed-off-by: Joe Konno <joe.konno@intel.com>
+---
+ drivers/ata/libahci.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
+index ea5bf5f..6adee9c 100644
+--- a/drivers/ata/libahci.c
++++ b/drivers/ata/libahci.c
+@@ -33,14 +33,14 @@
+ #include "libata.h"
+ 
+ static int ahci_skip_host_reset;
+-int ahci_ignore_sss;
++int ahci_ignore_sss=1;
+ EXPORT_SYMBOL_GPL(ahci_ignore_sss);
+ 
+ module_param_named(skip_host_reset, ahci_skip_host_reset, int, 0444);
+ MODULE_PARM_DESC(skip_host_reset, "skip global host reset (0=don't skip, 1=skip)");
+ 
+ module_param_named(ignore_sss, ahci_ignore_sss, int, 0444);
+-MODULE_PARM_DESC(ignore_sss, "Ignore staggered spinup flag (0=don't ignore, 1=ignore)");
++MODULE_PARM_DESC(ignore_sss, "Ignore staggered spinup flag (0=don't ignore, 1=ignore [default])");
+ 
+ static int ahci_set_lpm(struct ata_link *link, enum ata_lpm_policy policy,
+ 			unsigned hints);
+-- 
+https://clearlinux.org
+
diff --git a/0131-overload-on-wakeup.patch b/0131-overload-on-wakeup.patch
new file mode 100644
index 0000000..b9a0da4
--- /dev/null
+++ b/0131-overload-on-wakeup.patch
@@ -0,0 +1,61 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: jplozi <jplozi@unice.fr>
+Date: Thu, 16 Apr 2020 14:23:27 -0500
+Subject: [PATCH] overload on wakeup
+
+As an experiment, apply the learnings from the wasted-cores paper
+and see how the performance works out. With the data from this we should
+be able to work with Peter and the rest of the scheduler folks on
+a more permanent/elegant solution.
+
+Source: https://github.com/jplozi/wastedcores
+---
+ kernel/sched/fair.c | 28 ++++++++++++++++++++++++++++
+ 1 file changed, 28 insertions(+)
+
+diff -Naur a/kernel/sched/fair.c b/kernel/sched/fair.c
+--- a/kernel/sched/fair.c	2020-05-11 20:23:55.936777326 +0000
++++ b/kernel/sched/fair.c	2020-05-11 20:27:43.632807989 +0000
+@@ -6378,6 +6378,7 @@
+ 	return -1;
+ }
+ 
++static unsigned int once_in_a_while;
+ /*
+  * select_task_rq_fair: Select target runqueue for the waking task in domains
+  * that have the 'sd_flag' flag set. In practice, this is SD_BALANCE_WAKE,
+@@ -6414,6 +6415,32 @@
+ 	}
+ 
+ 	rcu_read_lock();
++
++	once_in_a_while++;
++
++       if (cpu_rq(prev_cpu)->nr_running || (once_in_a_while & 15) == 0) {
++               int _cpu;
++               int bestprio = -5000;
++               int bestcpu = -1;
++
++               for_each_online_cpu(_cpu) {
++                       if (!cpumask_test_cpu(_cpu, p->cpus_ptr)
++                               || cpu_rq(_cpu)->nr_running)
++                               continue;
++                       if (arch_asym_cpu_priority(_cpu) > bestprio
++                               || (prev_cpu == _cpu
++                                       && bestprio == arch_asym_cpu_priority(_cpu))) {
++                               bestcpu = _cpu;
++                               bestprio = arch_asym_cpu_priority(_cpu);
++                       }
++               }
++
++               if (bestcpu >= 0) {
++                       rcu_read_unlock();
++                       return bestcpu;
++               }
++       }
++
+ 	for_each_domain(cpu, tmp) {
+ 		if (!(tmp->flags & SD_LOAD_BALANCE))
+ 			break;
+--
+https://clearlinux.org
diff --git a/common.config b/common.config
index 7bde3e9..e3417ec 100644
--- a/common.config
+++ b/common.config
@@ -33,6 +33,7 @@ CONFIG_CGROUP_HUGETLB=y
 CONFIG_CGROUP_DEVICE=y
 CONFIG_CGROUP_PERF=y
 CONFIG_CGROUP_BPF=y
+CONFIG_CGROUP_FREEZER=y
 # CONFIG_HAVE_GCC_PLUGINS is not set
 # CONFIG_GCC_PLUGINS is not set
 CONFIG_SOCK_CGROUP_DATA=y
@@ -404,6 +405,7 @@ CONFIG_TCP_CONG_YEAH=m
 CONFIG_TCP_CONG_ILLINOIS=m
 CONFIG_TCP_CONG_DCTCP=m
 CONFIG_TCP_CONG_BBR=m
+CONFIG_MPTCP=y
 CONFIG_IPV6=m
 CONFIG_IPV6_ROUTER_PREF=y
 CONFIG_IPV6_ROUTE_INFO=y
@@ -840,6 +842,7 @@ CONFIG_IEEE802154_SOCKET=m
 CONFIG_IEEE802154_6LOWPAN=m
 CONFIG_MAC802154=m
 CONFIG_NET_SCH_CBQ=m
+CONFIG_NET_SCH_ETS=m
 CONFIG_NET_SCH_CAKE=m
 CONFIG_NET_SCH_HTB=m
 CONFIG_NET_SCH_HFSC=m
diff --git a/kernel-release-clang.spec b/kernel-release-clang.spec
index 45e4ed2..0caf6d3 100644
--- a/kernel-release-clang.spec
+++ b/kernel-release-clang.spec
@@ -15,7 +15,7 @@
 # compose tar.xz name and release
 %define kernelversion	5
 %define patchlevel	6
-%define sublevel	6
+%define sublevel	14
 %define relc		%{nil}
 # Only ever wrong on x.0 releases...
 %define previous	%{kernelversion}.%(echo $((%{patchlevel}-1)))
@@ -118,13 +118,7 @@
 %bcond_with build_cpupower
 %endif
 
-# (tpg) Virtualbox module makes sens only on ix86 and x86_64
-# 2019-09-23
-# BUILDSTDERR: In file included from drivers/net/vboxnetadp/linux/VBoxNetAdp-linux.c:31:
-# BUILDSTDERR: drivers/net/vboxnetadp/r0drv/linux/the-linux-kernel.h:46:34: error: unknown warning group '-Wold-style-declaration', ignored [-Werror,-Wunknown-warning-option]
-# BUILDSTDERR: #  pragma GCC diagnostic ignored "-Wold-style-declaration" /* 2.6.18-411.0.0.0.1.el5/build/include/asm/apic.h:110: warning: 'inline' is not at beginning of declaration [-Wold-style-declaration] */
-# BUILDSTDERR:                                  ^
-# BUILDSTDERR: 1 error generated.
+# (tpg) Virtualbox module makes sense only on x86_64
 %ifarch %{x86_64}
 %bcond_without virtualbox
 %else
@@ -257,7 +251,6 @@ Patch7:		aacraid-dont-freak-out-dependency-generator.patch
 %if %{with uksm}
 Patch120:	https://raw.githubusercontent.com/dolohow/uksm/master/v5.x/uksm-5.6.patch
 %endif
-
 %if %{with build_modzstd}
 # https://lkml.org/lkml/2020/3/25/991
 Patch126:	v3-1-8-lib-prepare-zstd-for-preboot-environment.patch
@@ -302,7 +295,6 @@ Patch202:	extra-wifi-drivers-port-to-5.6.patch
 # VirtualBox patches -- added as Source: rather than Patch:
 # because they need to be applied after stuff from the
 # virtualbox-kernel-module-sources package is copied around
-Source300:	vbox-kernel-5.6.patch
 Source301:	vbox-6.1-fix-build-on-znver1-hosts.patch
 Source302:	vbox-6.1.2-clang.patch
 %endif
@@ -338,8 +330,7 @@ Patch405:	0107-intel_idle-tweak-cpuidle-cstates.patch
 %ifarch %{ix86} %{x86_64}
 Patch407:	0114-smpboot-reuse-timer-calibration.patch
 %endif
-# waiting for rediff ?
-#Patch408:	0109-raid6-add-Kconfig-option-to-skip-raid6-benchmarking.patch
+Patch408:	0109-raid6-add-Kconfig-option-to-skip-raid6-benchmarking.patch
 Patch409:	0116-Initialize-ata-before-graphics.patch
 Patch410:	0119-e1000e-change-default-policy.patch
 Patch411:	0112-give-rdrand-some-credit.patch
@@ -347,6 +338,10 @@ Patch412:	0120-ipv4-tcp-allow-the-memory-tuning-for-tcp-to-go-a-lit.patch
 Patch413:	0124-kernel-time-reduce-ntp-wakeups.patch
 Patch414:	0125-init-wait-for-partition-and-retry-scan.patch
 Patch415:	0120-Migrate-some-systemd-defaults-to-the-kernel-defaults.patch
+Patch416:	0121-use-lfence-instead-of-rep-and-nop.patch
+Patch417:	0122-do-accept-in-LIFO-order-for-cache-efficiency.patch
+Patch418:	0123-locking-rwsem-spin-faster.patch
+Patch419:	0124-ata-libahci-ignore-staggered-spin-up.patch
 %endif
 
 # (crazy) see: https://forum.openmandriva.org/t/nvme-ssd-m2-not-seen-by-omlx-4-0/2407
@@ -427,7 +422,6 @@ input and output, etc.
 %define kconflicts4 dkms-nvidia-long-lived < 319.49-1
 %define kconflicts5 dkms-nvidia304 < 304.108-1
 # nvidia173 does not support this kernel
-
 Autoreqprov:	no
 %if %{with build_modzstd}
 BuildRequires:	zstd
@@ -849,11 +843,7 @@ cp %{S:6} %{S:7} %{S:8} %{S:9} %{S:10} %{S:11} %{S:12} %{S:13} kernel/configs/
 xzcat %{SOURCE90} |git apply - || git apply %{SOURCE90}
 rm -rf .git
 %endif
-%if %mdvver > 3000000
 %autopatch -p1
-%else
-%apply_patches
-%endif
 
 # merge SAA716x DVB driver from extra tarball
 sed -i -e '/saa7164/isource "drivers/media/pci/saa716x/Kconfig"' drivers/media/pci/Kconfig
@@ -936,7 +926,6 @@ cp -a $(ls --sort=time -1d /usr/src/virtualbox-*|head -n1)/vboxpci drivers/pci/
 sed -i -e 's,\$(KBUILD_EXTMOD),drivers/pci/vboxpci,g' drivers/pci/vboxpci/Makefile*
 sed -i -e "s,^KERN_DIR.*,KERN_DIR := $(pwd)," drivers/pci/vboxpci/Makefile*
 echo 'obj-m += vboxpci/' >>drivers/pci/Makefile
-patch -p1 -z .300a~ -b <%{S:300}
 patch -p1 -z .301a~ -b <%{S:301}
 patch -p1 -z .302a~ -b <%{S:302}
 %endif
diff --git a/uksm-5.6.patch b/uksm-5.6.patch
index 0fbc88d..bdb5637 100644
--- a/uksm-5.6.patch
+++ b/uksm-5.6.patch
@@ -80,7 +80,7 @@ index db17be51b112..0ce4c6303f53 100644
 @@ -1387,6 +1388,7 @@ void setup_new_exec(struct linux_binprm * bprm)
  	/* An exec changes our domain. We are no longer part of the thread
  	   group */
- 	current->self_exec_id++;
+ 	WRITE_ONCE(current->self_exec_id, current->self_exec_id + 1);
 +
  	flush_signal_handlers(current, 0);
  }
diff --git a/vbox-kernel-5.6.patch b/vbox-kernel-5.6.patch
deleted file mode 100644
index 9b1a919..0000000
--- a/vbox-kernel-5.6.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-diff -up linux-5.6-rc4/drivers/net/vboxnetadp/include/iprt/time.h.302a~ linux-5.6-rc4/drivers/net/vboxnetadp/include/iprt/time.h
---- linux-5.6-rc4/drivers/net/vboxnetadp/include/iprt/time.h.302a~	2020-01-13 11:44:20.000000000 +0100
-+++ linux-5.6-rc4/drivers/net/vboxnetadp/include/iprt/time.h	2020-03-03 04:29:44.706626571 +0100
-@@ -357,7 +357,7 @@ DECLINLINE(void) RTTimeSpecGetSecondsAnd
- 
- 
- /* PORTME: Add struct timeval guard macro here. */
--#if defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \
-+#if 0 && defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \
-  || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_))
- /**
-  * Gets the time as POSIX timeval.
-@@ -433,7 +433,7 @@ DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTim
- }
- 
- 
--# ifdef _LINUX_TIME64_H
-+# if 1 //def _LINUX_TIME64_H
- DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTimespec64(PRTTIMESPEC pTime, const struct timespec64 *pTimeval)
- {
-     return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_nsec);
-diff -up linux-5.6-rc4/drivers/net/vboxnetflt/include/iprt/time.h.302a~ linux-5.6-rc4/drivers/net/vboxnetflt/include/iprt/time.h
---- linux-5.6-rc4/drivers/net/vboxnetflt/include/iprt/time.h.302a~	2020-01-13 11:44:20.000000000 +0100
-+++ linux-5.6-rc4/drivers/net/vboxnetflt/include/iprt/time.h	2020-03-03 16:55:57.194735855 +0100
-@@ -357,8 +357,8 @@ DECLINLINE(void) RTTimeSpecGetSecondsAnd
- 
- 
- /* PORTME: Add struct timeval guard macro here. */
--#if defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \
-- || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_))
-+#if 0 && (defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \
-+ || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_)))
- /**
-  * Gets the time as POSIX timeval.
-  *
-@@ -433,7 +433,7 @@ DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTim
- }
- 
- 
--# ifdef _LINUX_TIME64_H
-+# if 1 //def _LINUX_TIME64_H
- DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTimespec64(PRTTIMESPEC pTime, const struct timespec64 *pTimeval)
- {
-     return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_nsec);
-diff -up linux-5.6-rc4/drivers/pci/vboxpci/include/iprt/time.h.302a~ linux-5.6-rc4/drivers/pci/vboxpci/include/iprt/time.h
---- linux-5.6-rc4/drivers/pci/vboxpci/include/iprt/time.h.302a~	2020-01-13 11:44:20.000000000 +0100
-+++ linux-5.6-rc4/drivers/pci/vboxpci/include/iprt/time.h	2020-03-03 04:29:44.707626571 +0100
-@@ -357,7 +357,7 @@ DECLINLINE(void) RTTimeSpecGetSecondsAnd
- 
- 
- /* PORTME: Add struct timeval guard macro here. */
--#if defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \
-+#if 0 && defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \
-  || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_))
- /**
-  * Gets the time as POSIX timeval.
-@@ -433,7 +433,7 @@ DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTim
- }
- 
- 
--# ifdef _LINUX_TIME64_H
-+# if 1 //def _LINUX_TIME64_H
- DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTimespec64(PRTTIMESPEC pTime, const struct timespec64 *pTimeval)
- {
-     return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_nsec);
-diff -up linux-5.6-rc4/drivers/pci/vboxpci/linux/VBoxPci-linux.c.302a~ linux-5.6-rc4/drivers/pci/vboxpci/linux/VBoxPci-linux.c
---- linux-5.6-rc4/drivers/pci/vboxpci/linux/VBoxPci-linux.c.302a~	2020-01-13 11:53:40.000000000 +0100
-+++ linux-5.6-rc4/drivers/pci/vboxpci/linux/VBoxPci-linux.c	2020-03-03 04:29:44.705626571 +0100
-@@ -843,8 +843,8 @@ DECLHIDDEN(int) vboxPciOsDevMapRegion(PV
-         if (!rcLnx)
-         {
-             /* For now no caching, try to optimize later. */
--            RTR0PTR R0PtrMapping = ioremap_nocache(pci_resource_start(pPciDev, iRegion),
--                                                   pci_resource_len(pPciDev, iRegion));
-+            RTR0PTR R0PtrMapping = ioremap(pci_resource_start(pPciDev, iRegion),
-+                                           pci_resource_len(pPciDev, iRegion));
- 
-             if (R0PtrMapping != NIL_RTR0PTR)
-                 pIns->aRegionR0Mapping[iRegion] = R0PtrMapping;
-diff -up linux-5.6-rc4/drivers/virt/vboxdrv/include/iprt/time.h.302a~ linux-5.6-rc4/drivers/virt/vboxdrv/include/iprt/time.h
---- linux-5.6-rc4/drivers/virt/vboxdrv/include/iprt/time.h.302a~	2020-01-13 11:44:20.000000000 +0100
-+++ linux-5.6-rc4/drivers/virt/vboxdrv/include/iprt/time.h	2020-03-03 17:07:41.953706093 +0100
-@@ -357,8 +357,8 @@ DECLINLINE(void) RTTimeSpecGetSecondsAnd
- 
- 
- /* PORTME: Add struct timeval guard macro here. */
--#if defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \
-- || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_))
-+#if 0 && (defined(RTTIME_INCL_TIMEVAL) || defined(_STRUCT_TIMEVAL) || defined(_SYS__TIMEVAL_H_) || defined(_SYS_TIME_H) || defined(_TIMEVAL) || defined(_LINUX_TIME_H) \
-+ || (defined(RT_OS_NETBSD) && defined(_SYS_TIME_H_)))
- /**
-  * Gets the time as POSIX timeval.
-  *
-@@ -433,7 +433,7 @@ DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTim
- }
- 
- 
--# ifdef _LINUX_TIME64_H
-+# if 1 //def _LINUX_TIME64_H
- DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTimespec64(PRTTIMESPEC pTime, const struct timespec64 *pTimeval)
- {
-     return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_nsec);
-diff -up linux-5.6-rc4/drivers/virt/vboxdrv/r0drv/linux/memobj-r0drv-linux.c.302a~ linux-5.6-rc4/drivers/virt/vboxdrv/r0drv/linux/memobj-r0drv-linux.c
---- linux-5.6-rc4/drivers/virt/vboxdrv/r0drv/linux/memobj-r0drv-linux.c.302a~	2020-01-13 11:54:19.000000000 +0100
-+++ linux-5.6-rc4/drivers/virt/vboxdrv/r0drv/linux/memobj-r0drv-linux.c	2020-03-03 04:29:44.705626571 +0100
-@@ -1461,9 +1461,7 @@ DECLHIDDEN(int) rtR0MemObjNativeMapKerne
-              * MMIO / physical memory.
-              */
-             Assert(pMemLnxToMap->Core.enmType == RTR0MEMOBJTYPE_PHYS && !pMemLnxToMap->Core.u.Phys.fAllocated);
--            pMemLnx->Core.pv = pMemLnxToMap->Core.u.Phys.uCachePolicy == RTMEM_CACHE_POLICY_MMIO
--                             ? ioremap_nocache(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub)
--                             : ioremap(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub);
-+            pMemLnx->Core.pv = ioremap(pMemLnxToMap->Core.u.Phys.PhysBase + offSub, cbSub);
-             if (pMemLnx->Core.pv)
-             {
-                 /** @todo fix protection. */
-diff -up linux-5.6-rc4/virt/kvm/kvm_main.c.302a~ linux-5.6-rc4/virt/kvm/kvm_main.c
---- linux-5.6-rc4/virt/kvm/kvm_main.c.302a~	2020-03-01 23:38:46.000000000 +0100
-+++ linux-5.6-rc4/virt/kvm/kvm_main.c	2020-03-03 04:29:44.706626571 +0100
-@@ -2219,7 +2219,7 @@ static int __kvm_gfn_to_hva_cache_init(s
- 	gfn_t start_gfn = gpa >> PAGE_SHIFT;
- 	gfn_t end_gfn = (gpa + len - 1) >> PAGE_SHIFT;
- 	gfn_t nr_pages_needed = end_gfn - start_gfn + 1;
--	gfn_t nr_pages_avail;
-+	gfn_t nr_pages_avail = 0;
- 
- 	/* Update ghc->generation before performing any error checks. */
- 	ghc->generation = slots->generation;
-diff -up linux-5.6-rc4/drivers/virt/vboxdrv/r0drv/linux/time-r0drv-linux.c.omv~ linux-5.6-rc4/drivers/virt/vboxdrv/r0drv/linux/time-r0drv-linux.c
---- linux-5.6-rc4/drivers/virt/vboxdrv/r0drv/linux/time-r0drv-linux.c.omv~	2020-03-03 17:10:12.583699732 +0100
-+++ linux-5.6-rc4/drivers/virt/vboxdrv/r0drv/linux/time-r0drv-linux.c	2020-03-03 17:12:59.803692670 +0100
-@@ -34,7 +34,10 @@
- #include <iprt/time.h>
- #include <iprt/asm.h>
- 
--
-+DECLINLINE(PRTTIMESPEC) RTTimeSpecSetTimespec64(PRTTIMESPEC pTime, const struct timespec64 *pTimeval)
-+{
-+    return RTTimeSpecAddNano(RTTimeSpecSetSeconds(pTime, pTimeval->tv_sec), pTimeval->tv_nsec);
-+}
- 
- DECLINLINE(uint64_t) rtTimeGetSystemNanoTS(void)
- {
-@@ -43,8 +46,8 @@ DECLINLINE(uint64_t) rtTimeGetSystemNano
-      * Use ktime_get_ts, this is also what clock_gettime(CLOCK_MONOTONIC,) is using.
-      */
-     uint64_t u64;
--    struct timespec Ts;
--    ktime_get_ts(&Ts);
-+    struct timespec64 Ts;
-+    ktime_get_ts64(&Ts);
-     u64 = Ts.tv_sec * RT_NS_1SEC_64 + Ts.tv_nsec;
-     return u64;
- 
diff --git a/virtualbox-kernel-5.3.patch b/virtualbox-kernel-5.3.patch
deleted file mode 100644
index bf90473..0000000
--- a/virtualbox-kernel-5.3.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-diff -up linux-5.3/drivers/net/vboxnetflt/linux/VBoxNetFlt-linux.c.omv~ linux-5.3/drivers/net/vboxnetflt/linux/VBoxNetFlt-linux.c
---- linux-5.3/drivers/net/vboxnetflt/linux/VBoxNetFlt-linux.c.omv~	2019-09-16 21:17:58.193558616 +0200
-+++ linux-5.3/drivers/net/vboxnetflt/linux/VBoxNetFlt-linux.c	2019-09-16 21:46:25.574504611 +0200
-@@ -2106,6 +2106,7 @@ static int vboxNetFltLinuxEnumeratorCall
-     struct net_device *dev  = VBOX_NETDEV_NOTIFIER_INFO_TO_DEV(ptr);
-     struct in_device *in_dev;
-     struct inet6_dev *in6_dev;
-+    const struct in_ifaddr *ifa;
- 
-     if (ulEventType != NETDEV_REGISTER)
-         return NOTIFY_OK;
-@@ -2123,7 +2124,7 @@ static int vboxNetFltLinuxEnumeratorCall
- #endif
-     if (in_dev != NULL)
-     {
--        for_ifa(in_dev) {
-+        in_dev_for_each_ifa_rcu(ifa, in_dev) {
-             if (VBOX_IPV4_IS_LOOPBACK(ifa->ifa_address))
-                 return NOTIFY_OK;
- 
-@@ -2137,7 +2138,7 @@ static int vboxNetFltLinuxEnumeratorCall
- 
-             pThis->pSwitchPort->pfnNotifyHostAddress(pThis->pSwitchPort,
-                 /* :fAdded */ true, kIntNetAddrType_IPv4, &ifa->ifa_address);
--        } endfor_ifa(in_dev);
-+        }
-     }
- 
-     /*
-diff -up linux-5.3/drivers/virt/vboxdrv/r0drv/linux/mp-r0drv-linux.c.omv~ linux-5.3/drivers/virt/vboxdrv/r0drv/linux/mp-r0drv-linux.c
---- linux-5.3/drivers/virt/vboxdrv/r0drv/linux/mp-r0drv-linux.c.omv~	2019-09-16 21:44:46.283687150 +0200
-+++ linux-5.3/drivers/virt/vboxdrv/r0drv/linux/mp-r0drv-linux.c	2019-09-16 21:45:20.384699043 +0200
-@@ -284,11 +284,10 @@ RTDECL(int) RTMpOnAll(PFNRTMPWORKER pfnW
-     {
-         /* Fire the function on all other CPUs without waiting for completion. */
- # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
--        int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
-+        smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* wait */);
- # else
-         int rc = smp_call_function(rtmpLinuxAllWrapper, &Args, 0 /* retry */, 0 /* wait */);
- # endif
--        Assert(!rc); NOREF(rc);
-     }
- #endif
- 
-@@ -338,13 +337,12 @@ RTDECL(int) RTMpOnOthers(PFNRTMPWORKER p
- 
-     RTThreadPreemptDisable(&PreemptState);
- # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27)
--    rc = smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
-+    smp_call_function(rtmpLinuxWrapper, &Args, 1 /* wait */);
- # else /* older kernels */
--    rc = smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */);
-+    smp_call_function(rtmpLinuxWrapper, &Args, 0 /* retry */, 1 /* wait */);
- # endif /* older kernels */
-     RTThreadPreemptRestore(&PreemptState);
- 
--    Assert(rc == 0); NOREF(rc);
-     IPRT_LINUX_RESTORE_EFL_AC();
- #else
-     RT_NOREF(pfnWorker, pvUser1, pvUser2);
diff --git a/x86_64-common.config b/x86_64-common.config
index 50aec35..8f00b77 100644
--- a/x86_64-common.config
+++ b/x86_64-common.config
@@ -79,6 +79,7 @@ CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH=m
 CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH=m
 CONFIG_CRYPTO_GLUE_HELPER_X86=m
 CONFIG_CRYPTO_CHACHA20_X86_64=m
+CONFIG_CRYPTO_POLY1305_x86_64=m
 CONFIG_CRYPTO_AES_X86_64=m
 CONFIG_CRYPTO_BLOWFISH_X86_64=m
 CONFIG_CRYPTO_CAMELLIA_X86_64=m
Not Available

benbullard79 [@T] cox.netThese *should* be OK1413d 22hrs
benbullard79 [@T] cox.net*Should* be OK or else!1413d 22hrs
benbullard79 [@T] cox.netThese *should* be OK1413d 22hrs
benbullard79 [@T] cox.net*Should* be OK or else!1413d 22hrs